Hi Steve, On Tue 06 Aug 2019 at 00:34, Steve Longerbeam wrote: > Implement a notifier bound op to register media links from the remote > sub-device's source pad(s) to the CSI sink pad. > > Signed-off-by: Steve Longerbeam <slongerbeam@xxxxxxxxx> > --- > drivers/staging/media/imx/imx7-media-csi.c | 24 ++++++++++++++++++++++ > 1 file changed, 24 insertions(+) > > diff --git a/drivers/staging/media/imx/imx7-media-csi.c b/drivers/staging/media/imx/imx7-media-csi.c > index a1c96c52a606..f71ac485f780 100644 > --- a/drivers/staging/media/imx/imx7-media-csi.c > +++ b/drivers/staging/media/imx/imx7-media-csi.c > @@ -196,6 +196,11 @@ struct imx7_csi { > struct completion last_eof_completion; > }; > > +static inline struct imx7_csi *notifier_to_dev(struct v4l2_async_notifier *n) > As the other one add the namespace for the function name: imx7_csi_notifier_to_dev other than this, looks good to me. Cheers, Rui > +{ > + return container_of(n, struct imx7_csi, notifier); > +} > + > static u32 imx7_csi_reg_read(struct imx7_csi *csi, unsigned int offset) > { > return readl(csi->regbase + offset); > @@ -1173,6 +1178,23 @@ static int imx7_csi_parse_endpoint(struct device *dev, > return fwnode_device_is_available(asd->match.fwnode) ? 0 : -EINVAL; > } > > +static int imx7_csi_notify_bound(struct v4l2_async_notifier *notifier, > + struct v4l2_subdev *sd, > + struct v4l2_async_subdev *asd) > +{ > + struct imx7_csi *csi = notifier_to_dev(notifier); > + struct media_pad *sink = &csi->sd.entity.pads[IMX7_CSI_PAD_SINK]; > + > + return media_create_fwnode_pad_links(sink, > + dev_fwnode(csi->sd.dev), > + &sd->entity, > + dev_fwnode(sd->dev), 0); > +} > + > +static const struct v4l2_async_notifier_operations imx7_csi_notify_ops = { > + .bound = imx7_csi_notify_bound, > +}; > + > static int imx7_csi_probe(struct platform_device *pdev) > { > struct device *dev = &pdev->dev; > @@ -1253,6 +1275,8 @@ static int imx7_csi_probe(struct platform_device *pdev) > > v4l2_async_notifier_init(&csi->notifier); > > + csi->notifier.ops = &imx7_csi_notify_ops; > + > ret = v4l2_async_register_fwnode_subdev(&csi->sd, &csi->notifier, > sizeof(struct v4l2_async_subdev), > NULL, 0,