Hi Sakari, Thank you for the patch. On Thu, May 25, 2023 at 12:16:08PM +0300, Sakari Ailus wrote: > Register V4L2 device before the async notifier so the struct device will > be available for the notifier which makes it possible to use it for debug > prints. Please record in the commit message that this is to prepare for patch 31/32. Same comment for other patches in this series. > Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> > --- > drivers/media/platform/marvell/cafe-driver.c | 11 +++++++++-- > drivers/media/platform/marvell/mcam-core.c | 6 ------ > 2 files changed, 9 insertions(+), 8 deletions(-) > > diff --git a/drivers/media/platform/marvell/cafe-driver.c b/drivers/media/platform/marvell/cafe-driver.c > index dd1bba70bd791..fbfbb9f67ddfc 100644 > --- a/drivers/media/platform/marvell/cafe-driver.c > +++ b/drivers/media/platform/marvell/cafe-driver.c > @@ -536,6 +536,10 @@ static int cafe_pci_probe(struct pci_dev *pdev, > if (ret) > goto out_pdown; > > + ret = v4l2_device_register(mcam->dev, &mcam->v4l2_dev); > + if (ret) > + goto out_smbus_shutdown; > + > v4l2_async_nf_init(&mcam->notifier); > > asd = v4l2_async_nf_add_i2c(&mcam->notifier, > @@ -544,12 +548,12 @@ static int cafe_pci_probe(struct pci_dev *pdev, > struct v4l2_async_connection); > if (IS_ERR(asd)) { > ret = PTR_ERR(asd); > - goto out_smbus_shutdown; > + goto out_v4l2_device_unregister; > } > > ret = mccic_register(mcam); > if (ret) > - goto out_smbus_shutdown; > + goto out_v4l2_device_unregister; > > clkdev_create(mcam->mclk, "xclk", "%d-%04x", > i2c_adapter_id(cam->i2c_adapter), ov7670_info.addr); > @@ -565,6 +569,8 @@ static int cafe_pci_probe(struct pci_dev *pdev, > > out_mccic_shutdown: > mccic_shutdown(mcam); > +out_v4l2_device_unregister: > + v4l2_device_unregister(&mcam->v4l2_dev); > out_smbus_shutdown: > cafe_smbus_shutdown(cam); > out_pdown: > @@ -587,6 +593,7 @@ static int cafe_pci_probe(struct pci_dev *pdev, > static void cafe_shutdown(struct cafe_camera *cam) > { > mccic_shutdown(&cam->mcam); > + v4l2_device_unregister(&cam->mcam.v4l2_dev); > cafe_smbus_shutdown(cam); > free_irq(cam->pdev->irq, cam); > pci_iounmap(cam->pdev, cam->mcam.regs); > diff --git a/drivers/media/platform/marvell/mcam-core.c b/drivers/media/platform/marvell/mcam-core.c > index 3cee6d6b83fa9..bcfcecdb03ea2 100644 > --- a/drivers/media/platform/marvell/mcam-core.c > +++ b/drivers/media/platform/marvell/mcam-core.c > @@ -1866,10 +1866,6 @@ int mccic_register(struct mcam_camera *cam) > /* > * Register with V4L > */ The comment doesn't seem valid anymore. > - ret = v4l2_device_register(cam->dev, &cam->v4l2_dev); > - if (ret) > - goto out; > - > mutex_init(&cam->s_mutex); > cam->state = S_NOTREADY; > mcam_set_config_needed(cam, 1); > @@ -1915,7 +1911,6 @@ int mccic_register(struct mcam_camera *cam) > > out: > v4l2_async_nf_unregister(&cam->notifier); > - v4l2_device_unregister(&cam->v4l2_dev); > v4l2_async_nf_cleanup(&cam->notifier); > return ret; > } > @@ -1937,7 +1932,6 @@ void mccic_shutdown(struct mcam_camera *cam) > mcam_free_dma_bufs(cam); > v4l2_ctrl_handler_free(&cam->ctrl_handler); > v4l2_async_nf_unregister(&cam->notifier); > - v4l2_device_unregister(&cam->v4l2_dev); > v4l2_async_nf_cleanup(&cam->notifier); > } > EXPORT_SYMBOL_GPL(mccic_shutdown); -- Regards, Laurent Pinchart