mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-15 15:15:47 +00:00
greybus: camera: Configure the bridge CSI transmitter
Start or stop the CSI transmitter when configuring and unconfiguring the streams respectively. The CSI configuration parameters are currently hardcoded. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
parent
8e2b7daa23
commit
142b21fee0
1 changed files with 23 additions and 0 deletions
|
@ -16,6 +16,7 @@
|
|||
#include <linux/uaccess.h>
|
||||
#include <linux/vmalloc.h>
|
||||
|
||||
#include "es2.h"
|
||||
#include "greybus.h"
|
||||
#include "greybus_protocols.h"
|
||||
|
||||
|
@ -79,6 +80,7 @@ static int gb_camera_configure_streams(struct gb_camera *gcam,
|
|||
{
|
||||
struct gb_camera_configure_streams_request *req;
|
||||
struct gb_camera_configure_streams_response *resp;
|
||||
struct es2_ap_csi_config csi_cfg;
|
||||
unsigned int i;
|
||||
size_t req_size;
|
||||
size_t resp_size;
|
||||
|
@ -146,6 +148,27 @@ static int gb_camera_configure_streams(struct gb_camera *gcam,
|
|||
}
|
||||
}
|
||||
|
||||
/* Configure the CSI transmitter. Hardcode the parameters for now. */
|
||||
if (nstreams && !(resp->flags & GB_CAMERA_CONFIGURE_STREAMS_ADJUSTED)) {
|
||||
csi_cfg.csi_id = 1;
|
||||
csi_cfg.clock_mode = 0;
|
||||
csi_cfg.num_lanes = 2;
|
||||
csi_cfg.bus_freq = 250000000;
|
||||
|
||||
ret = es2_ap_csi_setup(gcam->connection->hd, true, &csi_cfg);
|
||||
} else if (nstreams == 0) {
|
||||
csi_cfg.csi_id = 1;
|
||||
csi_cfg.clock_mode = 0;
|
||||
csi_cfg.num_lanes = 0;
|
||||
csi_cfg.bus_freq = 0;
|
||||
|
||||
ret = es2_ap_csi_setup(gcam->connection->hd, false, &csi_cfg);
|
||||
}
|
||||
|
||||
if (ret < 0)
|
||||
gcam_err(gcam, "failed to %s the CSI transmitter\n",
|
||||
nstreams ? "start" : "stop");
|
||||
|
||||
ret = resp->num_streams;
|
||||
|
||||
done:
|
||||
|
|
Loading…
Reference in a new issue