From 39977be279e34ec16b530a94e8122c730cd5d737 Mon Sep 17 00:00:00 2001 From: ddl Date: Wed, 15 May 2013 11:10:14 +0800 Subject: [PATCH] camera: cif:v0.3.3, generic_sensor:v0.1.5 --- arch/arm/plat-rk/rk_camera.c | 76 +++++++++++----------- drivers/media/video/generic_sensor.c | 9 ++- drivers/media/video/generic_sensor.h | 3 +- drivers/media/video/rk30_camera_oneframe.c | 34 +++++----- 4 files changed, 60 insertions(+), 62 deletions(-) diff --git a/arch/arm/plat-rk/rk_camera.c b/arch/arm/plat-rk/rk_camera.c index e47448392870..4db26e754dff 100755 --- a/arch/arm/plat-rk/rk_camera.c +++ b/arch/arm/plat-rk/rk_camera.c @@ -277,10 +277,10 @@ module_param(camera_debug, int, S_IRUGO|S_IWUSR); #define ddprintk(level, fmt, arg...) do { \ if (camera_debug >= level) \ - printk(KERN_WARNING"%s(%d):" fmt , CAMMODULE_NAME,__LINE__,## arg); } while (0) + printk(KERN_WARNING"%s(%d):" fmt"\n", CAMMODULE_NAME,__LINE__,## arg); } while (0) #define dprintk(format, ...) ddprintk(1, format, ## __VA_ARGS__) -#define eprintk(format, ...) printk(KERN_ERR "%s(%d):" format,CAMMODULE_NAME,__LINE__,## __VA_ARGS__) +#define eprintk(format, ...) printk(KERN_ERR "%s(%d):" format"\n",CAMMODULE_NAME,__LINE__,## __VA_ARGS__) #define SENSOR_NAME_0 STR(CONFIG_SENSOR_0) /* back camera sensor 0 */ #define SENSOR_NAME_1 STR(CONFIG_SENSOR_1) /* front camera sensor 0 */ @@ -724,15 +724,15 @@ static int sensor_power_default_cb (struct rk29camera_gpio_res *res, int on) if (camera_io_init & RK29_CAM_POWERACTIVE_MASK) { if (on) { gpio_set_value(camera_power, ((camera_ioflag&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS)); - dprintk("%s PowerPin=%d ..PinLevel = %x \n",res->dev_name, camera_power, ((camera_ioflag&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS)); + dprintk("%s PowerPin=%d ..PinLevel = %x",res->dev_name, camera_power, ((camera_ioflag&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS)); msleep(10); } else { gpio_set_value(camera_power, (((~camera_ioflag)&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS)); - dprintk("%s PowerPin=%d ..PinLevel = %x \n",res->dev_name, camera_power, (((~camera_ioflag)&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS)); + dprintk("%s PowerPin=%d ..PinLevel = %x",res->dev_name, camera_power, (((~camera_ioflag)&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS)); } } else { ret = RK29_CAM_EIO_REQUESTFAIL; - eprintk("%s PowerPin=%d request failed!\n", res->dev_name,camera_power); + eprintk("%s PowerPin=%d request failed!", res->dev_name,camera_power); } } else { ret = RK29_CAM_EIO_INVALID; @@ -752,14 +752,14 @@ static int sensor_reset_default_cb (struct rk29camera_gpio_res *res, int on) if (camera_io_init & RK29_CAM_RESETACTIVE_MASK) { if (on) { gpio_set_value(camera_reset, ((camera_ioflag&RK29_CAM_RESETACTIVE_MASK)>>RK29_CAM_RESETACTIVE_BITPOS)); - dprintk("%s ResetPin=%d ..PinLevel = %x \n",res->dev_name,camera_reset, ((camera_ioflag&RK29_CAM_RESETACTIVE_MASK)>>RK29_CAM_RESETACTIVE_BITPOS)); + dprintk("%s ResetPin=%d ..PinLevel = %x",res->dev_name,camera_reset, ((camera_ioflag&RK29_CAM_RESETACTIVE_MASK)>>RK29_CAM_RESETACTIVE_BITPOS)); } else { gpio_set_value(camera_reset,(((~camera_ioflag)&RK29_CAM_RESETACTIVE_MASK)>>RK29_CAM_RESETACTIVE_BITPOS)); - dprintk("%s ResetPin= %d..PinLevel = %x \n",res->dev_name, camera_reset, (((~camera_ioflag)&RK29_CAM_RESETACTIVE_MASK)>>RK29_CAM_RESETACTIVE_BITPOS)); + dprintk("%s ResetPin= %d..PinLevel = %x",res->dev_name, camera_reset, (((~camera_ioflag)&RK29_CAM_RESETACTIVE_MASK)>>RK29_CAM_RESETACTIVE_BITPOS)); } } else { ret = RK29_CAM_EIO_REQUESTFAIL; - eprintk("%s ResetPin=%d request failed!\n", res->dev_name,camera_reset); + eprintk("%s ResetPin=%d request failed!", res->dev_name,camera_reset); } } else { ret = RK29_CAM_EIO_INVALID; @@ -779,14 +779,14 @@ static int sensor_powerdown_default_cb (struct rk29camera_gpio_res *res, int on) if (camera_io_init & RK29_CAM_POWERDNACTIVE_MASK) { if (on) { gpio_set_value(camera_powerdown, ((camera_ioflag&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS)); - dprintk("%s PowerDownPin=%d ..PinLevel = %x \n" ,res->dev_name,camera_powerdown, ((camera_ioflag&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS)); + dprintk("%s PowerDownPin=%d ..PinLevel = %x" ,res->dev_name,camera_powerdown, ((camera_ioflag&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS)); } else { gpio_set_value(camera_powerdown,(((~camera_ioflag)&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS)); - dprintk("%s PowerDownPin= %d..PinLevel = %x \n" ,res->dev_name, camera_powerdown, (((~camera_ioflag)&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS)); + dprintk("%s PowerDownPin= %d..PinLevel = %x" ,res->dev_name, camera_powerdown, (((~camera_ioflag)&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS)); } } else { ret = RK29_CAM_EIO_REQUESTFAIL; - dprintk("%s PowerDownPin=%d request failed!\n", res->dev_name,camera_powerdown); + dprintk("%s PowerDownPin=%d request failed!", res->dev_name,camera_powerdown); } } else { ret = RK29_CAM_EIO_INVALID; @@ -809,33 +809,33 @@ static int sensor_flash_default_cb (struct rk29camera_gpio_res *res, int on) case Flash_Off: { gpio_set_value(camera_flash,(((~camera_ioflag)&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); - dprintk("%s FlashPin= %d..PinLevel = %x \n", res->dev_name, camera_flash, (((~camera_ioflag)&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); + dprintk("%s FlashPin= %d..PinLevel = %x", res->dev_name, camera_flash, (((~camera_ioflag)&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); break; } case Flash_On: { gpio_set_value(camera_flash, ((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); - dprintk("%s FlashPin=%d ..PinLevel = %x \n", res->dev_name,camera_flash, ((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); + dprintk("%s FlashPin=%d ..PinLevel = %x", res->dev_name,camera_flash, ((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); break; } case Flash_Torch: { gpio_set_value(camera_flash, ((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); - dprintk("%s FlashPin=%d ..PinLevel = %x \n", res->dev_name,camera_flash, ((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); + dprintk("%s FlashPin=%d ..PinLevel = %x", res->dev_name,camera_flash, ((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); break; } default: { - eprintk("%s Flash command(%d) is invalidate \n", res->dev_name,on); + eprintk("%s Flash command(%d) is invalidate", res->dev_name,on); break; } } } else { ret = RK29_CAM_EIO_REQUESTFAIL; - eprintk("%s FlashPin=%d request failed!\n", res->dev_name,camera_flash); + eprintk("%s FlashPin=%d request failed!", res->dev_name,camera_flash); } } else { ret = RK29_CAM_EIO_INVALID; @@ -1051,7 +1051,7 @@ static int _rk_sensor_io_init_(struct rk29camera_gpio_res *gpio_res) if (rk_camera_platform_data.iomux(camera_power) < 0) { ret = -1; - eprintk("%s power pin(%d) iomux init failed\n",gpio_res->dev_name,camera_power); + eprintk("%s power pin(%d) iomux init failed",gpio_res->dev_name,camera_power); goto _rk_sensor_io_init_end_; } @@ -1059,7 +1059,7 @@ static int _rk_sensor_io_init_(struct rk29camera_gpio_res *gpio_res) gpio_set_value(camera_reset, (((~camera_ioflag)&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS)); gpio_direction_output(camera_power, (((~camera_ioflag)&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS)); - dprintk("%s power pin(%d) init success(0x%x) \n" ,gpio_res->dev_name,camera_power,(((~camera_ioflag)&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS)); + dprintk("%s power pin(%d) init success(0x%x)" ,gpio_res->dev_name,camera_power,(((~camera_ioflag)&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS)); } @@ -1088,7 +1088,7 @@ static int _rk_sensor_io_init_(struct rk29camera_gpio_res *gpio_res) } if (io_requested_in_camera==false) { - eprintk("%s reset pin(%d) init failed\n" ,gpio_res->dev_name,camera_reset); + eprintk("%s reset pin(%d) init failed" ,gpio_res->dev_name,camera_reset); goto _rk_sensor_io_init_end_; } else { ret =0; @@ -1097,7 +1097,7 @@ static int _rk_sensor_io_init_(struct rk29camera_gpio_res *gpio_res) if (rk_camera_platform_data.iomux(camera_reset) < 0) { ret = -1; - eprintk("%s reset pin(%d) iomux init failed\n", gpio_res->dev_name,camera_reset); + eprintk("%s reset pin(%d) iomux init failed", gpio_res->dev_name,camera_reset); goto _rk_sensor_io_init_end_; } @@ -1105,7 +1105,7 @@ static int _rk_sensor_io_init_(struct rk29camera_gpio_res *gpio_res) gpio_set_value(camera_reset, ((camera_ioflag&RK29_CAM_RESETACTIVE_MASK)>>RK29_CAM_RESETACTIVE_BITPOS)); gpio_direction_output(camera_reset, ((camera_ioflag&RK29_CAM_RESETACTIVE_MASK)>>RK29_CAM_RESETACTIVE_BITPOS)); - dprintk("%s reset pin(%d) init success(0x%x)\n" ,gpio_res->dev_name,camera_reset,((camera_ioflag&RK29_CAM_RESETACTIVE_MASK)>>RK29_CAM_RESETACTIVE_BITPOS)); + dprintk("%s reset pin(%d) init success(0x%x)" ,gpio_res->dev_name,camera_reset,((camera_ioflag&RK29_CAM_RESETACTIVE_MASK)>>RK29_CAM_RESETACTIVE_BITPOS)); } @@ -1134,7 +1134,7 @@ static int _rk_sensor_io_init_(struct rk29camera_gpio_res *gpio_res) } if (io_requested_in_camera==false) { - eprintk("%s powerdown pin(%d) init failed\n",gpio_res->dev_name,camera_powerdown); + eprintk("%s powerdown pin(%d) init failed",gpio_res->dev_name,camera_powerdown); goto _rk_sensor_io_init_end_; } else { ret =0; @@ -1143,7 +1143,7 @@ static int _rk_sensor_io_init_(struct rk29camera_gpio_res *gpio_res) if (rk_camera_platform_data.iomux(camera_powerdown) < 0) { ret = -1; - eprintk("%s powerdown pin(%d) iomux init failed\n",gpio_res->dev_name,camera_powerdown); + eprintk("%s powerdown pin(%d) iomux init failed",gpio_res->dev_name,camera_powerdown); goto _rk_sensor_io_init_end_; } @@ -1151,7 +1151,7 @@ static int _rk_sensor_io_init_(struct rk29camera_gpio_res *gpio_res) gpio_set_value(camera_powerdown, ((camera_ioflag&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS)); gpio_direction_output(camera_powerdown, ((camera_ioflag&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS)); - dprintk("%s powerdown pin(%d) init success(0x%x) \n" ,gpio_res->dev_name,camera_powerdown,((camera_ioflag&RK29_CAM_POWERDNACTIVE_BITPOS)>>RK29_CAM_POWERDNACTIVE_BITPOS)); + dprintk("%s powerdown pin(%d) init success(0x%x)" ,gpio_res->dev_name,camera_powerdown,((camera_ioflag&RK29_CAM_POWERDNACTIVE_BITPOS)>>RK29_CAM_POWERDNACTIVE_BITPOS)); } @@ -1181,7 +1181,7 @@ static int _rk_sensor_io_init_(struct rk29camera_gpio_res *gpio_res) ret = 0; //ddl@rock-chips.com : flash is only a function, sensor is also run; if (io_requested_in_camera==false) { - eprintk("%s flash pin(%d) init failed\n",gpio_res->dev_name,camera_flash); + eprintk("%s flash pin(%d) init failed",gpio_res->dev_name,camera_flash); goto _rk_sensor_io_init_end_; } } @@ -1194,7 +1194,7 @@ static int _rk_sensor_io_init_(struct rk29camera_gpio_res *gpio_res) gpio_set_value(camera_flash, ((~camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); /* falsh off */ gpio_direction_output(camera_flash, ((~camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); - dprintk("%s flash pin(%d) init success(0x%x) \n",gpio_res->dev_name, camera_flash,((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); + dprintk("%s flash pin(%d) init success(0x%x)",gpio_res->dev_name, camera_flash,((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); } _rk_sensor_io_init_end_: @@ -1377,7 +1377,7 @@ static int rk_sensor_ioctrl(struct device *dev,enum rk29camera_ioctrl_cmd cmd, i } if (res == NULL) { - eprintk("%s is not regisiterd in rk29_camera_platform_data!!\n",dev_name(dev)); + eprintk("%s is not regisiterd in rk29_camera_platform_data!!",dev_name(dev)); ret = RK29_CAM_EIO_INVALID; goto rk_sensor_ioctrl_end; } @@ -1434,7 +1434,7 @@ static int rk_sensor_ioctrl(struct device *dev,enum rk29camera_ioctrl_cmd cmd, i if (plat_data->sensor_mclk && dev_icl) { plat_data->sensor_mclk(dev_icl->bus_id,(on!=0)?1:0,on); } else { - eprintk( "%s(%d): sensor_mclk(%p) or dev_icl(%p) is NULL\n", + eprintk( "%s(%d): sensor_mclk(%p) or dev_icl(%p) is NULL", __FUNCTION__,__LINE__,plat_data->sensor_mclk,dev_icl); } break; @@ -1442,7 +1442,7 @@ static int rk_sensor_ioctrl(struct device *dev,enum rk29camera_ioctrl_cmd cmd, i default: { - eprintk("%s cmd(0x%x) is unknown!\n",__FUNCTION__, cmd); + eprintk("%s cmd(0x%x) is unknown!",__FUNCTION__, cmd); break; } } @@ -1471,10 +1471,10 @@ static int rk_sensor_pwrseq(struct device *dev,int powerup_sequence, int on, int { ret = rk_sensor_ioctrl(dev,Cam_Power, on); if (ret<0) { - eprintk("SENSOR_PWRSEQ_PWR failed\n"); + eprintk("SENSOR_PWRSEQ_PWR failed"); } else { msleep(10); - dprintk("SensorPwrSeq-power: %d\n",on); + dprintk("SensorPwrSeq-power: %d",on); } break; } @@ -1485,9 +1485,9 @@ static int rk_sensor_pwrseq(struct device *dev,int powerup_sequence, int on, int msleep(2); ret |= rk_sensor_ioctrl(dev,Cam_Reset, 0); if (ret<0) { - eprintk("SENSOR_PWRSEQ_HWRST failed\n"); + eprintk("SENSOR_PWRSEQ_HWRST failed"); } else { - dprintk("SensorPwrSeq-reset: %d\n",on); + dprintk("SensorPwrSeq-reset: %d",on); } break; } @@ -1496,9 +1496,9 @@ static int rk_sensor_pwrseq(struct device *dev,int powerup_sequence, int on, int { ret = rk_sensor_ioctrl(dev,Cam_PowerDown, !on); if (ret<0) { - eprintk("SENSOR_PWRSEQ_PWRDN failed\n"); + eprintk("SENSOR_PWRSEQ_PWRDN failed"); } else { - dprintk("SensorPwrSeq-power down: %d \n",!on); + dprintk("SensorPwrSeq-power down: %d",!on); } break; } @@ -1507,9 +1507,9 @@ static int rk_sensor_pwrseq(struct device *dev,int powerup_sequence, int on, int { ret = rk_sensor_ioctrl(dev,Cam_Mclk, (on?mclk_rate:on)); if (ret<0) { - eprintk("SENSOR_PWRSEQ_CLKIN failed\n"); + eprintk("SENSOR_PWRSEQ_CLKIN failed"); } else { - dprintk("SensorPwrSeq-clock: %d\n",on); + dprintk("SensorPwrSeq-clock: %d",on); } break; } @@ -1700,7 +1700,7 @@ int camera_set_platform_param(int id, int i2c, int gpio) int rk_sensor_register(void) { int i; - + i = 0; while (strstr(new_camera[i].dev.device_info.dev.init_name,"end")==NULL) { diff --git a/drivers/media/video/generic_sensor.c b/drivers/media/video/generic_sensor.c index 832e561541c4..a8640fbebf3e 100755 --- a/drivers/media/video/generic_sensor.c +++ b/drivers/media/video/generic_sensor.c @@ -20,8 +20,11 @@ * add WqCmd_af_continues_pause; *v0.1.3: * add support flash control; +* +*v0.1.5: +* fix use v4l2_mbus_framefmt.reserved array overflow in generic_sensor_s_fmt; */ -static int version = KERNEL_VERSION(0,1,3); +static int version = KERNEL_VERSION(0,1,5); module_param(version, int, S_IRUGO); @@ -156,7 +159,7 @@ write_end: /* sensor register write buffer */ int generic_sensor_writebuf(struct i2c_client *client, char *buf, int buf_size) { - int err=0,cnt = 0,i; + int err=0,cnt = 0; struct i2c_msg msg[1]; struct generic_sensor *sensor = to_generic_sensor(client); @@ -852,7 +855,7 @@ int generic_sensor_s_fmt(struct v4l2_subdev *sd, struct v4l2_mbus_framefmt *mf) struct generic_sensor *sensor = to_generic_sensor(client); struct rk_sensor_sequence *winseqe_set_addr=NULL; struct sensor_v4l2ctrl_info_s *v4l2ctrl_info; - bool is_capture=(mf->reserved[7]==0xfefe5a5a)?true:false; + bool is_capture=(mf->reserved[6]==0xfefe5a5a)?true:false; /* ddl@rock-chips.com : v0.1.5 */ int ret=0; fmt =generic_sensor_find_datafmt(mf->code, sensor->info_priv.datafmt, diff --git a/drivers/media/video/generic_sensor.h b/drivers/media/video/generic_sensor.h index e4277e9e83a2..31526d072a9c 100755 --- a/drivers/media/video/generic_sensor.h +++ b/drivers/media/video/generic_sensor.h @@ -493,8 +493,7 @@ static inline int sensor_v4l2ctrl_default_cb(struct soc_camera_device *icd, stru static inline int sensor_v4l2ctrl_flash_cb(struct soc_camera_device *icd, struct sensor_v4l2ctrl_info_s *ctrl_info, struct v4l2_ext_control *ext_ctrl) { - struct i2c_client *client = to_i2c_client(to_soc_camera_control(icd)); - struct generic_sensor *sensor = to_generic_sensor(client); + struct i2c_client *client = to_i2c_client(to_soc_camera_control(icd)); int value = ext_ctrl->value; if ((value < ctrl_info->qctrl->minimum) || (value > ctrl_info->qctrl->maximum)) { diff --git a/drivers/media/video/rk30_camera_oneframe.c b/drivers/media/video/rk30_camera_oneframe.c index 99f276cfa5e3..cd1ac2be2fca 100755 --- a/drivers/media/video/rk30_camera_oneframe.c +++ b/drivers/media/video/rk30_camera_oneframe.c @@ -296,9 +296,12 @@ module_param(debug, int, S_IRUGO|S_IWUSR); * *v0.3.1 : * 1. compatible with generic_sensor; - +* +*v0.3.3 : +* 1. fix use v4l2_mbus_framefmt.reserved array overflow in generic_sensor_s_fmt; */ -#define RK_CAM_VERSION_CODE KERNEL_VERSION(0, 3, 0x01) + +#define RK_CAM_VERSION_CODE KERNEL_VERSION(0, 3, 0x03) static int version = RK_CAM_VERSION_CODE; module_param(version, int, S_IRUGO); @@ -650,9 +653,10 @@ fail: out: return ret; } +#if defined(CONFIG_ARCH_RK3188) static void rk_camera_store_register(struct rk_camera_dev *pcdev) { -#if defined(CONFIG_ARCH_RK3188) + pcdev->reginfo_suspend.cifCtrl = read_cif_reg(pcdev->base,CIF_CIF_CTRL); pcdev->reginfo_suspend.cifCrop = read_cif_reg(pcdev->base,CIF_CIF_CROP); pcdev->reginfo_suspend.cifFs = read_cif_reg(pcdev->base,CIF_CIF_SET_SIZE); @@ -664,12 +668,9 @@ static void rk_camera_store_register(struct rk_camera_dev *pcdev) cru_set_soft_reset(SOFT_RST_CIF0, true); udelay(5); cru_set_soft_reset(SOFT_RST_CIF0, false); - -#endif } static void rk_camera_restore_register(struct rk_camera_dev *pcdev) { -#if defined(CONFIG_ARCH_RK3188) if (pcdev->reginfo_suspend.cifCtrl&ENABLE_CAPTURE) write_cif_reg(pcdev->base,CIF_CIF_CTRL, pcdev->reginfo_suspend.cifCtrl&~ENABLE_CAPTURE); write_cif_reg(pcdev->base,CIF_CIF_INTEN, pcdev->reginfo_suspend.cifIntEn); @@ -680,8 +681,10 @@ static void rk_camera_restore_register(struct rk_camera_dev *pcdev) write_cif_reg(pcdev->base,CIF_CIF_SCL_CTRL, pcdev->reginfo_suspend.cifScale); if (pcdev->reginfo_suspend.cifCtrl&ENABLE_CAPTURE) write_cif_reg(pcdev->base,CIF_CIF_CTRL, pcdev->reginfo_suspend.cifCtrl); -#endif + + } +#endif static inline void rk_videobuf_capture(struct videobuf_buffer *vb,struct rk_camera_dev *rk_pcdev) { unsigned int y_addr,uv_addr; @@ -788,7 +791,7 @@ static int rk_pixfmt2ippfmt(unsigned int pixfmt, int *ippfmt) rk_pixfmt2ippfmt_err: return -1; } - +#if (CONFIG_CAMERA_SCALE_CROP_MACHINE == RK_CAM_SCALE_CROP_RGA) static int rk_pixfmt2rgafmt(unsigned int pixfmt, int *ippfmt) { switch (pixfmt) @@ -825,6 +828,7 @@ static int rk_pixfmt2rgafmt(unsigned int pixfmt, int *ippfmt) rk_pixfmt2rgafmt_err: return -1; } +#endif #if (CONFIG_CAMERA_SCALE_CROP_MACHINE == RK_CAM_SCALE_CROP_PP) static int rk_camera_scale_crop_pp(struct work_struct *work){ struct rk_camera_work *camera_work = container_of(work, struct rk_camera_work, work); @@ -1055,8 +1059,6 @@ static int rk_camera_scale_crop_ipp(struct work_struct *work) if (scale_crop_ret == 0x01) { ret = rk_camera_scale_crop_arm(work); } - -do_ipp_err: if (ret) { spin_lock_irqsave(&pcdev->lock, flags); @@ -1185,8 +1187,7 @@ static int rk_camera_scale_crop_arm(struct work_struct *work) } pdUV += dstW*2; } -rk_camera_scale_crop_arm_end: - + dmac_flush_range((void*)src,(void*)(src+pcdev->vipmem_bsize)); outer_flush_range((phys_addr_t)src_phy,(phys_addr_t)(src_phy+pcdev->vipmem_bsize)); @@ -1447,9 +1448,6 @@ rk_camera_clk_ctrl_end: static int rk_camera_activate(struct rk_camera_dev *pcdev, struct soc_camera_device *icd) { - int err = 0; - struct soc_camera_host *ici = to_soc_camera_host(icd->dev.parent); - /* * ddl@rock-chips.com : Cif clk control in rk_sensor_power which in rk_camera.c */ @@ -1494,8 +1492,6 @@ static int rk_camera_activate(struct rk_camera_dev *pcdev, struct soc_camera_dev write_cif_reg(pcdev->base,CIF_CIF_INTEN, 0x01); //capture complete interrupt enable RKCAMERA_DG("CIF_CIF_CTRL = 0x%x\n",read_cif_reg(pcdev->base, CIF_CIF_CTRL)); return 0; -RK_CAMERA_ACTIVE_ERR: - return -ENODEV; } static void rk_camera_deactivate(struct rk_camera_dev *pcdev) @@ -2121,7 +2117,7 @@ static int rk_camera_set_fmt(struct soc_camera_device *icd, mf.field = pix->field; mf.colorspace = pix->colorspace; mf.code = xlate->code; - mf.reserved[7] = pix->priv; + mf.reserved[6] = pix->priv; /* ddl@rock-chips.com : v0.3.3 */ ret = v4l2_subdev_call(sd, video, s_mbus_fmt, &mf); if (mf.code != xlate->code) return -EINVAL; @@ -3307,7 +3303,7 @@ static int __devexit rk_camera_remove(struct platform_device *pdev) if (meminfo_ptr->vbase == meminfo_ptrr->vbase) { meminfo_ptr->vbase = NULL; } else { - iounmap((void __iomem*)pcdev->vipmem_phybase); + iounmap((void __iomem*)pcdev->vipmem_virbase); release_mem_region(pcdev->vipmem_phybase, pcdev->vipmem_size); meminfo_ptr->vbase = NULL; } -- 2.34.1