camsys_drv: v0.0x15.0 camsys_head: v0.9.0
[firefly-linux-kernel-4.4.55.git] / drivers / media / video / rk_camsys / camsys_drv.c
index 4f4440c76d23321553b22637d4d022b8892cd9e0..049492f9fa0a861b7090aa4ceab6c098e43dd6c8 100755 (executable)
@@ -167,9 +167,13 @@ static int camsys_extdev_register(camsys_devio_name_t *devio, camsys_dev_t *cams
 
     extdev = camsys_find_extdev(devio->dev_id, camsys_dev);
     if (extdev != NULL) {
-        err = -EBUSY;    /* ddl@rock-chips.com: v0.0x13.0 */
-        camsys_warn("Extdev(dev_id: 0x%x) has been registered in %s!",
-            devio->dev_id, dev_name(camsys_dev->miscdev.this_device));
+        if (strcmp(extdev->dev_name, devio->dev_name) == 0) {
+            err = 0;
+        } else {
+            err = -EINVAL;    /* ddl@rock-chips.com: v0.0x13.0 */
+            camsys_warn("Extdev(dev_id: 0x%x dev_name: %s) has been registered in %s!",
+                extdev->dev_id, extdev->dev_name,dev_name(camsys_dev->miscdev.this_device));
+        }
         goto end;
     }
 
@@ -245,7 +249,10 @@ static int camsys_extdev_register(camsys_devio_name_t *devio, camsys_dev_t *cams
 
     camsys_dev->iomux(extdev, (void*)camsys_dev);
 
-    camsys_trace(1,"Extdev(dev_id: 0x%x) register success",extdev->dev_id);
+    memcpy(extdev->dev_name,devio->dev_name, sizeof(extdev->dev_name));
+    camsys_trace(1,"Extdev(dev_id: 0x%x  dev_name: %s) register success",
+        extdev->dev_id,
+        extdev->dev_name);
 
     return 0;
 fail: