From 51b573ba61bff490030ca3d8f42000f69dc9deff Mon Sep 17 00:00:00 2001 From: ddl Date: Thu, 18 Sep 2014 09:57:37 +0800 Subject: [PATCH] camsys_drv: v0.0x15.0 camsys_head: v0.9.0 --- drivers/media/video/rk_camsys/camsys_drv.c | 15 +++++++++++---- drivers/media/video/rk_camsys/camsys_internal.h | 5 ++++- include/media/camsys_head.h | 5 ++++- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/drivers/media/video/rk_camsys/camsys_drv.c b/drivers/media/video/rk_camsys/camsys_drv.c index 4f4440c76d23..049492f9fa0a 100755 --- a/drivers/media/video/rk_camsys/camsys_drv.c +++ b/drivers/media/video/rk_camsys/camsys_drv.c @@ -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: diff --git a/drivers/media/video/rk_camsys/camsys_internal.h b/drivers/media/video/rk_camsys/camsys_internal.h index 30da5fafeba5..fd46812c1893 100755 --- a/drivers/media/video/rk_camsys/camsys_internal.h +++ b/drivers/media/video/rk_camsys/camsys_internal.h @@ -97,8 +97,10 @@ 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" @@ -193,6 +195,7 @@ typedef struct camsys_flash_s { 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; diff --git a/include/media/camsys_head.h b/include/media/camsys_head.h index f56969670393..28dcc5b01a13 100755 --- a/include/media/camsys_head.h +++ b/include/media/camsys_head.h @@ -23,8 +23,10 @@ 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" @@ -209,6 +211,7 @@ typedef struct camsys_extdev_clk_s { } 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 -- 2.34.1