Message ID | 20220415152811.636419-36-paul.kocialkowski@bootlin.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Allwinner A31/A83T MIPI CSI-2 and A31 ISP / CSI Rework | expand |
Dne petek, 15. april 2022 ob 17:28:01 CEST je Paul Kocialkowski napisal(a): > 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> Best regards, Jernej > --- > .../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 > b3452ed825ad..b92f8aa55a92 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);
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 b3452ed825ad..b92f8aa55a92 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);
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(-)