rk312x : cif : add many sensor drivers,include gc0329,gc0308 ...
authorzyc <zyc@rock-chips.com>
Tue, 19 Aug 2014 01:56:45 +0000 (09:56 +0800)
committerzyc <zyc@rock-chips.com>
Tue, 19 Aug 2014 01:59:15 +0000 (09:59 +0800)
23 files changed:
arch/arm/boot/dts/rk312x-cif-sensor.dtsi
arch/arm/mach-rockchip/rk30_camera.h
arch/arm/mach-rockchip/rk_camera.c
drivers/media/video/Kconfig
drivers/media/video/Makefile
drivers/media/video/gc0307.c
drivers/media/video/gc0308.c
drivers/media/video/gc0309.c
drivers/media/video/gc0328.c
drivers/media/video/gc0329.c
drivers/media/video/gc2015.c
drivers/media/video/gc2035.c
drivers/media/video/gt2005.c
drivers/media/video/hm2057.c
drivers/media/video/hm5065.c
drivers/media/video/mt9p111.c
drivers/media/video/mt9t111.c
drivers/media/video/nt99160_2way.c
drivers/media/video/nt99240_2way.c
drivers/media/video/ov5640.c
drivers/media/video/rk30_camera_oneframe.c
drivers/media/video/sp2518.c
include/media/v4l2-chip-ident.h

index 810ddc97ad7dc73e9396f189fa1c5b5e423c6d0a..b64232ef9a098c5b6e70b911e6b2b6181ca188d7 100644 (file)
                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 = <ov2659_FULL_RESOLUTION>;
                        pwdn_info = <ov2659_PWRDN_ACTIVE>;
                        powerup_sequence = <ov2659_PWRSEQ>;             
+                       orientation = <0>;
                        i2c_add = <ov2659_I2C_ADDR>;
                        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 = <gc0329_FULL_RESOLUTION>;
+                       pwdn_info = <gc0329_PWRDN_ACTIVE>;
+                       powerup_sequence = <gc0329_PWRSEQ>;     
+                       orientation = <90>;
+                       i2c_add = <gc0329_I2C_ADDR>;
+                       i2c_rata = <100000>;
+                       i2c_chl = <0>;
+                       cif_chl = <0>;
+                       mclk_rate = <24>;
+               };
        };
 };
 
index 5aa0b57af6377c8125d146f3996206d8cbcd8334..98e58c8785c04d5cdf0b029af9770f12b56d5b11 100644 (file)
 #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 <dt-bindings/pinctrl/rockchip-rk3288.h>
@@ -48,7 +48,7 @@
 #endif
 
 
-#define CAMERA_VIDEOBUF_ARM_ACCESS   1
+#define CAMERA_VIDEOBUF_ARM_ACCESS   0
 
 #endif
 
index 7d8db65d313accc1380ff5f2eb1a04575d592e43..b15c75c3087cd23075d2bdc67fd518dcf1e2c48c 100644 (file)
@@ -157,10 +157,12 @@ static int        rk_dts_sensor_probe(struct platform_device *pdev)
                return -ENODEV;\r
        for_each_child_of_node(np, cp) {\r
                u32 flash_attach,mir,i2c_rata,i2c_chl,i2c_add,cif_chl,mclk_rate,is_front;\r
-               u32 resolution,pwdn_info,powerup_sequence;\r
+               u32 resolution,pwdn_info,powerup_sequence,orientation;\r
                \r
                u32     powerdown = INVALID_GPIO,power = INVALID_GPIO,reset = INVALID_GPIO;\r
                u32 af = INVALID_GPIO,flash = INVALID_GPIO;\r
+\r
+               int pwr_active = INVALID_VALUE, rst_active = INVALID_VALUE, pwdn_active = INVALID_VALUE;\r
                struct rkcamera_platform_data *new_camera; \r
                new_camera = kzalloc(sizeof(struct rkcamera_platform_data),GFP_KERNEL);\r
                if(!sensor_num)\r
@@ -174,35 +176,44 @@ static int        rk_dts_sensor_probe(struct platform_device *pdev)
                new_camera_list = new_camera;\r
        \r
                if (of_property_read_u32(cp, "flash_attach", &flash_attach)) {\r
-                               printk("%s flash_attach %d \n", cp->name, flash_attach);\r
+                       dprintk("%s:Get %s rockchip,flash_attach failed!\n",__func__, cp->name);                                \r
                }\r
                if (of_property_read_u32(cp, "mir", &mir)) {\r
-                               printk("%s mir %d \n", cp->name, mir);\r
+                       dprintk("%s:Get %s rockchip,mir failed!\n",__func__, cp->name);                         \r
                }\r
                if (of_property_read_u32(cp, "i2c_rata", &i2c_rata)) {\r
-                               printk("%s i2c_rata %d \n", cp->name, i2c_rata);\r
+                       dprintk("%s:Get %s rockchip,i2c_rata failed!\n",__func__, cp->name);                            \r
                }\r
                if (of_property_read_u32(cp, "i2c_chl", &i2c_chl)) {\r
-                               printk("%s i2c_chl %d \n", cp->name, i2c_chl);\r
+                       dprintk("%s:Get %s rockchip,i2c_chl failed!\n",__func__, cp->name);                             \r
                }\r
                if (of_property_read_u32(cp, "cif_chl", &cif_chl)) {\r
-                               printk("%s cif_chl %d \n", cp->name, cif_chl);\r
+                       dprintk("%s:Get %s rockchip,cif_chl failed!\n",__func__, cp->name);                             \r
                }\r
                if (of_property_read_u32(cp, "mclk_rate", &mclk_rate)) {\r
-                               printk("%s mclk_rate %d \n", cp->name, mclk_rate);\r
+                       dprintk("%s:Get %s rockchip,mclk_rate failed!\n",__func__, cp->name);                           \r
                }\r
                if (of_property_read_u32(cp, "is_front", &is_front)) {\r
-                               printk("%s is_front %d \n", cp->name, is_front);\r
+                       dprintk("%s:Get %s rockchip,is_front failed!\n",__func__, cp->name);                            \r
                }\r
                if (of_property_read_u32(cp, "rockchip,powerdown", &powerdown)) {\r
                                printk("%s:Get %s rockchip,powerdown failed!\n",__func__, cp->name);                            \r
                }\r
+               if (of_property_read_u32(cp, "pwdn_active", &pwdn_active)) {\r
+                               dprintk("%s:Get %s pwdn_active failed!\n",__func__, cp->name);                          \r
+               }\r
                if (of_property_read_u32(cp, "rockchip,power", &power)) {\r
                                printk("%s:Get %s rockchip,power failed!\n",__func__, cp->name);                                \r
                }\r
+               if (of_property_read_u32(cp, "pwr_active", &pwr_active)) {\r
+                               dprintk("%s:Get %s pwr_active failed!\n",__func__, cp->name);                           \r
+               }\r
                if (of_property_read_u32(cp, "rockchip,reset", &reset)) {\r
                                printk("%s:Get %s rockchip,reset failed!\n",__func__, cp->name);                                \r
                }\r
+               if (of_property_read_u32(cp, "rst_active", &rst_active)) {\r
+                               dprintk("%s:Get %s rst_active failed!\n",__func__, cp->name);                           \r
+               }\r
                if (of_property_read_u32(cp, "rockchip,af", &af)) {\r
                                printk("%s:Get %s rockchip,af failed!\n",__func__, cp->name);                           \r
                }\r
@@ -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);                                \r
                }\r
                if (of_property_read_u32(cp, "i2c_add", &i2c_add)) {\r
-                               printk("%s i2c_add %d \n", cp->name, i2c_add);\r
+                       printk("%s:Get %s rockchip,i2c_add failed!\n",__func__, cp->name);                              \r
                }\r
                if (of_property_read_u32(cp, "resolution", &resolution)) {\r
-                               printk("%s resolution %d \n", cp->name, resolution);\r
+                       printk("%s:Get %s rockchip,resolution failed!\n",__func__, cp->name);                           \r
                }\r
                if (of_property_read_u32(cp, "pwdn_info", &pwdn_info)) {\r
-                               printk("%s pwdn_info %d \n", cp->name, pwdn_info);\r
+                       printk("%s:Get %s rockchip,pwdn_info failed!\n",__func__, cp->name);                            \r
                }\r
                if (of_property_read_u32(cp, "powerup_sequence", &powerup_sequence)) {\r
-                               printk("%s powerup_sequence %d \n", cp->name, powerup_sequence);\r
+                       printk("%s:Get %s rockchip,powerup_sequence failed!\n",__func__, cp->name);                             \r
                }\r
-\r
+               if (of_property_read_u32(cp, "orientation", &orientation)) {\r
+                       printk("%s:Get %s rockchip,orientation failed!\n",__func__, cp->name);                          \r
+               }\r
+               \r
                strcpy(new_camera->dev.i2c_cam_info.type, cp->name);\r
                new_camera->dev.i2c_cam_info.addr = i2c_add>>1;\r
                new_camera->dev.desc_info.host_desc.bus_id = RK29_CAM_PLATFORM_DEV_ID+cif_chl;/*yzm*/\r
@@ -238,8 +252,8 @@ static int  rk_dts_sensor_probe(struct platform_device *pdev)
                new_camera->io.gpio_power = power;\r
                new_camera->io.gpio_af = af;\r
                new_camera->io.gpio_flash = flash;\r
-               new_camera->io.gpio_flag = ((INVALID_GPIO&0x01)<<RK29_CAM_POWERACTIVE_BITPOS)|((INVALID_GPIO&0x01)<<RK29_CAM_RESETACTIVE_BITPOS)|((pwdn_info&0x01)<<RK29_CAM_POWERDNACTIVE_BITPOS);\r
-               new_camera->orientation = INVALID_GPIO;\r
+               new_camera->io.gpio_flag = ((pwr_active&0x01)<<RK29_CAM_POWERACTIVE_BITPOS)|((rst_active&0x01)<<RK29_CAM_RESETACTIVE_BITPOS)|((pwdn_active&0x01)<<RK29_CAM_POWERDNACTIVE_BITPOS);\r
+               new_camera->orientation = orientation;\r
                new_camera->resolution = resolution;\r
                new_camera->mirror = mir;\r
                new_camera->i2c_rate = i2c_rata;\r
@@ -346,7 +360,7 @@ static int sensor_reset_default_cb (struct rk29camera_gpio_res *res, int on)
     int camera_io_init = res->gpio_init;  \r
     int ret = 0;\r
 \r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
+       debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
 \r
     \r
     if (camera_reset != INVALID_GPIO) {\r
@@ -376,7 +390,7 @@ static int sensor_powerdown_default_cb (struct rk29camera_gpio_res *res, int on)
     int camera_io_init = res->gpio_init;  \r
     int ret = 0;    \r
 \r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
+       debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
 \r
 \r
     if (camera_powerdown != INVALID_GPIO) {\r
@@ -406,7 +420,7 @@ static int sensor_flash_default_cb (struct rk29camera_gpio_res *res, int on)
     int camera_io_init = res->gpio_init;  \r
     int ret = 0;    \r
 \r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);\r
+       debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);\r
 \r
 \r
     if (camera_flash != INVALID_GPIO) {\r
@@ -455,7 +469,7 @@ static int sensor_afpower_default_cb (struct rk29camera_gpio_res *res, int on)
        int ret = 0;   \r
        int camera_af = res->gpio_af;\r
        \r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);\r
+       debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);\r
 \r
        \r
        if (camera_af != INVALID_GPIO) {\r
@@ -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;\r
        unsigned int camera_powerdown = INVALID_GPIO, camera_flash = INVALID_GPIO,camera_af = INVALID_GPIO;\r
 \r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);\r
+       debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);\r
 \r
     \r
     camera_reset = gpio_res->gpio_reset;\r
@@ -772,7 +786,7 @@ static int rk_sensor_io_init(void)
        static bool is_init = false;\r
        \r
        struct rkcamera_platform_data *new_camera;\r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
+       debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
 \r
     if(is_init) {              \r
                return 0;\r
@@ -806,7 +820,7 @@ static int rk_sensor_io_deinit(int sensor)
 {\r
        struct rkcamera_platform_data *new_camera;\r
 \r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);\r
+       debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);\r
 \r
        new_camera = new_camera_head;\r
        while(new_camera != NULL)\r
@@ -934,7 +948,7 @@ static int rk_sensor_pwrseq(struct device *dev,int powerup_sequence, int on, int
     int ret =0;\r
     int i,powerup_type;\r
 \r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
+       debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
 \r
     \r
     for (i=0; i<8; i++) {\r
@@ -1019,7 +1033,7 @@ static int rk_sensor_power(struct device *dev, int on)   /*icd->pdev*/
     bool real_pwroff = true;\r
     int ret = 0;\r
 \r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
+       debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
 \r
     new_camera = plat_data->register_dev_new;    /*new_camera[]*/\r
     \r
@@ -1109,7 +1123,7 @@ static int rk_sensor_reset(struct device *dev)
 static int rk_sensor_powerdown(struct device *dev, int on)\r
 {\r
 \r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);\r
+       debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);\r
 \r
        return rk_sensor_ioctrl(dev,Cam_PowerDown,on);\r
 }\r
@@ -1120,7 +1134,7 @@ int rk_sensor_register(void)
        struct rkcamera_platform_data *new_camera;      \r
        \r
     i = 0;\r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
+       debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
 \r
        new_camera = new_camera_head;\r
        \r
@@ -1154,14 +1168,10 @@ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE
 \r
         new_camera->dev.device_info.id = i+6;\r
                new_camera->dev.device_info.dev.platform_data = &new_camera->dev.desc_info;\r
-               debug_printk("platform_data(desc_info) %p +++++++++++++\n",new_camera->dev.device_info.dev.platform_data);\r
                new_camera->dev.desc_info.subdev_desc.drv_priv = &rk_camera_platform_data;\r
 \r
         platform_device_register(&(new_camera->dev.device_info));\r
-               debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);  \r
-               debug_printk("new_camera = %p +++++++++++++\n",new_camera);\r
-               debug_printk("new_camera->next_camera = %p +++++++++++++\n",new_camera->next_camera);\r
-\r
+               i++;\r
         new_camera = new_camera->next_camera;\r
     }\r
        \r
index 8aca45fd2f994888fa79e3a648aafdcaee7ac7af..2ed6a1343b86614d9213388fdd600c79973c95a9 100644 (file)
@@ -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                
index 7dfc4b65f8c7b457541f02801df79fe8066c1de5..328ed947a5ce056e6acea731c595a9dcfebd6e8a 100644 (file)
@@ -1,2 +1,33 @@
 obj-$(CONFIG_RK30_CAMERA_ONEFRAME) += rk30_camera_oneframe.o generic_sensor.o \r
-obj-$(CONFIG_OV2659) += ov2659.o
\ No newline at end of file
+\r
+obj-$(CONFIG_GC0307) += gc0307.o\r
+obj-$(CONFIG_GC0308) += gc0308.o\r
+obj-$(CONFIG_GC0309) += gc0309.o\r
+obj-$(CONFIG_GC0328) += gc0328.o\r
+obj-$(CONFIG_GC0329) += gc0329.o\r
+obj-$(CONFIG_GC2015) += gc2015.o\r
+obj-$(CONFIG_GC2035) += gc2035.o\r
+\r
+obj-$(CONFIG_GT2005) += gt2005.o\r
+\r
+obj-$(CONFIG_HM2057) += hm2057.o\r
+obj-$(CONFIG_HM5065) += hm5065.o\r
+\r
+obj-$(CONFIG_MT9P111) += mt9p111.o\r
+\r
+obj-$(CONFIG_MT9T111) += mt9t111.o\r
+\r
+obj-$(CONFIG_NT99160_2WAY) += nt99160_2way.o\r
+\r
+obj-$(CONFIG_NT99240_2WAY) += nt99240_2way.o\r
+\r
+\r
+\r
+\r
+obj-$(CONFIG_OV2659) += ov2659.o\r
+obj-$(CONFIG_OV5640) += ov5640.o\r
+\r
+\r
+obj-$(CONFIG_SP2518) += sp2518.o\r
+\r
+\r
index 720de7b2727d2db5ad9e1d16927245b69996f8d3..3b2e9978c6a6f56b63d6b1dd0c44b177bd2fc9b6 100755 (executable)
@@ -22,9 +22,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define SENSOR_NAME RK29_CAM_SENSOR_GC0307\r
 #define SENSOR_V4L2_IDENT V4L2_IDENT_GC0307\r
 #define SENSOR_ID 0x99\r
-#define SENSOR_BUS_PARAM                                        (SOCAM_MASTER |\\r
-                                                                                        SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\\r
-                                                                                        SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM                     (V4L2_MBUS_MASTER |\\r
+                                                                                                V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\\r
+                                                                                                V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
 #define SENSOR_PREVIEW_W                                        640\r
 #define SENSOR_PREVIEW_H                                        480\r
 #define SENSOR_PREVIEW_FPS                                      15000     // 15fps \r
@@ -1024,7 +1024,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] =
 static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
        {V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} \r
 };\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
 \r
 \r
 /*\r
index 5c3525f5d08d40d1cd731f5d40007b5a59d58c51..e712f7d7f9ba18ea1633b9071224490c09debbcb 100755 (executable)
@@ -22,9 +22,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define SENSOR_NAME RK29_CAM_SENSOR_GC0308\r
 #define SENSOR_V4L2_IDENT V4L2_IDENT_GC0308\r
 #define SENSOR_ID 0x9b\r
-#define SENSOR_BUS_PARAM                                        (SOCAM_MASTER |\\r
-                                                                                        SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\\r
-                                                                                        SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM                     (V4L2_MBUS_MASTER |\\r
+                                                                                                        V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\\r
+                                                                                                        V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
 #define SENSOR_PREVIEW_W                                        640\r
 #define SENSOR_PREVIEW_H                                        480\r
 #define SENSOR_PREVIEW_FPS                                      15000     // 15fps \r
@@ -912,7 +912,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] =
 static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
        {V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} \r
 };\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
 \r
 \r
 /*\r
index 35a9a40f40d7bdb6b14c23caa76b35c954c7952f..19633c62c432293ac31634f1a4752bf71c1e3bdb 100755 (executable)
@@ -22,9 +22,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define SENSOR_NAME RK29_CAM_SENSOR_GC0309\r
 #define SENSOR_V4L2_IDENT V4L2_IDENT_GC0309\r
 #define SENSOR_ID 0xa0\r
-#define SENSOR_BUS_PARAM                                        (SOCAM_MASTER |\\r
-                                                                                        SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_HIGH|\\r
-                                                                                        SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM                     (V4L2_MBUS_MASTER |\\r
+                                                                                                        V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\\r
+                                                                                                        V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
 #define SENSOR_PREVIEW_W                                        640\r
 #define SENSOR_PREVIEW_H                                        480\r
 #define SENSOR_PREVIEW_FPS                                      15000     // 15fps \r
@@ -862,7 +862,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] =
 static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
        {V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} \r
 };\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
 \r
 \r
 /*\r
index 249598724488363cafd6a8097958e931f01e6718..fabe6cf2b1b140487248b86b95f8a52461a39995 100755 (executable)
@@ -20,9 +20,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define SENSOR_NAME RK29_CAM_SENSOR_GC0328\r
 #define SENSOR_V4L2_IDENT V4L2_IDENT_GC0328\r
 #define SENSOR_ID 0x9d\r
-#define SENSOR_BUS_PARAM                                        (SOCAM_MASTER |\\r
-                                                                                        SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\\r
-                                                                                        SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM                     (V4L2_MBUS_MASTER |\\r
+                                                                                                                V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\\r
+                                                                                                                V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
 #define SENSOR_PREVIEW_W                                        640\r
 #define SENSOR_PREVIEW_H                                        480\r
 #define SENSOR_PREVIEW_FPS                                      15000     // 15fps \r
@@ -771,7 +771,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] =
 static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
        {V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} \r
 };\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
 \r
 \r
 /*\r
index 2b51782585992578b82a8dd64600771010c3d043..277f592dc9c5abb5547360ab0a09c3054cc2c96e 100755 (executable)
@@ -22,9 +22,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define SENSOR_NAME RK29_CAM_SENSOR_GC0329\r
 #define SENSOR_V4L2_IDENT V4L2_IDENT_GC0329\r
 #define SENSOR_ID 0xc0\r
-#define SENSOR_BUS_PARAM                                        (SOCAM_MASTER |\\r
-                                                                                        SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_HIGH|\\r
-                                                                                        SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM                     (V4L2_MBUS_MASTER |\\r
+                                             V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\\r
+                                             V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
 #define SENSOR_PREVIEW_W                                        640\r
 #define SENSOR_PREVIEW_H                                        480\r
 #define SENSOR_PREVIEW_FPS                                      15000     // 15fps \r
@@ -846,7 +846,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] =
 static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
        {V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} \r
 };\r
-static struct soc_camera_ops sensor_ops;\r
+//static struct soc_camera_ops sensor_ops;\r
 \r
 \r
 /*\r
index 097cf64d920d52a804df4f16abbc2184a214519d..786b35e4fa765ff1408df7d4085127a61d3fa66a 100755 (executable)
@@ -22,9 +22,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define SENSOR_NAME RK29_CAM_SENSOR_GC2015\r
 #define SENSOR_V4L2_IDENT V4L2_IDENT_GC2015\r
 #define SENSOR_ID 0x2005\r
-#define SENSOR_BUS_PARAM                                        (SOCAM_MASTER |\\r
-                                                                                        SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\\r
-                                                                                        SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM                     (V4L2_MBUS_MASTER |\\r
+                                                                                                                V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\\r
+                                                                                                                V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
 #define SENSOR_PREVIEW_W                                        800\r
 #define SENSOR_PREVIEW_H                                        600\r
 #define SENSOR_PREVIEW_FPS                                      15000     // 15fps \r
@@ -835,7 +835,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] =
 static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
        {V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} \r
 };\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
 \r
 \r
 /*\r
index 4c6eaa3266fce43325b9f65169fe7d81f21e2ef6..d5d8971c50504c4c67c963c4b88977df294ed968 100755 (executable)
@@ -22,9 +22,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define SENSOR_NAME RK29_CAM_SENSOR_GC2035\r
 #define SENSOR_V4L2_IDENT V4L2_IDENT_GC2035\r
 #define SENSOR_ID 0x2035\r
-#define SENSOR_BUS_PARAM                                        (SOCAM_MASTER |\\r
-                                                                                        SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_HIGH|\\r
-                                                                                        SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM                     (V4L2_MBUS_MASTER |\\r
+                                                                                                                V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\\r
+                                                                                                                V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
 #define SENSOR_PREVIEW_W                                        800\r
 #define SENSOR_PREVIEW_H                                        600\r
 #define SENSOR_PREVIEW_FPS                                      15000     // 15fps \r
@@ -1192,7 +1192,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] =
 static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
        {V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} \r
 };\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
 \r
 \r
 /*\r
index ec5f9310a26982dd2cf9c2059142d07980901674..3f336250c393cebf3c26881c4c16b028df4ea395 100755 (executable)
@@ -19,9 +19,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define SENSOR_NAME RK29_CAM_SENSOR_GT2005\r
 #define SENSOR_V4L2_IDENT V4L2_IDENT_GT2005\r
 #define SENSOR_ID 0x5138\r
-#define SENSOR_BUS_PARAM                                        (SOCAM_MASTER |\\r
-                                                                                        SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_HIGH|\\r
-                                                                                        SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM                     (V4L2_MBUS_MASTER |\\r
+                                                                                                                V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\\r
+                                                                                                                V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
 #define SENSOR_PREVIEW_W                                        640\r
 #define SENSOR_PREVIEW_H                                        480\r
 #define SENSOR_PREVIEW_FPS                                      15000     // 15fps \r
@@ -1019,7 +1019,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] =
 static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
        {V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} \r
 };\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
 \r
 \r
 /*\r
index 4b67fd3c39384f52a45a3f9bd269c4484c6d5510..4095e02f01561d37eb0490c848c1b8e8e91e32d8 100755 (executable)
@@ -24,9 +24,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define SENSOR_NAME RK29_CAM_SENSOR_HM2057\r
 #define SENSOR_V4L2_IDENT V4L2_IDENT_HM2057\r
 #define SENSOR_ID 0x2056\r
-#define SENSOR_BUS_PARAM                     (SOCAM_MASTER |\\r
-                                             SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\\r
-                                             SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM                     (V4L2_MBUS_MASTER |\\r
+                                                                                                                V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\\r
+                                                                                                                V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
 #define SENSOR_PREVIEW_W                     800\r
 #define SENSOR_PREVIEW_H                     600\r
 #define SENSOR_PREVIEW_FPS                   15000     // 15fps \r
@@ -1038,7 +1038,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] =
 static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
        {V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} \r
 };\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
 \r
 \r
 /*\r
index b9e6d1f6569e18679d17dd48e3e74a7b137235f0..a403c51d687781d8e68e8f9fe12b295907f80b8f 100755 (executable)
@@ -21,9 +21,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define SENSOR_NAME RK29_CAM_SENSOR_HM5065\r
 #define SENSOR_V4L2_IDENT V4L2_IDENT_HM5065\r
 #define SENSOR_ID 0x039E\r
-#define SENSOR_BUS_PARAM                                        (SOCAM_MASTER |\\r
-                                                                                        SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\\r
-                                                                                        SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM                     (V4L2_MBUS_MASTER |\\r
+                                                                                                                        V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\\r
+                                                                                                                        V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
 #define SENSOR_PREVIEW_W                                        800\r
 #define SENSOR_PREVIEW_H                                        600\r
 #define SENSOR_PREVIEW_FPS                                      15000     // 15fps \r
@@ -2522,7 +2522,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] =
 static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
        {V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} \r
 };\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
 \r
 \r
 /*\r
index 8f6330f76c04ff53c8ee4a7ecc94012259e02265..adfa9bb66efc4144303465410c72ed726b9bac01 100755 (executable)
@@ -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;*/
 
 
 /*
index 4318b68a9434cc8c486e22e28b8bda0223b79682..1fce584f3a566a5a08b7e2aec5401c2c9238ad0d 100755 (executable)
@@ -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
index a126e2d75e7419401eea2e7c1aa5050f83744dc5..764343e7936682eb657a28517028c4b8e44d4f3c 100755 (executable)
@@ -22,9 +22,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define SENSOR_NAME RK29_CAM_SENSOR_NT99160\r
 #define SENSOR_V4L2_IDENT V4L2_IDENT_NT99160\r
 #define SENSOR_ID 0x1600\r
-#define SENSOR_BUS_PARAM  (SOCAM_MASTER | SOCAM_PCLK_SAMPLE_RISING |\\r
-                          SOCAM_HSYNC_ACTIVE_HIGH | SOCAM_VSYNC_ACTIVE_HIGH|\\r
-                          SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM                     (V4L2_MBUS_MASTER |\\r
+                                                                                                                                V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\\r
+                                                                                                                                V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
 \r
 #define SENSOR_PREVIEW_W                     800\r
 #define SENSOR_PREVIEW_H                     600\r
@@ -1011,7 +1011,7 @@ static struct rk_sensor_datafmt sensor_colour_fmts[] = {
        {V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG},\r
        {V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} \r
 };\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
 \r
 /*\r
 **********************************************************\r
index 6741bc9db584b45edbe82fc3612d480cdebaa0cd..542451ff4533ad29bef8f1011743b87cf6dda7c9 100755 (executable)
@@ -20,9 +20,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define SENSOR_NAME RK29_CAM_SENSOR_NT99240\r
 #define SENSOR_V4L2_IDENT V4L2_IDENT_NT99240\r
 #define SENSOR_ID 0x2400\r
-#define SENSOR_BUS_PARAM                     (SOCAM_MASTER |\\r
-                                             SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_HIGH|\\r
-                                             SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM                     (V4L2_MBUS_MASTER |\\r
+                                                                                                                                V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\\r
+                                                                                                                                V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
 #define SENSOR_PREVIEW_W                     800\r
 #define SENSOR_PREVIEW_H                     600\r
 #define SENSOR_PREVIEW_FPS                   15000     // 15fps \r
@@ -816,7 +816,7 @@ static struct rk_sensor_datafmt sensor_colour_fmts[] = {
        {V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG},\r
        {V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} \r
 };\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
 \r
 \r
 /*\r
index 2b684280c3029379f777a91832fd854f9ad40d98..db502e91a84f83401f335a5d58551e9cacfbd448 100755 (executable)
@@ -23,9 +23,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define SENSOR_NAME RK29_CAM_SENSOR_OV5640\r
 #define SENSOR_V4L2_IDENT V4L2_IDENT_OV5640\r
 #define SENSOR_ID 0x5640\r
-#define SENSOR_BUS_PARAM                                        (SOCAM_MASTER |\\r
-                                                                                        SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\\r
-                                                                                        SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM                     (V4L2_MBUS_MASTER |\\r
+                                                                                                V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\\r
+                                                                                                V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
 #define SENSOR_PREVIEW_W                                        800\r
 #define SENSOR_PREVIEW_H                                        600\r
 #define SENSOR_PREVIEW_FPS                                      15000     // 15fps \r
@@ -983,7 +983,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] =
 static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
        {V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} \r
 };\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
 \r
 \r
 /*\r
index d378dc4b01507ff2c77a17dc2a189a56c962500d..985b68d61177191fb3a90056210e0283686ac78a 100755 (executable)
@@ -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_size<pcdev->vipmem_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);
 }
index 3eb0b7fde3922be30247ffccb94ebe525ff04d63..ef108f9df737eb0217b18406c2498c0f96305d1d 100755 (executable)
@@ -22,9 +22,9 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define SENSOR_NAME RK29_CAM_SENSOR_SP2518\r
 #define SENSOR_V4L2_IDENT V4L2_IDENT_SP2518\r
 #define SENSOR_ID 0x53\r
-#define SENSOR_BUS_PARAM                     (SOCAM_MASTER |\\r
-                                             SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_HIGH|\\r
-                                             SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM                     (V4L2_MBUS_MASTER |\\r
+                                                                                                                        V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\\r
+                                                                                                                        V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
 #define SENSOR_PREVIEW_W                     800\r
 #define SENSOR_PREVIEW_H                     600\r
 #define SENSOR_PREVIEW_FPS                   15000     // 15fps \r
@@ -1053,7 +1053,7 @@ static struct sensor_v4l2ctrl_usr_s sensor_controls[] =
 static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
        {V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} \r
 };\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
 \r
 \r
 /*\r
index 4d51841a605be3629a67eb80d0389726067f2c14..e9b69c6808ba7281af87b254794507581c6c86b4 100644 (file)
@@ -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! */
 };