media: sun6i-csi: Get bridge subdev directly in capture stream ops
The remote subdev connected to the capture video device is always our bridge, so get the bridge subdev directly instead of using a dedicated helper (which is removed by this commit). Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com> Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
This commit is contained in:
parent
1fd07a8040
commit
e77c8f6f3b
@ -42,22 +42,6 @@ void sun6i_csi_capture_format(struct sun6i_csi_device *csi_dev,
|
||||
*field = csi_dev->capture.format.fmt.pix.field;
|
||||
}
|
||||
|
||||
static struct v4l2_subdev *
|
||||
sun6i_csi_capture_remote_subdev(struct sun6i_csi_capture *capture, u32 *pad)
|
||||
{
|
||||
struct media_pad *remote;
|
||||
|
||||
remote = media_pad_remote_pad_first(&capture->pad);
|
||||
|
||||
if (!remote || !is_media_entity_v4l2_subdev(remote->entity))
|
||||
return NULL;
|
||||
|
||||
if (pad)
|
||||
*pad = remote->index;
|
||||
|
||||
return media_entity_to_v4l2_subdev(remote->entity);
|
||||
}
|
||||
|
||||
/* Format */
|
||||
|
||||
static const struct sun6i_csi_capture_format sun6i_csi_capture_formats[] = {
|
||||
@ -822,8 +806,8 @@ static int sun6i_csi_capture_start_streaming(struct vb2_queue *queue,
|
||||
struct sun6i_csi_capture *capture = &csi_dev->capture;
|
||||
struct sun6i_csi_capture_state *state = &capture->state;
|
||||
struct video_device *video_dev = &capture->video_dev;
|
||||
struct v4l2_subdev *subdev = &csi_dev->bridge.subdev;
|
||||
struct device *dev = csi_dev->dev;
|
||||
struct v4l2_subdev *subdev;
|
||||
int ret;
|
||||
|
||||
state->sequence = 0;
|
||||
@ -832,12 +816,6 @@ static int sun6i_csi_capture_start_streaming(struct vb2_queue *queue,
|
||||
if (ret < 0)
|
||||
goto error_state;
|
||||
|
||||
subdev = sun6i_csi_capture_remote_subdev(capture, NULL);
|
||||
if (!subdev) {
|
||||
ret = -EINVAL;
|
||||
goto error_media_pipeline;
|
||||
}
|
||||
|
||||
/* PM */
|
||||
|
||||
ret = pm_runtime_resume_and_get(dev);
|
||||
@ -886,12 +864,10 @@ static void sun6i_csi_capture_stop_streaming(struct vb2_queue *queue)
|
||||
{
|
||||
struct sun6i_csi_device *csi_dev = vb2_get_drv_priv(queue);
|
||||
struct sun6i_csi_capture *capture = &csi_dev->capture;
|
||||
struct v4l2_subdev *subdev = &csi_dev->bridge.subdev;
|
||||
struct device *dev = csi_dev->dev;
|
||||
struct v4l2_subdev *subdev;
|
||||
|
||||
subdev = sun6i_csi_capture_remote_subdev(capture, NULL);
|
||||
if (subdev)
|
||||
v4l2_subdev_call(subdev, video, s_stream, 0);
|
||||
v4l2_subdev_call(subdev, video, s_stream, 0);
|
||||
|
||||
sun6i_csi_capture_disable(csi_dev);
|
||||
sun6i_csi_capture_irq_disable(csi_dev);
|
||||
|
Loading…
x
Reference in New Issue
Block a user