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);
 
        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);
 
 
        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);
 
 
        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;
 
 
        /* 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);
 
 
        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;
 
 
        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);
 
        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);
 
        /*
 
  *
  * - 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);
 
  * 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.