media: mc: Set bus_info in media_device_init()
authorSakari Ailus <sakari.ailus@linux.intel.com>
Sat, 22 Jan 2022 11:31:37 +0000 (11:31 +0000)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sun, 24 Apr 2022 07:05:53 +0000 (08:05 +0100)
Set bus_info field based on struct device in media_device_init() and
remove corresponding code from drivers.

Also update media_device_init() documentation: the dev field must be now
initialised before calling it.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/mc/mc-device.c
drivers/media/pci/intel/ipu3/ipu3-cio2-main.c
drivers/media/platform/renesas/rcar-vin/rcar-core.c
drivers/media/platform/renesas/vsp1/vsp1_drv.c
drivers/media/platform/st/stm32/stm32-dcmi.c
drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c
drivers/media/platform/ti/cal/cal.c
include/media/media-device.h

index 094647f..824d89b 100644 (file)
@@ -700,6 +700,10 @@ void media_device_init(struct media_device *mdev)
 
        atomic_set(&mdev->request_id, 0);
 
+       if (!*mdev->bus_info)
+               media_set_bus_info(mdev->bus_info, sizeof(mdev->bus_info),
+                                  mdev->dev);
+
        dev_dbg(mdev->dev, "Media device initialized\n");
 }
 EXPORT_SYMBOL_GPL(media_device_init);
index 0e9b050..b15fac7 100644 (file)
@@ -1777,8 +1777,6 @@ static int cio2_pci_probe(struct pci_dev *pci_dev,
        cio2->media_dev.dev = dev;
        strscpy(cio2->media_dev.model, CIO2_DEVICE_NAME,
                sizeof(cio2->media_dev.model));
-       snprintf(cio2->media_dev.bus_info, sizeof(cio2->media_dev.bus_info),
-                "PCI:%s", pci_name(cio2->pci_dev));
        cio2->media_dev.hw_revision = 0;
 
        media_device_init(&cio2->media_dev);
index 64cb05b..95f338b 100644 (file)
@@ -94,8 +94,6 @@ static int rvin_group_init(struct rvin_group *group, struct rvin_dev *vin,
 
        strscpy(mdev->driver_name, KBUILD_MODNAME, sizeof(mdev->driver_name));
        strscpy(mdev->model, match->compatible, sizeof(mdev->model));
-       snprintf(mdev->bus_info, sizeof(mdev->bus_info), "platform:%s",
-                dev_name(mdev->dev));
 
        media_device_init(mdev);
 
index 502c7d9..1f73c48 100644 (file)
@@ -243,8 +243,6 @@ static int vsp1_create_entities(struct vsp1_device *vsp1)
        mdev->dev = vsp1->dev;
        mdev->hw_revision = vsp1->version;
        strscpy(mdev->model, vsp1->info->model, sizeof(mdev->model));
-       snprintf(mdev->bus_info, sizeof(mdev->bus_info), "platform:%s",
-                dev_name(mdev->dev));
        media_device_init(mdev);
 
        vsp1->media_ops.link_setup = vsp1_entity_link_setup;
index c4c65d8..09a743c 100644 (file)
@@ -1997,8 +1997,6 @@ static int dcmi_probe(struct platform_device *pdev)
 
        /* Initialize media device */
        strscpy(dcmi->mdev.model, DRV_NAME, sizeof(dcmi->mdev.model));
-       snprintf(dcmi->mdev.bus_info, sizeof(dcmi->mdev.bus_info),
-                "platform:%s", DRV_NAME);
        dcmi->mdev.dev = &pdev->dev;
        media_device_init(&dcmi->mdev);
 
index 80a10f2..18e6c65 100644 (file)
@@ -173,8 +173,6 @@ static int sun4i_csi_probe(struct platform_device *pdev)
        strscpy(csi->mdev.model, "Allwinner Video Capture Device",
                sizeof(csi->mdev.model));
        csi->mdev.hw_revision = 0;
-       snprintf(csi->mdev.bus_info, sizeof(csi->mdev.bus_info), "platform:%s",
-                dev_name(csi->dev));
        media_device_init(&csi->mdev);
        csi->v4l.mdev = &csi->mdev;
 
index fc96921..a971587 100644 (file)
@@ -733,8 +733,6 @@ static int sun6i_csi_v4l2_init(struct sun6i_csi *csi)
        strscpy(csi->media_dev.model, "Allwinner Video Capture Device",
                sizeof(csi->media_dev.model));
        csi->media_dev.hw_revision = 0;
-       snprintf(csi->media_dev.bus_info, sizeof(csi->media_dev.bus_info),
-                "platform:%s", dev_name(csi->dev));
 
        media_device_init(&csi->media_dev);
        v4l2_async_nf_init(&csi->notifier);
index 4a4a6c5..11f67ab 100644 (file)
@@ -884,8 +884,6 @@ static int cal_media_init(struct cal_dev *cal)
        mdev->dev = cal->dev;
        mdev->hw_revision = cal->revision;
        strscpy(mdev->model, "CAL", sizeof(mdev->model));
-       snprintf(mdev->bus_info, sizeof(mdev->bus_info), "platform:%s",
-                dev_name(mdev->dev));
        media_device_init(mdev);
 
        /*
index f0baee6..a10b305 100644 (file)
@@ -225,6 +225,9 @@ static inline __must_check int media_entity_enum_init(
  *
  * - dev must point to the parent device
  * - model must be filled with the device model name
+ *
+ * The bus_info field is set by media_device_init() for PCI and platform devices
+ * if the field begins with '\0'.
  */
 void media_device_init(struct media_device *mdev);
 
@@ -249,9 +252,6 @@ void media_device_cleanup(struct media_device *mdev);
  * The caller is responsible for initializing the &media_device structure
  * before registration. The following fields of &media_device must be set:
  *
- *  - &media_device.dev must point to the parent device (usually a &pci_dev,
- *    &usb_interface or &platform_device instance).
- *
  *  - &media_device.model must be filled with the device model name as a
  *    NUL-terminated UTF-8 string. The device/model revision must not be
  *    stored in this field.