lkml.org 
[lkml]   [2022]   [Mar]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH v3 35/46] media: sun6i-csi: Get bridge subdev directly in capture stream ops
Date
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>
---
.../sunxi/sun6i-csi/sun6i_csi_capture.c | 30 ++-----------------
1 file changed, 3 insertions(+), 27 deletions(-)

diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c
index be1a4fe8fe5f..2f9bf75e4e39 100644
--- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c
+++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c
@@ -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_entity_remote_pad(&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);
--
2.35.1
\
 
 \ /
  Last update: 2022-03-11 15:40    [W:0.245 / U:0.172 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site