Message ID | 20240822154531.25912-3-laurent.pinchart+renesas@ideasonboard.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Kieran Bingham |
Headers | show |
Series | media: v4l2: Improve media link validation | expand |
Hi, On 22/08/2024 18:45, Laurent Pinchart wrote: > The sun4i_csi driver doesn't implement link validation for the subdev it > registers, leaving the link between the subdev and its source > unvalidated. Fix it, using the v4l2_subdev_link_validate() helper. > > Fixes: 577bbf23b758 ("media: sunxi: Add A10 CSI driver") > Cc: stable@vger.kernel.org > Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> > Acked-by: Chen-Yu Tsai <wens@csie.org> > --- > drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c b/drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c > index 097a3a08ef7d..dbb26c7b2f8d 100644 > --- a/drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c > +++ b/drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c > @@ -39,6 +39,10 @@ static const struct media_entity_operations sun4i_csi_video_entity_ops = { > .link_validate = v4l2_subdev_link_validate, > }; > > +static const struct media_entity_operations sun4i_csi_subdev_entity_ops = { > + .link_validate = v4l2_subdev_link_validate, > +}; > + > static int sun4i_csi_notify_bound(struct v4l2_async_notifier *notifier, > struct v4l2_subdev *subdev, > struct v4l2_async_connection *asd) > @@ -214,6 +218,7 @@ static int sun4i_csi_probe(struct platform_device *pdev) > subdev->internal_ops = &sun4i_csi_subdev_internal_ops; > subdev->flags = V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_HAS_EVENTS; > subdev->entity.function = MEDIA_ENT_F_VID_IF_BRIDGE; > + subdev->entity.ops = &sun4i_csi_subdev_entity_ops; > subdev->owner = THIS_MODULE; > snprintf(subdev->name, sizeof(subdev->name), "sun4i-csi-0"); > v4l2_set_subdevdata(subdev, csi); Reviewed-by: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com> Tomi
diff --git a/drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c b/drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c index 097a3a08ef7d..dbb26c7b2f8d 100644 --- a/drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c +++ b/drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c @@ -39,6 +39,10 @@ static const struct media_entity_operations sun4i_csi_video_entity_ops = { .link_validate = v4l2_subdev_link_validate, }; +static const struct media_entity_operations sun4i_csi_subdev_entity_ops = { + .link_validate = v4l2_subdev_link_validate, +}; + static int sun4i_csi_notify_bound(struct v4l2_async_notifier *notifier, struct v4l2_subdev *subdev, struct v4l2_async_connection *asd) @@ -214,6 +218,7 @@ static int sun4i_csi_probe(struct platform_device *pdev) subdev->internal_ops = &sun4i_csi_subdev_internal_ops; subdev->flags = V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_HAS_EVENTS; subdev->entity.function = MEDIA_ENT_F_VID_IF_BRIDGE; + subdev->entity.ops = &sun4i_csi_subdev_entity_ops; subdev->owner = THIS_MODULE; snprintf(subdev->name, sizeof(subdev->name), "sun4i-csi-0"); v4l2_set_subdevdata(subdev, csi);