From: zyc Date: Tue, 19 Aug 2014 01:56:45 +0000 (+0800) Subject: rk312x : cif : add many sensor drivers,include gc0329,gc0308 ... X-Git-Tag: firefly_0821_release~4862 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=628c7f1ce29210115d7598510b98ed57b06b5958;p=firefly-linux-kernel-4.4.55.git rk312x : cif : add many sensor drivers,include gc0329,gc0308 ... --- diff --git a/arch/arm/boot/dts/rk312x-cif-sensor.dtsi b/arch/arm/boot/dts/rk312x-cif-sensor.dtsi index 810ddc97ad7d..b64232ef9a09 100644 --- a/arch/arm/boot/dts/rk312x-cif-sensor.dtsi +++ b/arch/arm/boot/dts/rk312x-cif-sensor.dtsi @@ -13,18 +13,43 @@ ov2659{ is_front = <1>; rockchip,powerdown = <&gpio3 GPIO_D7 GPIO_ACTIVE_HIGH>; + #pwdn_active = <>; #rockchip,power = <>; + #pwr_active = <>; + #rockchip,reset = <>; + #rst_active = <>; mir = <0>; flash_attach = <0>; resolution = ; pwdn_info = ; powerup_sequence = ; + orientation = <0>; i2c_add = ; i2c_rata = <100000>; i2c_chl = <0>; cif_chl = <0>; mclk_rate = <24>; }; + gc0329{ + is_front = <1>; + rockchip,powerdown = <&gpio3 GPIO_D7 GPIO_ACTIVE_HIGH>; + #pwdn_active = <>; + #rockchip,power = <>; + #pwr_active = <>; + #rockchip,reset = <>; + #rst_active = <>; + mir = <0>; + flash_attach = <0>; + resolution = ; + pwdn_info = ; + powerup_sequence = ; + orientation = <90>; + i2c_add = ; + i2c_rata = <100000>; + i2c_chl = <0>; + cif_chl = <0>; + mclk_rate = <24>; + }; }; }; diff --git a/arch/arm/mach-rockchip/rk30_camera.h b/arch/arm/mach-rockchip/rk30_camera.h index 5aa0b57af637..98e58c8785c0 100644 --- a/arch/arm/mach-rockchip/rk30_camera.h +++ b/arch/arm/mach-rockchip/rk30_camera.h @@ -21,11 +21,11 @@ #ifndef __ASM_ARCH_CAMERA_RK30_H_ #define __ASM_ARCH_CAMERA_RK30_H_ -#define RK29_CAM_DRV_NAME "rk3066b-camera" +#define RK29_CAM_DRV_NAME "rk312x-camera" #define RK_SUPPORT_CIF0 1 #define RK_SUPPORT_CIF1 0 -#define RK3288_CIF_NAME "rk3288_cif" -#define RK3288_SENSOR_NAME "rk3288_sensor" +#define RK3288_CIF_NAME "rk312x_cif" +#define RK3288_SENSOR_NAME "rk312x_sensor" #include "rk_camera.h" #include @@ -48,7 +48,7 @@ #endif -#define CAMERA_VIDEOBUF_ARM_ACCESS 1 +#define CAMERA_VIDEOBUF_ARM_ACCESS 0 #endif diff --git a/arch/arm/mach-rockchip/rk_camera.c b/arch/arm/mach-rockchip/rk_camera.c index 7d8db65d313a..b15c75c3087c 100644 --- a/arch/arm/mach-rockchip/rk_camera.c +++ b/arch/arm/mach-rockchip/rk_camera.c @@ -157,10 +157,12 @@ static int rk_dts_sensor_probe(struct platform_device *pdev) return -ENODEV; for_each_child_of_node(np, cp) { u32 flash_attach,mir,i2c_rata,i2c_chl,i2c_add,cif_chl,mclk_rate,is_front; - u32 resolution,pwdn_info,powerup_sequence; + u32 resolution,pwdn_info,powerup_sequence,orientation; u32 powerdown = INVALID_GPIO,power = INVALID_GPIO,reset = INVALID_GPIO; u32 af = INVALID_GPIO,flash = INVALID_GPIO; + + int pwr_active = INVALID_VALUE, rst_active = INVALID_VALUE, pwdn_active = INVALID_VALUE; struct rkcamera_platform_data *new_camera; new_camera = kzalloc(sizeof(struct rkcamera_platform_data),GFP_KERNEL); if(!sensor_num) @@ -174,35 +176,44 @@ static int rk_dts_sensor_probe(struct platform_device *pdev) new_camera_list = new_camera; if (of_property_read_u32(cp, "flash_attach", &flash_attach)) { - printk("%s flash_attach %d \n", cp->name, flash_attach); + dprintk("%s:Get %s rockchip,flash_attach failed!\n",__func__, cp->name); } if (of_property_read_u32(cp, "mir", &mir)) { - printk("%s mir %d \n", cp->name, mir); + dprintk("%s:Get %s rockchip,mir failed!\n",__func__, cp->name); } if (of_property_read_u32(cp, "i2c_rata", &i2c_rata)) { - printk("%s i2c_rata %d \n", cp->name, i2c_rata); + dprintk("%s:Get %s rockchip,i2c_rata failed!\n",__func__, cp->name); } if (of_property_read_u32(cp, "i2c_chl", &i2c_chl)) { - printk("%s i2c_chl %d \n", cp->name, i2c_chl); + dprintk("%s:Get %s rockchip,i2c_chl failed!\n",__func__, cp->name); } if (of_property_read_u32(cp, "cif_chl", &cif_chl)) { - printk("%s cif_chl %d \n", cp->name, cif_chl); + dprintk("%s:Get %s rockchip,cif_chl failed!\n",__func__, cp->name); } if (of_property_read_u32(cp, "mclk_rate", &mclk_rate)) { - printk("%s mclk_rate %d \n", cp->name, mclk_rate); + dprintk("%s:Get %s rockchip,mclk_rate failed!\n",__func__, cp->name); } if (of_property_read_u32(cp, "is_front", &is_front)) { - printk("%s is_front %d \n", cp->name, is_front); + dprintk("%s:Get %s rockchip,is_front failed!\n",__func__, cp->name); } if (of_property_read_u32(cp, "rockchip,powerdown", &powerdown)) { printk("%s:Get %s rockchip,powerdown failed!\n",__func__, cp->name); } + if (of_property_read_u32(cp, "pwdn_active", &pwdn_active)) { + dprintk("%s:Get %s pwdn_active failed!\n",__func__, cp->name); + } if (of_property_read_u32(cp, "rockchip,power", &power)) { printk("%s:Get %s rockchip,power failed!\n",__func__, cp->name); } + if (of_property_read_u32(cp, "pwr_active", &pwr_active)) { + dprintk("%s:Get %s pwr_active failed!\n",__func__, cp->name); + } if (of_property_read_u32(cp, "rockchip,reset", &reset)) { printk("%s:Get %s rockchip,reset failed!\n",__func__, cp->name); } + if (of_property_read_u32(cp, "rst_active", &rst_active)) { + dprintk("%s:Get %s rst_active failed!\n",__func__, cp->name); + } if (of_property_read_u32(cp, "rockchip,af", &af)) { printk("%s:Get %s rockchip,af failed!\n",__func__, cp->name); } @@ -210,18 +221,21 @@ static int rk_dts_sensor_probe(struct platform_device *pdev) printk("%s:Get %s rockchip,flash failed!\n",__func__, cp->name); } if (of_property_read_u32(cp, "i2c_add", &i2c_add)) { - printk("%s i2c_add %d \n", cp->name, i2c_add); + printk("%s:Get %s rockchip,i2c_add failed!\n",__func__, cp->name); } if (of_property_read_u32(cp, "resolution", &resolution)) { - printk("%s resolution %d \n", cp->name, resolution); + printk("%s:Get %s rockchip,resolution failed!\n",__func__, cp->name); } if (of_property_read_u32(cp, "pwdn_info", &pwdn_info)) { - printk("%s pwdn_info %d \n", cp->name, pwdn_info); + printk("%s:Get %s rockchip,pwdn_info failed!\n",__func__, cp->name); } if (of_property_read_u32(cp, "powerup_sequence", &powerup_sequence)) { - printk("%s powerup_sequence %d \n", cp->name, powerup_sequence); + printk("%s:Get %s rockchip,powerup_sequence failed!\n",__func__, cp->name); } - + if (of_property_read_u32(cp, "orientation", &orientation)) { + printk("%s:Get %s rockchip,orientation failed!\n",__func__, cp->name); + } + strcpy(new_camera->dev.i2c_cam_info.type, cp->name); new_camera->dev.i2c_cam_info.addr = i2c_add>>1; new_camera->dev.desc_info.host_desc.bus_id = RK29_CAM_PLATFORM_DEV_ID+cif_chl;/*yzm*/ @@ -238,8 +252,8 @@ static int rk_dts_sensor_probe(struct platform_device *pdev) new_camera->io.gpio_power = power; new_camera->io.gpio_af = af; new_camera->io.gpio_flash = flash; - new_camera->io.gpio_flag = ((INVALID_GPIO&0x01)<orientation = INVALID_GPIO; + new_camera->io.gpio_flag = ((pwr_active&0x01)<orientation = orientation; new_camera->resolution = resolution; new_camera->mirror = mir; new_camera->i2c_rate = i2c_rata; @@ -346,7 +360,7 @@ static int sensor_reset_default_cb (struct rk29camera_gpio_res *res, int on) int camera_io_init = res->gpio_init; int ret = 0; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); if (camera_reset != INVALID_GPIO) { @@ -376,7 +390,7 @@ static int sensor_powerdown_default_cb (struct rk29camera_gpio_res *res, int on) int camera_io_init = res->gpio_init; int ret = 0; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); if (camera_powerdown != INVALID_GPIO) { @@ -406,7 +420,7 @@ static int sensor_flash_default_cb (struct rk29camera_gpio_res *res, int on) int camera_io_init = res->gpio_init; int ret = 0; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); if (camera_flash != INVALID_GPIO) { @@ -455,7 +469,7 @@ static int sensor_afpower_default_cb (struct rk29camera_gpio_res *res, int on) int ret = 0; int camera_af = res->gpio_af; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); if (camera_af != INVALID_GPIO) { @@ -720,7 +734,7 @@ static int _rk_sensor_io_deinit_(struct rk29camera_gpio_res *gpio_res) unsigned int camera_reset = INVALID_GPIO, camera_power = INVALID_GPIO; unsigned int camera_powerdown = INVALID_GPIO, camera_flash = INVALID_GPIO,camera_af = INVALID_GPIO; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); camera_reset = gpio_res->gpio_reset; @@ -772,7 +786,7 @@ static int rk_sensor_io_init(void) static bool is_init = false; struct rkcamera_platform_data *new_camera; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); if(is_init) { return 0; @@ -806,7 +820,7 @@ static int rk_sensor_io_deinit(int sensor) { struct rkcamera_platform_data *new_camera; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); new_camera = new_camera_head; while(new_camera != NULL) @@ -934,7 +948,7 @@ static int rk_sensor_pwrseq(struct device *dev,int powerup_sequence, int on, int int ret =0; int i,powerup_type; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); for (i=0; i<8; i++) { @@ -1019,7 +1033,7 @@ static int rk_sensor_power(struct device *dev, int on) /*icd->pdev*/ bool real_pwroff = true; int ret = 0; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); new_camera = plat_data->register_dev_new; /*new_camera[]*/ @@ -1109,7 +1123,7 @@ static int rk_sensor_reset(struct device *dev) static int rk_sensor_powerdown(struct device *dev, int on) { -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); return rk_sensor_ioctrl(dev,Cam_PowerDown,on); } @@ -1120,7 +1134,7 @@ int rk_sensor_register(void) struct rkcamera_platform_data *new_camera; i = 0; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); new_camera = new_camera_head; @@ -1154,14 +1168,10 @@ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE new_camera->dev.device_info.id = i+6; new_camera->dev.device_info.dev.platform_data = &new_camera->dev.desc_info; - debug_printk("platform_data(desc_info) %p +++++++++++++\n",new_camera->dev.device_info.dev.platform_data); new_camera->dev.desc_info.subdev_desc.drv_priv = &rk_camera_platform_data; platform_device_register(&(new_camera->dev.device_info)); - debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); - debug_printk("new_camera = %p +++++++++++++\n",new_camera); - debug_printk("new_camera->next_camera = %p +++++++++++++\n",new_camera->next_camera); - + i++; new_camera = new_camera->next_camera; } diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig index 8aca45fd2f99..2ed6a1343b86 100644 --- a/drivers/media/video/Kconfig +++ b/drivers/media/video/Kconfig @@ -16,7 +16,55 @@ menu "rockchip camera sensor interface driver" depends on ROCKCHIP_CAMERA_SENSOR_INTERFACE default y + + config GC0307 + tristate "gc0307,support" + + config GC0308 + tristate "gc0308,support" + + config GC0309 + tristate "gc0309,support" + + config GC0328 + tristate "gc0328,support" + + config GC0329 + tristate "gc0329,support" + + config GC2015 + tristate "gc2015,support" + + config GC2035 + tristate "gc2035,support" + + config GT2005 + tristate "gt2005,support" + + config HM2057 + tristate "hm2057,support" + + config HM5065 + tristate "hm5065,support" + + config MT9P111 + tristate "mt9p111,support" + + config NT99160_2WAY + tristate "nt99160_2way,support" + + config NT99240_2WAY + tristate "nt99240_2way,support" + config OV2659 tristate "ov2659,support" default y + + config OV5640 + tristate "ov5640,support" + + + config SP2518 + tristate "sp2518,support" + endmenu diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile index 7dfc4b65f8c7..328ed947a5ce 100644 --- a/drivers/media/video/Makefile +++ b/drivers/media/video/Makefile @@ -1,2 +1,33 @@ obj-$(CONFIG_RK30_CAMERA_ONEFRAME) += rk30_camera_oneframe.o generic_sensor.o -obj-$(CONFIG_OV2659) += ov2659.o \ No newline at end of file + +obj-$(CONFIG_GC0307) += gc0307.o +obj-$(CONFIG_GC0308) += gc0308.o +obj-$(CONFIG_GC0309) += gc0309.o +obj-$(CONFIG_GC0328) += gc0328.o +obj-$(CONFIG_GC0329) += gc0329.o +obj-$(CONFIG_GC2015) += gc2015.o +obj-$(CONFIG_GC2035) += gc2035.o + +obj-$(CONFIG_GT2005) += gt2005.o + +obj-$(CONFIG_HM2057) += hm2057.o +obj-$(CONFIG_HM5065) += hm5065.o + +obj-$(CONFIG_MT9P111) += mt9p111.o + +obj-$(CONFIG_MT9T111) += mt9t111.o + +obj-$(CONFIG_NT99160_2WAY) += nt99160_2way.o + +obj-$(CONFIG_NT99240_2WAY) += nt99240_2way.o + + + + +obj-$(CONFIG_OV2659) += ov2659.o +obj-$(CONFIG_OV5640) += ov5640.o + + +obj-$(CONFIG_SP2518) += sp2518.o + + diff --git a/drivers/media/video/gc0307.c b/drivers/media/video/gc0307.c index 720de7b2727d..3b2e9978c6a6 100755 --- a/drivers/media/video/gc0307.c +++ b/drivers/media/video/gc0307.c @@ -22,9 +22,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR); #define SENSOR_NAME RK29_CAM_SENSOR_GC0307 #define SENSOR_V4L2_IDENT V4L2_IDENT_GC0307 #define SENSOR_ID 0x99 -#define SENSOR_BUS_PARAM (SOCAM_MASTER |\ - SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\ - SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) +#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\ + V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\ + V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) #define SENSOR_PREVIEW_W 640 #define SENSOR_PREVIEW_H 480 #define SENSOR_PREVIEW_FPS 15000 // 15fps @@ -1024,7 +1024,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] = static struct rk_sensor_datafmt sensor_colour_fmts[] = { {V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} }; -static struct soc_camera_ops sensor_ops; +/*static struct soc_camera_ops sensor_ops;*/ /* diff --git a/drivers/media/video/gc0308.c b/drivers/media/video/gc0308.c index 5c3525f5d08d..e712f7d7f9ba 100755 --- a/drivers/media/video/gc0308.c +++ b/drivers/media/video/gc0308.c @@ -22,9 +22,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR); #define SENSOR_NAME RK29_CAM_SENSOR_GC0308 #define SENSOR_V4L2_IDENT V4L2_IDENT_GC0308 #define SENSOR_ID 0x9b -#define SENSOR_BUS_PARAM (SOCAM_MASTER |\ - SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\ - SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) +#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\ + V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\ + V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) #define SENSOR_PREVIEW_W 640 #define SENSOR_PREVIEW_H 480 #define SENSOR_PREVIEW_FPS 15000 // 15fps @@ -912,7 +912,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] = static struct rk_sensor_datafmt sensor_colour_fmts[] = { {V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} }; -static struct soc_camera_ops sensor_ops; +/*static struct soc_camera_ops sensor_ops;*/ /* diff --git a/drivers/media/video/gc0309.c b/drivers/media/video/gc0309.c index 35a9a40f40d7..19633c62c432 100755 --- a/drivers/media/video/gc0309.c +++ b/drivers/media/video/gc0309.c @@ -22,9 +22,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR); #define SENSOR_NAME RK29_CAM_SENSOR_GC0309 #define SENSOR_V4L2_IDENT V4L2_IDENT_GC0309 #define SENSOR_ID 0xa0 -#define SENSOR_BUS_PARAM (SOCAM_MASTER |\ - SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_HIGH|\ - SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) +#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\ + V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\ + V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) #define SENSOR_PREVIEW_W 640 #define SENSOR_PREVIEW_H 480 #define SENSOR_PREVIEW_FPS 15000 // 15fps @@ -862,7 +862,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] = static struct rk_sensor_datafmt sensor_colour_fmts[] = { {V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} }; -static struct soc_camera_ops sensor_ops; +/*static struct soc_camera_ops sensor_ops;*/ /* diff --git a/drivers/media/video/gc0328.c b/drivers/media/video/gc0328.c index 249598724488..fabe6cf2b1b1 100755 --- a/drivers/media/video/gc0328.c +++ b/drivers/media/video/gc0328.c @@ -20,9 +20,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR); #define SENSOR_NAME RK29_CAM_SENSOR_GC0328 #define SENSOR_V4L2_IDENT V4L2_IDENT_GC0328 #define SENSOR_ID 0x9d -#define SENSOR_BUS_PARAM (SOCAM_MASTER |\ - SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\ - SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) +#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\ + V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\ + V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) #define SENSOR_PREVIEW_W 640 #define SENSOR_PREVIEW_H 480 #define SENSOR_PREVIEW_FPS 15000 // 15fps @@ -771,7 +771,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] = static struct rk_sensor_datafmt sensor_colour_fmts[] = { {V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} }; -static struct soc_camera_ops sensor_ops; +/*static struct soc_camera_ops sensor_ops;*/ /* diff --git a/drivers/media/video/gc0329.c b/drivers/media/video/gc0329.c index 2b5178258599..277f592dc9c5 100755 --- a/drivers/media/video/gc0329.c +++ b/drivers/media/video/gc0329.c @@ -22,9 +22,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR); #define SENSOR_NAME RK29_CAM_SENSOR_GC0329 #define SENSOR_V4L2_IDENT V4L2_IDENT_GC0329 #define SENSOR_ID 0xc0 -#define SENSOR_BUS_PARAM (SOCAM_MASTER |\ - SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_HIGH|\ - SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) +#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\ + V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\ + V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) #define SENSOR_PREVIEW_W 640 #define SENSOR_PREVIEW_H 480 #define SENSOR_PREVIEW_FPS 15000 // 15fps @@ -846,7 +846,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] = static struct rk_sensor_datafmt sensor_colour_fmts[] = { {V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} }; -static struct soc_camera_ops sensor_ops; +//static struct soc_camera_ops sensor_ops; /* diff --git a/drivers/media/video/gc2015.c b/drivers/media/video/gc2015.c index 097cf64d920d..786b35e4fa76 100755 --- a/drivers/media/video/gc2015.c +++ b/drivers/media/video/gc2015.c @@ -22,9 +22,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR); #define SENSOR_NAME RK29_CAM_SENSOR_GC2015 #define SENSOR_V4L2_IDENT V4L2_IDENT_GC2015 #define SENSOR_ID 0x2005 -#define SENSOR_BUS_PARAM (SOCAM_MASTER |\ - SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\ - SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) +#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\ + V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\ + V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) #define SENSOR_PREVIEW_W 800 #define SENSOR_PREVIEW_H 600 #define SENSOR_PREVIEW_FPS 15000 // 15fps @@ -835,7 +835,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] = static struct rk_sensor_datafmt sensor_colour_fmts[] = { {V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} }; -static struct soc_camera_ops sensor_ops; +/*static struct soc_camera_ops sensor_ops;*/ /* diff --git a/drivers/media/video/gc2035.c b/drivers/media/video/gc2035.c index 4c6eaa3266fc..d5d8971c5050 100755 --- a/drivers/media/video/gc2035.c +++ b/drivers/media/video/gc2035.c @@ -22,9 +22,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR); #define SENSOR_NAME RK29_CAM_SENSOR_GC2035 #define SENSOR_V4L2_IDENT V4L2_IDENT_GC2035 #define SENSOR_ID 0x2035 -#define SENSOR_BUS_PARAM (SOCAM_MASTER |\ - SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_HIGH|\ - SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) +#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\ + V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\ + V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) #define SENSOR_PREVIEW_W 800 #define SENSOR_PREVIEW_H 600 #define SENSOR_PREVIEW_FPS 15000 // 15fps @@ -1192,7 +1192,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] = static struct rk_sensor_datafmt sensor_colour_fmts[] = { {V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} }; -static struct soc_camera_ops sensor_ops; +/*static struct soc_camera_ops sensor_ops;*/ /* diff --git a/drivers/media/video/gt2005.c b/drivers/media/video/gt2005.c index ec5f9310a269..3f336250c393 100755 --- a/drivers/media/video/gt2005.c +++ b/drivers/media/video/gt2005.c @@ -19,9 +19,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR); #define SENSOR_NAME RK29_CAM_SENSOR_GT2005 #define SENSOR_V4L2_IDENT V4L2_IDENT_GT2005 #define SENSOR_ID 0x5138 -#define SENSOR_BUS_PARAM (SOCAM_MASTER |\ - SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_HIGH|\ - SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) +#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\ + V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\ + V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) #define SENSOR_PREVIEW_W 640 #define SENSOR_PREVIEW_H 480 #define SENSOR_PREVIEW_FPS 15000 // 15fps @@ -1019,7 +1019,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] = static struct rk_sensor_datafmt sensor_colour_fmts[] = { {V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} }; -static struct soc_camera_ops sensor_ops; +/*static struct soc_camera_ops sensor_ops;*/ /* diff --git a/drivers/media/video/hm2057.c b/drivers/media/video/hm2057.c index 4b67fd3c3938..4095e02f0156 100755 --- a/drivers/media/video/hm2057.c +++ b/drivers/media/video/hm2057.c @@ -24,9 +24,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR); #define SENSOR_NAME RK29_CAM_SENSOR_HM2057 #define SENSOR_V4L2_IDENT V4L2_IDENT_HM2057 #define SENSOR_ID 0x2056 -#define SENSOR_BUS_PARAM (SOCAM_MASTER |\ - SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\ - SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) +#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\ + V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\ + V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) #define SENSOR_PREVIEW_W 800 #define SENSOR_PREVIEW_H 600 #define SENSOR_PREVIEW_FPS 15000 // 15fps @@ -1038,7 +1038,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] = static struct rk_sensor_datafmt sensor_colour_fmts[] = { {V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} }; -static struct soc_camera_ops sensor_ops; +/*static struct soc_camera_ops sensor_ops;*/ /* diff --git a/drivers/media/video/hm5065.c b/drivers/media/video/hm5065.c index b9e6d1f6569e..a403c51d6877 100755 --- a/drivers/media/video/hm5065.c +++ b/drivers/media/video/hm5065.c @@ -21,9 +21,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR); #define SENSOR_NAME RK29_CAM_SENSOR_HM5065 #define SENSOR_V4L2_IDENT V4L2_IDENT_HM5065 #define SENSOR_ID 0x039E -#define SENSOR_BUS_PARAM (SOCAM_MASTER |\ - SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\ - SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) +#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\ + V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\ + V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) #define SENSOR_PREVIEW_W 800 #define SENSOR_PREVIEW_H 600 #define SENSOR_PREVIEW_FPS 15000 // 15fps @@ -2522,7 +2522,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] = static struct rk_sensor_datafmt sensor_colour_fmts[] = { {V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} }; -static struct soc_camera_ops sensor_ops; +/*static struct soc_camera_ops sensor_ops;*/ /* diff --git a/drivers/media/video/mt9p111.c b/drivers/media/video/mt9p111.c index 8f6330f76c04..adfa9bb66efc 100755 --- a/drivers/media/video/mt9p111.c +++ b/drivers/media/video/mt9p111.c @@ -20,9 +20,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR); #define SENSOR_NAME RK29_CAM_SENSOR_MT9P111 #define SENSOR_V4L2_IDENT V4L2_IDENT_MT9P111 #define SENSOR_ID 0x00 -#define SENSOR_BUS_PARAM (SOCAM_MASTER |\ - SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_HIGH|\ - SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) +#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\ + V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\ + V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) #define SENSOR_PREVIEW_W 576 #define SENSOR_PREVIEW_H 432 #define SENSOR_PREVIEW_FPS 15000 // 15fps @@ -2083,7 +2083,7 @@ static struct rk_sensor_datafmt sensor_colour_fmts[] = { {V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG}, {V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} }; -static struct soc_camera_ops sensor_ops; +/*static struct soc_camera_ops sensor_ops;*/ /* diff --git a/drivers/media/video/mt9t111.c b/drivers/media/video/mt9t111.c index 4318b68a9434..1fce584f3a56 100755 --- a/drivers/media/video/mt9t111.c +++ b/drivers/media/video/mt9t111.c @@ -83,9 +83,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR); #define CONFIG_SENSOR_I2C_RDWRCHK 0 -#define SENSOR_BUS_PARAM (SOCAM_MASTER | SOCAM_PCLK_SAMPLE_RISING|\ - SOCAM_HSYNC_ACTIVE_HIGH | SOCAM_VSYNC_ACTIVE_HIGH|\ - SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) +#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\ + V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\ + V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) #define COLOR_TEMPERATURE_CLOUDY_DN 6500 #define COLOR_TEMPERATURE_CLOUDY_UP 8000 diff --git a/drivers/media/video/nt99160_2way.c b/drivers/media/video/nt99160_2way.c index a126e2d75e74..764343e79366 100755 --- a/drivers/media/video/nt99160_2way.c +++ b/drivers/media/video/nt99160_2way.c @@ -22,9 +22,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR); #define SENSOR_NAME RK29_CAM_SENSOR_NT99160 #define SENSOR_V4L2_IDENT V4L2_IDENT_NT99160 #define SENSOR_ID 0x1600 -#define SENSOR_BUS_PARAM (SOCAM_MASTER | SOCAM_PCLK_SAMPLE_RISING |\ - SOCAM_HSYNC_ACTIVE_HIGH | SOCAM_VSYNC_ACTIVE_HIGH|\ - SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) +#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\ + V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\ + V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) #define SENSOR_PREVIEW_W 800 #define SENSOR_PREVIEW_H 600 @@ -1011,7 +1011,7 @@ static struct rk_sensor_datafmt sensor_colour_fmts[] = { {V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG}, {V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} }; -static struct soc_camera_ops sensor_ops; +/*static struct soc_camera_ops sensor_ops;*/ /* ********************************************************** diff --git a/drivers/media/video/nt99240_2way.c b/drivers/media/video/nt99240_2way.c index 6741bc9db584..542451ff4533 100755 --- a/drivers/media/video/nt99240_2way.c +++ b/drivers/media/video/nt99240_2way.c @@ -20,9 +20,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR); #define SENSOR_NAME RK29_CAM_SENSOR_NT99240 #define SENSOR_V4L2_IDENT V4L2_IDENT_NT99240 #define SENSOR_ID 0x2400 -#define SENSOR_BUS_PARAM (SOCAM_MASTER |\ - SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_HIGH|\ - SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) +#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\ + V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\ + V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) #define SENSOR_PREVIEW_W 800 #define SENSOR_PREVIEW_H 600 #define SENSOR_PREVIEW_FPS 15000 // 15fps @@ -816,7 +816,7 @@ static struct rk_sensor_datafmt sensor_colour_fmts[] = { {V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG}, {V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} }; -static struct soc_camera_ops sensor_ops; +/*static struct soc_camera_ops sensor_ops;*/ /* diff --git a/drivers/media/video/ov5640.c b/drivers/media/video/ov5640.c index 2b684280c302..db502e91a84f 100755 --- a/drivers/media/video/ov5640.c +++ b/drivers/media/video/ov5640.c @@ -23,9 +23,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR); #define SENSOR_NAME RK29_CAM_SENSOR_OV5640 #define SENSOR_V4L2_IDENT V4L2_IDENT_OV5640 #define SENSOR_ID 0x5640 -#define SENSOR_BUS_PARAM (SOCAM_MASTER |\ - SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\ - SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) +#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\ + V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\ + V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) #define SENSOR_PREVIEW_W 800 #define SENSOR_PREVIEW_H 600 #define SENSOR_PREVIEW_FPS 15000 // 15fps @@ -983,7 +983,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] = static struct rk_sensor_datafmt sensor_colour_fmts[] = { {V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} }; -static struct soc_camera_ops sensor_ops; +/*static struct soc_camera_ops sensor_ops;*/ /* diff --git a/drivers/media/video/rk30_camera_oneframe.c b/drivers/media/video/rk30_camera_oneframe.c index d378dc4b0150..985b68d61177 100755 --- a/drivers/media/video/rk30_camera_oneframe.c +++ b/drivers/media/video/rk30_camera_oneframe.c @@ -240,7 +240,7 @@ module_param(debug, int, S_IRUGO|S_IWUSR); #define mask_grf_reg(addr, msk, val) #endif -#define CAM_WORKQUEUE_IS_EN() (false)/*(true)*/ +#define CAM_WORKQUEUE_IS_EN() (true) #define CAM_IPPWORK_IS_EN() (false)/*((pcdev->zoominfo.a.c.width != pcdev->icd->user_width) || (pcdev->zoominfo.a.c.height != pcdev->icd->user_height))*/ #define IS_CIF0() (true)/*(pcdev->hostid == RK_CAM_PLATFORM_DEV_ID_0)*/ @@ -280,8 +280,8 @@ module_param(version, int, S_IRUGO); #define RK_CAM_H_MIN 32 #define RK_CAM_W_MAX 3856 /* ddl@rock-chips.com : 10M Pixel */ #define RK_CAM_H_MAX 2764 -#define RK_CAM_FRAME_INVAL_INIT 3 -#define RK_CAM_FRAME_INVAL_DC 3 /* ddl@rock-chips.com : */ +#define RK_CAM_FRAME_INVAL_INIT 0 +#define RK_CAM_FRAME_INVAL_DC 0 /* ddl@rock-chips.com : */ #define RK30_CAM_FRAME_MEASURE 5 @@ -481,7 +481,7 @@ static void rk_camera_cif_reset(struct rk_camera_dev *pcdev, int only_rst) { int ctrl_reg,inten_reg,crop_reg,set_size_reg,for_reg,vir_line_width_reg,scl_reg,y_reg,uv_reg; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); +debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); if (only_rst == true) { rk3128_cru_set_soft_reset(0, true); @@ -536,7 +536,7 @@ static int rk_videobuf_setup(struct videobuf_queue *vq, unsigned int *count, int bytes_per_line_host; fmt.packing = SOC_MBUS_PACKING_1_5X8; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); bytes_per_line = soc_mbus_bytes_per_line(icd->user_width, @@ -559,7 +559,7 @@ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE pcdev->vipmem_bsize = PAGE_ALIGN(bytes_per_line_host * pcdev->host_height); if (CAM_WORKQUEUE_IS_EN()) { - + if (CAM_IPPWORK_IS_EN()) { BUG_ON(pcdev->vipmem_sizevipmem_bsize); if (*count > pcdev->vipmem_size/pcdev->vipmem_bsize) { /* Buffers must be limited, when this resolution is genered by IPP */ @@ -615,7 +615,7 @@ static void rk_videobuf_free(struct videobuf_queue *vq, struct rk_camera_buffer { struct soc_camera_device *icd = vq->priv_data; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); dev_dbg(icd->control, "%s (vb=0x%p) 0x%08lx %zd\n", __func__,/*yzm*/ @@ -645,7 +645,7 @@ static int rk_videobuf_prepare(struct videobuf_queue *vq, struct videobuf_buffer int bytes_per_line = soc_mbus_bytes_per_line(icd->user_width, icd->current_fmt->host_fmt); -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); if ((bytes_per_line < 0) || (vb->boff == 0)) return -EINVAL; @@ -697,11 +697,11 @@ static inline void rk_videobuf_capture(struct videobuf_buffer *vb,struct rk_came unsigned int y_addr,uv_addr; struct rk_camera_dev *pcdev = rk_pcdev; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); if (vb) { - if (CAM_WORKQUEUE_IS_EN()) { + if (CAM_WORKQUEUE_IS_EN() & CAM_IPPWORK_IS_EN()) { y_addr = pcdev->vipmem_phybase + vb->i*pcdev->vipmem_bsize; uv_addr = y_addr + pcdev->zoominfo.vir_width*pcdev->zoominfo.vir_height; if (y_addr > (pcdev->vipmem_phybase + pcdev->vipmem_size - pcdev->vipmem_bsize)) { @@ -735,7 +735,7 @@ static void rk_videobuf_queue(struct videobuf_queue *vq, #endif -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); /*dev_dbg(&icd->dev, "%s (vb=0x%p) 0x%08lx %zd\n", __func__, vb, vb->baddr, vb->bsize); */ /*yzm*/ @@ -777,7 +777,7 @@ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE if (!pcdev->active) { pcdev->active = vb; rk_videobuf_capture(vb,pcdev); - if (atomic_read(&pcdev->stop_cif) == false) { /*ddl@rock-chips.com v0.3.0x13*/ + if (atomic_read(&pcdev->stop_cif) == false) { //ddl@rock-chips.com v0.3.0x13 write_cif_reg(pcdev->base,CIF_CIF_CTRL, (read_cif_reg(pcdev->base,CIF_CIF_CTRL) | ENABLE_CAPTURE)); } } @@ -787,7 +787,7 @@ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE static int rk_pixfmt2rgafmt(unsigned int pixfmt, int *ippfmt) { -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); switch (pixfmt) { @@ -880,7 +880,7 @@ static void rk_camera_capture_process(struct work_struct *work) unsigned long flags = 0; int err = 0; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); if (atomic_read(&pcdev->stop_cif)==true) { @@ -924,11 +924,11 @@ static void rk_camera_cifrest_delay(struct work_struct *work) struct rk_camera_dev *pcdev = camera_work->pcdev; unsigned long flags = 0; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); - mdelay(1); - rk_camera_cif_reset(pcdev,false); + mdelay(100); + /*rk_camera_cif_reset(pcdev,false);//yzm*/ spin_lock_irqsave(&pcdev->camera_work_lock, flags); list_add_tail(&camera_work->queue, &pcdev->camera_work_queue); @@ -947,9 +947,9 @@ static inline irqreturn_t rk_camera_cifirq(int irq, void *data) { struct rk_camera_dev *pcdev = data; struct rk_camera_work *wk; - unsigned int reg_cifctrl,reg_lastpix,reg_lastline; + unsigned int reg_cifctrl, reg_lastpix, reg_lastline, reg_intstat; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); write_cif_reg(pcdev->base,CIF_CIF_INTSTAT,0x0200); /* clear vip interrupte single */ @@ -957,6 +957,7 @@ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE reg_cifctrl = read_cif_reg(pcdev->base,CIF_CIF_CTRL); reg_lastpix = read_cif_reg(pcdev->base,CIF_CIF_LAST_PIX); reg_lastline = read_cif_reg(pcdev->base,CIF_CIF_LAST_LINE); + reg_intstat = read_cif_reg(pcdev->base,CIF_CIF_INTSTAT);/*yzm for rk312x first time capture bus_err*/ pcdev->irqinfo.cifirq_idx++; if ((reg_lastline != pcdev->host_height) /*|| (reg_lastpix != pcdev->host_width)*/) { @@ -971,8 +972,14 @@ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE write_cif_reg(pcdev->base,CIF_CIF_CTRL, (reg_cifctrl & ~ENABLE_CAPTURE)); } + if(reg_intstat & (0x1 << 6)) { + write_cif_reg(pcdev->base,CIF_CIF_INTSTAT, reg_intstat | (0x1 << 6)); + goto BUS_ERR; //yzm for rk312x first time capture bus_err + } + if (pcdev->irqinfo.cifirq_abnormal_idx>0) { if ((pcdev->irqinfo.cifirq_idx - pcdev->irqinfo.cifirq_abnormal_idx) == 1 ) { + BUS_ERR: if (!list_empty(&pcdev->camera_work_queue)) { RKCAMERA_DG2("Receive cif irq-%ld and queue work to cif reset\n",pcdev->irqinfo.cifirq_idx); wk = list_entry(pcdev->camera_work_queue.next, struct rk_camera_work, queue); @@ -995,7 +1002,7 @@ static inline irqreturn_t rk_camera_dmairq(int irq, void *data) struct timeval tv; unsigned long reg_cifctrl; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); reg_cifctrl = read_cif_reg(pcdev->base,CIF_CIF_CTRL); @@ -1118,7 +1125,7 @@ static void rk_videobuf_release(struct videobuf_queue *vq, #ifdef DEBUG -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); dev_dbg(&icd->dev, "%s (vb=0x%p) 0x%08lx %d\n", __func__, @@ -1173,7 +1180,7 @@ static void rk_camera_init_videobuf(struct videobuf_queue *q, struct soc_camera_host *ici = to_soc_camera_host(icd->parent);/*yzm*/ struct rk_camera_dev *pcdev = ici->priv; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); /* We must pass NULL as dev pointer, then all pci_* dma operations @@ -1193,7 +1200,7 @@ static int rk_camera_mclk_ctrl(int cif_idx, int on, int clk_rate) struct rk_cif_clk *clk; struct clk *cif_clk_out_div; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); cif = cif_idx - RK29_CAM_PLATFORM_DEV_ID; @@ -1212,7 +1219,7 @@ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE } spin_lock(&clk->lock); - if (on && !clk->on) { + if (on && !clk->on) { clk_prepare_enable(clk->pd_cif); /*yzm*/ clk_prepare_enable(clk->aclk_cif); clk_prepare_enable(clk->hclk_cif); @@ -1256,10 +1263,10 @@ static int rk_camera_activate(struct rk_camera_dev *pcdev, struct soc_camera_dev * ddl@rock-chips.com : Cif clk control in rk_sensor_power which in rk_camera.c */ -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); write_cif_reg(pcdev->base,CIF_CIF_CTRL,AXI_BURST_16|MODE_ONEFRAME|DISABLE_CAPTURE); /* ddl@rock-chips.com : vip ahb burst 16 */ - //write_cif_reg(pcdev->base,CIF_CIF_INTEN, 0x01); //capture complete interrupt enable + //write_cif_reg(pcdev->base,CIF_CIF_INTEN, 0x01); //capture complete interrupt enable return 0; } @@ -1268,7 +1275,7 @@ static void rk_camera_deactivate(struct rk_camera_dev *pcdev) /* * ddl@rock-chips.com : Cif clk control in rk_sensor_power which in rk_camera.c */ -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); return; @@ -1288,7 +1295,7 @@ static int rk_camera_add_device(struct soc_camera_device *icd) struct v4l2_mbus_framefmt mf; const struct soc_camera_format_xlate *xlate = NULL; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); mutex_lock(&camera_lock); @@ -1384,7 +1391,7 @@ static void rk_camera_remove_device(struct soc_camera_device *icd) unsigned int i; #endif -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); mutex_lock(&camera_lock); @@ -1454,7 +1461,7 @@ static int rk_camera_set_bus_param(struct soc_camera_device *icd, __u32 pixfmt) /*struct rk_camera_dev *pcdev = ici->priv;*/ -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); fmt = soc_mbus_get_fmtdesc(icd->current_fmt->code); @@ -1479,7 +1486,7 @@ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE default: return -EINVAL; } -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); if (icd->ops->query_bus_param) camera_flags = icd->ops->query_bus_param(icd); else @@ -1539,7 +1546,7 @@ static int rk_camera_try_bus_param(struct soc_camera_device *icd, __u32 pixfmt) /* unsigned long bus_flags, camera_flags;*/ /* int ret;*/ -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); /**********yzm*********** bus_flags = RK_CAM_BUS_PARAM; @@ -1612,7 +1619,7 @@ static void rk_camera_setup_format(struct soc_camera_device *icd, __u32 host_pix const struct soc_mbus_pixelfmt *fmt; fmt = soc_mbus_get_fmtdesc(icd_code); -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); if((host_pixfmt == V4L2_PIX_FMT_RGB565) || (host_pixfmt == V4L2_PIX_FMT_RGB24)){ @@ -1709,7 +1716,7 @@ static int rk_camera_get_formats(struct soc_camera_device *icd, unsigned int idx enum v4l2_mbus_pixelcode code; const struct soc_mbus_pixelfmt *fmt; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); ret = v4l2_subdev_call(sd, video, enum_mbus_fmt, idx, &code); /*call generic_sensor_enum_fmt()*/ @@ -1801,7 +1808,7 @@ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE static void rk_camera_put_formats(struct soc_camera_device *icd) { -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); return; } @@ -1810,7 +1817,7 @@ static int rk_camera_cropcap(struct soc_camera_device *icd, struct v4l2_cropcap struct v4l2_subdev *sd = soc_camera_to_subdev(icd); int ret=0; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); ret = v4l2_subdev_call(sd, video, cropcap, cropcap); if (ret != 0) @@ -1825,7 +1832,7 @@ static int rk_camera_get_crop(struct soc_camera_device *icd,struct v4l2_crop *cr struct soc_camera_host *ici = to_soc_camera_host(icd->parent);/*yzm*/ struct rk_camera_dev *pcdev = ici->priv; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); spin_lock(&pcdev->cropinfo.lock); @@ -1840,7 +1847,7 @@ static int rk_camera_set_crop(struct soc_camera_device *icd, struct soc_camera_host *ici = to_soc_camera_host(icd->parent);/*yzm*/ struct rk_camera_dev *pcdev = ici->priv; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); spin_lock(&pcdev->cropinfo.lock); @@ -1852,7 +1859,7 @@ static bool rk_camera_fmt_capturechk(struct v4l2_format *f) { bool ret = false; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); if (f->fmt.pix.priv == 0xfefe5a5a) { @@ -1892,7 +1899,7 @@ static int rk_camera_set_fmt(struct soc_camera_device *icd, int stream_on = 0; int ratio, bounds_aspect; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); usr_w = pix->width; @@ -2134,7 +2141,7 @@ static int rk_camera_try_fmt(struct soc_camera_device *icd, usr_w = pix->width; usr_h = pix->height; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); xlate = soc_camera_xlate_by_fourcc(icd, pixfmt); if (!xlate) { @@ -2240,7 +2247,7 @@ static int rk_camera_reqbufs(struct soc_camera_device *icd, { int i; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); /* This is for locking debugging only. I removed spinlocks and now I @@ -2262,7 +2269,7 @@ static unsigned int rk_camera_poll(struct file *file, poll_table *pt) struct soc_camera_device *icd = file->private_data; struct rk_camera_buffer *buf; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); buf = list_entry(icd->vb_vidq.stream.next, struct rk_camera_buffer, @@ -2290,7 +2297,7 @@ static int rk_camera_querycap(struct soc_camera_host *ici, char fov[9]; int i; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); strlcpy(cap->card, dev_name(pcdev->icd->pdev), 18); @@ -2330,7 +2337,7 @@ static int rk_camera_suspend(struct soc_camera_device *icd, pm_message_t state) struct v4l2_subdev *sd; int ret = 0; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); mutex_lock(&camera_lock); @@ -2366,7 +2373,7 @@ static int rk_camera_resume(struct soc_camera_device *icd) struct v4l2_subdev *sd; int ret = 0; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); mutex_lock(&camera_lock); @@ -2413,7 +2420,7 @@ static void rk_camera_reinit_work(struct work_struct *work) unsigned long flags = 0; int ctrl; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); return; if(pcdev->icd == NULL) @@ -2506,7 +2513,7 @@ static enum hrtimer_restart rk_camera_fps_func(struct hrtimer *timer) /*struct soc_camera_link *tmp_soc_cam_link;*/ /*yzm*/ /*tmp_soc_cam_link = to_soc_camera_link(pcdev->icd);*/ /*yzm*/ -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); RKCAMERA_DG1("rk_camera_fps_func fps:0x%x\n",pcdev->fps); if ((pcdev->fps < 1) || (pcdev->last_fps == pcdev->fps)) { @@ -2596,7 +2603,7 @@ static int rk_camera_s_stream(struct soc_camera_device *icd, int enable) int ret; unsigned long flags; - debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); WARN_ON(pcdev->icd != icd); @@ -2659,7 +2666,7 @@ int rk_camera_enum_frameintervals(struct soc_camera_device *icd, struct v4l2_frm struct v4l2_mbus_framefmt mf; __u32 pixfmt; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); index = fival->index & 0x00ffffff; if ((fival->index & 0xff000000) == 0xff000000) { /* ddl@rock-chips.com: detect framerate */ @@ -2785,7 +2792,7 @@ static int rk_camera_set_digit_zoom(struct soc_camera_device *icd, struct soc_camera_host *ici = to_soc_camera_host(icd->parent);/*yzm*/ struct rk_camera_dev *pcdev = ici->priv; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); #if CIF_DO_CROP @@ -2857,12 +2864,12 @@ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE static inline struct v4l2_queryctrl const *rk_camera_soc_camera_find_qctrl( struct soc_camera_host_ops *ops, int id) { -/************yzm************ + int i; for (i = 0; i < ops->num_controls; i++) if (ops->controls[i].id == id) return &ops->controls[i]; -**************yzm*********/ + return NULL; } @@ -2876,7 +2883,7 @@ static int rk_camera_set_ctrl(struct soc_camera_device *icd, int ret = 0; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); qctrl = rk_camera_soc_camera_find_qctrl(ici->ops, sctrl->id); if (!qctrl) { @@ -2943,7 +2950,7 @@ static int rk_camera_cif_iomux(struct device *dev) int retval = 0; char state_str[20] = {0}; -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); strcpy(state_str,"cif_pin_jpe"); /*__raw_writel(((1<<1)|(1<<(1+16))),RK_GRF_VIRT+0x0380);*/ @@ -2985,7 +2992,7 @@ static int rk_camera_probe(struct platform_device *pdev) int err = 0; struct rk_cif_clk *clk=NULL; struct device *dev_cif = ((struct rk29camera_platform_data*)pdev->dev.platform_data)->cif_dev;/*yzm*/ -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); RKCAMERA_TR("%s version: v%d.%d.%d Zoom by %s",RK29_CAM_DRV_NAME,(RK_CAM_VERSION_CODE&0xff0000)>>16, (RK_CAM_VERSION_CODE&0xff00)>>8,RK_CAM_VERSION_CODE&0xff,CAMERA_SCALE_CROP_MACHINE); @@ -3250,7 +3257,7 @@ static struct platform_driver rk_camera_driver = static int rk_camera_init_async(void *unused) { -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); platform_driver_register(&rk_camera_driver); return 0; @@ -3259,7 +3266,7 @@ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE static int __init rk_camera_init(void) { -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); kthread_run(rk_camera_init_async, NULL, "rk_camera_init"); @@ -3268,7 +3275,7 @@ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE static void __exit rk_camera_exit(void) { -debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); + debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__); platform_driver_unregister(&rk_camera_driver); } diff --git a/drivers/media/video/sp2518.c b/drivers/media/video/sp2518.c index 3eb0b7fde392..ef108f9df737 100755 --- a/drivers/media/video/sp2518.c +++ b/drivers/media/video/sp2518.c @@ -22,9 +22,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR); #define SENSOR_NAME RK29_CAM_SENSOR_SP2518 #define SENSOR_V4L2_IDENT V4L2_IDENT_SP2518 #define SENSOR_ID 0x53 -#define SENSOR_BUS_PARAM (SOCAM_MASTER |\ - SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_HIGH|\ - SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) +#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\ + V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\ + V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ) #define SENSOR_PREVIEW_W 800 #define SENSOR_PREVIEW_H 600 #define SENSOR_PREVIEW_FPS 15000 // 15fps @@ -1053,7 +1053,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] = static struct rk_sensor_datafmt sensor_colour_fmts[] = { {V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} }; -static struct soc_camera_ops sensor_ops; +/*static struct soc_camera_ops sensor_ops;*/ /* diff --git a/include/media/v4l2-chip-ident.h b/include/media/v4l2-chip-ident.h index 4d51841a605b..e9b69c6808ba 100644 --- a/include/media/v4l2-chip-ident.h +++ b/include/media/v4l2-chip-ident.h @@ -77,10 +77,28 @@ enum { V4L2_IDENT_OV2640 = 259, V4L2_IDENT_OV9740 = 260, V4L2_IDENT_OV5642 = 261, - V4L2_IDENT_OV2659 = 258,//YZM +/***********yzm**********/ + V4L2_IDENT_OV2655 = 262, /* ddl@rock-chips.com : ov2655 support */ + V4L2_IDENT_OV2659 = 263, + V4L2_IDENT_OV3640 = 264, + V4L2_IDENT_OV5640 = 265, + V4L2_IDENT_OV7675 = 266, + V4L2_IDENT_OV7690 = 267, + V4L2_IDENT_OV3660 = 268, +/***********yzm********end*/ /* module saa7146: reserved range 300-309 */ V4L2_IDENT_SAA7146 = 300, - +/***********yzm*************/ + /* Samsung sensors: reserved range 310-319 */ + V4L2_IDENT_S5K66A = 310, /* ddl@rock-chips.com : s5k66a support */ + V4L2_IDENT_S5K5CA = 311, /* ddl@rock-chips.com : s5k5ca support */ + + V4L2_IDENT_MTK9335ISP = 320, /* ddl@rock-chips.com : MTK9335ISP support */ + V4L2_IDENT_ICATCH7002_MI1040 = 321, + V4L2_IDENT_ICATCH7002_OV5693 =322, + V4L2_IDENT_ICATCH7002_OV8825 = 323, //zyt + V4L2_IDENT_ICATCH7002_OV2720 = 324, //zyt +/************yzm************end*/ /* Conexant MPEG encoder/decoders: reserved range 400-420 */ V4L2_IDENT_CX23418_843 = 403, /* Integrated A/V Decoder on the '418 */ V4L2_IDENT_CX23415 = 415, @@ -238,6 +256,8 @@ enum { /* module sn9c20x: just ident 10000 */ V4L2_IDENT_SN9C20X = 10000, + /* Siliconfile sensors: reserved range 10100 - 10199 */ + V4L2_IDENT_NOON010PC30 = 10100,/*yzm*/ /* module cx231xx and cx25840 */ V4L2_IDENT_CX2310X_AV = 23099, /* Integrated A/V decoder; not in '100 */ V4L2_IDENT_CX23100 = 23100, @@ -315,6 +335,7 @@ enum { V4L2_IDENT_MT9M001C12STM = 45005, V4L2_IDENT_MT9M111 = 45007, V4L2_IDENT_MT9M112 = 45008, + V4L2_IDENT_MT9D112 = 45009, /* ddl@rock-chips.com : MT9D112 support */ V4L2_IDENT_MT9V022IX7ATC = 45010, /* No way to detect "normal" I77ATx */ V4L2_IDENT_MT9V022IX7ATM = 45015, /* and "lead free" IA7ATx chips */ V4L2_IDENT_MT9T031 = 45020, @@ -323,6 +344,9 @@ enum { V4L2_IDENT_MT9V111 = 45031, V4L2_IDENT_MT9V112 = 45032, + V4L2_IDENT_MT9P111 = 45033, /* ddl@rock-chips.com : MT9P111 support */ + V4L2_IDENT_MT9D113 = 45034, /* ddl@rock-chips.com : MT9D113 support */ + /* HV7131R CMOS sensor: just ident 46000 */ V4L2_IDENT_HV7131R = 46000, @@ -346,6 +370,39 @@ enum { /* module upd64083: just ident 64083 */ V4L2_IDENT_UPD64083 = 64083, +/*************yzm************/ + V4L2_IDENT_NT99250 = 64100, /* ddl@rock-chips.com : nt99250 support */ + V4L2_IDENT_SID130B = 64101, /* ddl@rock-chips.com : sid130B support */ + + V4L2_IDENT_GT2005 = 64110, /* ddl@rock-chips.com : GT2005 support */ + V4L2_IDENT_GC0307 = 64111, /* ddl@rock-chips.com : GC0308 support */ + V4L2_IDENT_GC0308 = 64112, /* ddl@rock-chips.com : GC0308 support */ + V4L2_IDENT_GC0309 = 64113, /* ddl@rock-chips.com : GC0309 support */ + V4L2_IDENT_GC2015 = 64114, /* ddl@rock-chips.com : gc2015 support */ + V4L2_IDENT_GC0329 = 64115, /* ddl@rock-chips.com : GC0329 support */ + V4L2_IDENT_GC2035= 64116, /* ddl@rock-chips.com : GC0329 support */ + V4L2_IDENT_GC0328 = 64117, + + V4L2_IDENT_SP0838 = 64120, /* ddl@rock-chips.com : SP0838 support */ + V4L2_IDENT_SP2518 = 64121, /* ddl@rock-chips.com : SP2518 support */ + V4L2_IDENT_SP0718 = 64122, /* ddl@rock-chips.com : SP0718 support */ + + V4L2_IDENT_HI253 = 64130, /* ddl@rock-chips.com : hi253 support */ + V4L2_IDENT_HI704 = 64131, /* ddl@rock-chips.com : hi704 support */ + + V4L2_IDENT_SIV120B = 64140, /* ddl@rock-chips.com : siv120b support */ + V4L2_IDENT_SIV121D= 64141, /* ddl@rock-chips.com : sid130B support */ + + + V4L2_IDENT_HM2057 = 64150, + V4L2_IDENT_HM5065 = 64151, + + V4L2_IDENT_NT99160 = 64161, /* oyyf@rock-chips.com : nt99160 support */ + V4L2_IDENT_NT99340 = 64162, /* oyyf@rock-chips.com : nt99340 support */ + V4L2_IDENT_NT99252 = 64163, /* oyyf@rock-chips.com : nt99252 support */ + V4L2_IDENT_NT99240 = 64164, /* oyyf@rock-chips.com : nt99252 support */ +/***********yzm***********end*/ + /* Don't just add new IDs at the end: KEEP THIS LIST ORDERED BY ID! */ };