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;
}
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:
2) add support JPG irq connect;
*v0.0x14.0:
1) camsys_extdev_register return -EBUSY when this dev_id has been registered;
+*v0.0x15.0:
+ 1) check extdev name when dev_id has been registered;
*/
-#define CAMSYS_DRIVER_VERSION KERNEL_VERSION(0,0x14,0)
+#define CAMSYS_DRIVER_VERSION KERNEL_VERSION(0,0x15,0)
#define CAMSYS_PLATFORM_DRV_NAME "RockChip-CamSys"
camsys_gpio_t fl;
} camsys_flash_t;
typedef struct camsys_extdev_s {
+ unsigned char dev_name[CAMSYS_NAME_LEN];
unsigned int dev_id;
camsys_regulator_t avdd;
camsys_regulator_t dovdd;
1) add flash_trigger_out control
*v0.8.0:
1) support isp iommu
+*v0.9.0:
+ 1) add dev_name in struct camsys_devio_name_s;
*/
-#define CAMSYS_HEAD_VERSION KERNEL_VERSION(0,8,0)
+#define CAMSYS_HEAD_VERSION KERNEL_VERSION(0,9,0)
#define CAMSYS_MARVIN_DEVNAME "camsys_marvin"
#define CAMSYS_CIF0_DEVNAME "camsys_cif0"
} camsys_extdev_clk_t;
typedef struct camsys_devio_name_s {
+ unsigned char dev_name[CAMSYS_NAME_LEN];
unsigned int dev_id;
camsys_regulator_info_t avdd; // sensor avdd power regulator name