From 718210a8e02efe2dcd225c227ffb4a682d745080 Mon Sep 17 00:00:00 2001 From: ddl Date: Fri, 2 Dec 2011 17:34:39 +0800 Subject: [PATCH] camera: support query framerate and support detect framerate, version update to v0.1.5 --- arch/arm/mach-rk29/board-rk29-ddr3sdk.c | 15 ++ arch/arm/mach-rk29/board-rk29-phonesdk.c | 15 ++ arch/arm/mach-rk29/include/mach/rk29_camera.h | 10 +- drivers/media/video/rk29_camera.c | 159 +++++++++++++++++- drivers/media/video/rk29_camera_oneframe.c | 106 +++++++++--- 5 files changed, 271 insertions(+), 34 deletions(-) diff --git a/arch/arm/mach-rk29/board-rk29-ddr3sdk.c b/arch/arm/mach-rk29/board-rk29-ddr3sdk.c index a1ee2b087fba..43b9faebed03 100755 --- a/arch/arm/mach-rk29/board-rk29-ddr3sdk.c +++ b/arch/arm/mach-rk29/board-rk29-ddr3sdk.c @@ -81,6 +81,13 @@ #define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_0 RK29_CAM_POWERDNACTIVE_H #define CONFIG_SENSOR_FLASHACTIVE_LEVEL_0 RK29_CAM_FLASHACTIVE_L +#define CONFIG_SENSOR_QCIF_FPS_FIXED_0 15 +#define CONFIG_SENSOR_QVGA_FPS_FIXED_0 15 +#define CONFIG_SENSOR_CIF_FPS_FIXED_0 15 +#define CONFIG_SENSOR_VGA_FPS_FIXED_0 15 +#define CONFIG_SENSOR_SVGA_FPS_FIXED_0 15 +#define CONFIG_SENSOR_720P_FPS_FIXED_0 30 + #define CONFIG_SENSOR_1 RK29_CAM_SENSOR_OV2659 /* front camera sensor */ #define CONFIG_SENSOR_IIC_ADDR_1 0x60 #define CONFIG_SENSOR_IIC_ADAPTER_ID_1 1 @@ -93,6 +100,14 @@ #define CONFIG_SENSOR_RESETACTIVE_LEVEL_1 RK29_CAM_RESETACTIVE_L #define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_1 RK29_CAM_POWERDNACTIVE_H #define CONFIG_SENSOR_FLASHACTIVE_LEVEL_1 RK29_CAM_FLASHACTIVE_L + +#define CONFIG_SENSOR_QCIF_FPS_FIXED_1 15 +#define CONFIG_SENSOR_QVGA_FPS_FIXED_1 15 +#define CONFIG_SENSOR_CIF_FPS_FIXED_1 15 +#define CONFIG_SENSOR_VGA_FPS_FIXED_1 15 +#define CONFIG_SENSOR_SVGA_FPS_FIXED_1 15 +#define CONFIG_SENSOR_720P_FPS_FIXED_1 30 + #endif //#ifdef CONFIG_VIDEO_RK29 /*---------------- Camera Sensor Configuration Macro End------------------------*/ #include "../../../drivers/media/video/rk29_camera.c" diff --git a/arch/arm/mach-rk29/board-rk29-phonesdk.c b/arch/arm/mach-rk29/board-rk29-phonesdk.c index 60ee21631e41..247b2985610d 100755 --- a/arch/arm/mach-rk29/board-rk29-phonesdk.c +++ b/arch/arm/mach-rk29/board-rk29-phonesdk.c @@ -97,6 +97,13 @@ #define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_0 RK29_CAM_POWERDNACTIVE_H #define CONFIG_SENSOR_FLASHACTIVE_LEVEL_0 RK29_CAM_FLASHACTIVE_L +#define CONFIG_SENSOR_QCIF_FPS_FIXED_0 15 +#define CONFIG_SENSOR_QVGA_FPS_FIXED_0 15 +#define CONFIG_SENSOR_CIF_FPS_FIXED_0 15 +#define CONFIG_SENSOR_VGA_FPS_FIXED_0 15 +#define CONFIG_SENSOR_SVGA_FPS_FIXED_0 15 +#define CONFIG_SENSOR_720P_FPS_FIXED_0 30 + #define CONFIG_SENSOR_1 RK29_CAM_SENSOR_OV2659 /* front camera sensor */ #define CONFIG_SENSOR_IIC_ADDR_1 0x60 #define CONFIG_SENSOR_IIC_ADAPTER_ID_1 1 @@ -109,6 +116,14 @@ #define CONFIG_SENSOR_RESETACTIVE_LEVEL_1 RK29_CAM_RESETACTIVE_L #define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_1 RK29_CAM_POWERDNACTIVE_H #define CONFIG_SENSOR_FLASHACTIVE_LEVEL_1 RK29_CAM_FLASHACTIVE_L + +#define CONFIG_SENSOR_QCIF_FPS_FIXED_1 15 +#define CONFIG_SENSOR_QVGA_FPS_FIXED_1 15 +#define CONFIG_SENSOR_CIF_FPS_FIXED_1 15 +#define CONFIG_SENSOR_VGA_FPS_FIXED_1 15 +#define CONFIG_SENSOR_SVGA_FPS_FIXED_1 15 +#define CONFIG_SENSOR_720P_FPS_FIXED_1 30 + #endif //#ifdef CONFIG_VIDEO_RK29 /*---------------- Camera Sensor Configuration Macro End------------------------*/ #include "../../../drivers/media/video/rk29_camera.c" diff --git a/arch/arm/mach-rk29/include/mach/rk29_camera.h b/arch/arm/mach-rk29/include/mach/rk29_camera.h index 855e2396fee4..8f7b6f8688db 100755 --- a/arch/arm/mach-rk29/include/mach/rk29_camera.h +++ b/arch/arm/mach-rk29/include/mach/rk29_camera.h @@ -22,6 +22,8 @@ #ifndef __ASM_ARCH_CAMERA_H_ #define __ASM_ARCH_CAMERA_H_ +#include + #define RK29_CAM_DRV_NAME "rk29xx-camera" #define RK29_CAM_PLATFORM_DEV_ID 33 @@ -160,7 +162,7 @@ struct rk29camera_gpio_res { unsigned int gpio_flash; unsigned int gpio_flag; unsigned int gpio_init; - unsigned int orientation; + const char *dev_name; }; @@ -169,12 +171,18 @@ struct rk29camera_mem_res { unsigned int start; unsigned int size; }; +struct rk29camera_info { + const char *dev_name; + unsigned int orientation; + struct v4l2_frmivalenum fival[10]; +}; struct rk29camera_platform_data { int (*io_init)(void); int (*io_deinit)(int sensor); int (*sensor_ioctrl)(struct device *dev,enum rk29camera_ioctrl_cmd cmd,int on); struct rk29camera_gpio_res gpio_res[2]; struct rk29camera_mem_res meminfo; + struct rk29camera_info info[2]; }; struct rk29camera_platform_ioctl_cb { diff --git a/drivers/media/video/rk29_camera.c b/drivers/media/video/rk29_camera.c index 160dad9947b6..1c957a71687d 100755 --- a/drivers/media/video/rk29_camera.c +++ b/drivers/media/video/rk29_camera.c @@ -96,8 +96,7 @@ static struct rk29camera_platform_data rk29_camera_platform_data = { .gpio_powerdown = CONFIG_SENSOR_POWERDN_PIN_0, .gpio_flash = CONFIG_SENSOR_FALSH_PIN_0, .gpio_flag = (CONFIG_SENSOR_POWERACTIVE_LEVEL_0|CONFIG_SENSOR_RESETACTIVE_LEVEL_0|CONFIG_SENSOR_POWERDNACTIVE_LEVEL_0|CONFIG_SENSOR_FLASHACTIVE_LEVEL_0), - .gpio_init = 0, - .orientation = CONFIG_SENSOR_ORIENTATION_0, + .gpio_init = 0, .dev_name = SENSOR_DEVICE_NAME_0, }, { .gpio_reset = CONFIG_SENSOR_RESET_PIN_1, @@ -106,7 +105,6 @@ static struct rk29camera_platform_data rk29_camera_platform_data = { .gpio_flash = CONFIG_SENSOR_FALSH_PIN_1, .gpio_flag = (CONFIG_SENSOR_POWERACTIVE_LEVEL_1|CONFIG_SENSOR_RESETACTIVE_LEVEL_1|CONFIG_SENSOR_POWERDNACTIVE_LEVEL_1|CONFIG_SENSOR_FLASHACTIVE_LEVEL_1), .gpio_init = 0, - .orientation = CONFIG_SENSOR_ORIENTATION_1, .dev_name = SENSOR_DEVICE_NAME_1, } }, @@ -115,8 +113,17 @@ static struct rk29camera_platform_data rk29_camera_platform_data = { .name = "camera_ipp_mem", .start = MEM_CAMIPP_BASE, .size = MEM_CAMIPP_SIZE, - } + }, #endif + .info = { + { + .dev_name = SENSOR_DEVICE_NAME_0, + .orientation = CONFIG_SENSOR_ORIENTATION_0, + },{ + .dev_name = SENSOR_DEVICE_NAME_1, + .orientation = CONFIG_SENSOR_ORIENTATION_1, + } + } }; static int rk29_sensor_iomux(int pin) @@ -1216,7 +1223,7 @@ static int sensor_flash_default_cb (struct rk29camera_gpio_res *res, int on) static int rk29_sensor_io_init(void) { - int ret = 0, i; + int ret = 0, i,j; unsigned int camera_reset = INVALID_GPIO, camera_power = INVALID_GPIO; unsigned int camera_powerdown = INVALID_GPIO, camera_flash = INVALID_GPIO; unsigned int camera_ioflag; @@ -1322,7 +1329,149 @@ static int rk29_sensor_io_init(void) dprintk("%s....flash pin(%d) init success(0x%x) \n",__FUNCTION__,camera_flash,((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); + } + + + for (j=0; j<10; j++) { + memset(&rk29_camera_platform_data.info[i].fival[j],0x00,sizeof(struct v4l2_frmivalenum)); } + j=0; + if (strstr(rk29_camera_platform_data.info[i].dev_name,"_back")) { + + #if CONFIG_SENSOR_QCIF_FPS_FIXED_0 + rk29_camera_platform_data.info[i].fival[j].discrete.denominator = CONFIG_SENSOR_QCIF_FPS_FIXED_0; + rk29_camera_platform_data.info[i].fival[j].discrete.numerator= 1; + rk29_camera_platform_data.info[i].fival[j].index = 0; + rk29_camera_platform_data.info[i].fival[j].pixel_format = V4L2_PIX_FMT_NV12; + rk29_camera_platform_data.info[i].fival[j].width = 176; + rk29_camera_platform_data.info[i].fival[j].height = 144; + rk29_camera_platform_data.info[i].fival[j].type = V4L2_FRMIVAL_TYPE_DISCRETE; + j++; + #endif + + #if CONFIG_SENSOR_QVGA_FPS_FIXED_0 + rk29_camera_platform_data.info[i].fival[j].discrete.denominator = CONFIG_SENSOR_QVGA_FPS_FIXED_0; + rk29_camera_platform_data.info[i].fival[j].discrete.numerator= 1; + rk29_camera_platform_data.info[i].fival[j].index = 0; + rk29_camera_platform_data.info[i].fival[j].pixel_format = V4L2_PIX_FMT_NV12; + rk29_camera_platform_data.info[i].fival[j].width = 320; + rk29_camera_platform_data.info[i].fival[j].height = 240; + rk29_camera_platform_data.info[i].fival[j].type = V4L2_FRMIVAL_TYPE_DISCRETE; + j++; + #endif + + #if CONFIG_SENSOR_CIF_FPS_FIXED_0 + rk29_camera_platform_data.info[i].fival[j].discrete.denominator = CONFIG_SENSOR_CIF_FPS_FIXED_0; + rk29_camera_platform_data.info[i].fival[j].discrete.numerator= 1; + rk29_camera_platform_data.info[i].fival[j].index = 0; + rk29_camera_platform_data.info[i].fival[j].pixel_format = V4L2_PIX_FMT_NV12; + rk29_camera_platform_data.info[i].fival[j].width = 352; + rk29_camera_platform_data.info[i].fival[j].height = 288; + rk29_camera_platform_data.info[i].fival[j].type = V4L2_FRMIVAL_TYPE_DISCRETE; + j++; + #endif + + #if CONFIG_SENSOR_VGA_FPS_FIXED_0 + rk29_camera_platform_data.info[i].fival[j].discrete.denominator = CONFIG_SENSOR_VGA_FPS_FIXED_0; + rk29_camera_platform_data.info[i].fival[j].discrete.numerator= 1; + rk29_camera_platform_data.info[i].fival[j].index = 0; + rk29_camera_platform_data.info[i].fival[j].pixel_format = V4L2_PIX_FMT_NV12; + rk29_camera_platform_data.info[i].fival[j].width = 640; + rk29_camera_platform_data.info[i].fival[j].height = 480; + rk29_camera_platform_data.info[i].fival[j].type = V4L2_FRMIVAL_TYPE_DISCRETE; + j++; + #endif + + #if CONFIG_SENSOR_SVGA_FPS_FIXED_0 + rk29_camera_platform_data.info[i].fival[j].discrete.denominator = CONFIG_SENSOR_SVGA_FPS_FIXED_0; + rk29_camera_platform_data.info[i].fival[j].discrete.numerator= 1; + rk29_camera_platform_data.info[i].fival[j].index = 0; + rk29_camera_platform_data.info[i].fival[j].pixel_format = V4L2_PIX_FMT_NV12; + rk29_camera_platform_data.info[i].fival[j].width = 800; + rk29_camera_platform_data.info[i].fival[j].height = 600; + rk29_camera_platform_data.info[i].fival[j].type = V4L2_FRMIVAL_TYPE_DISCRETE; + j++; + #endif + + #if CONFIG_SENSOR_720P_FPS_FIXED_0 + rk29_camera_platform_data.info[i].fival[j].discrete.denominator = CONFIG_SENSOR_720P_FPS_FIXED_0; + rk29_camera_platform_data.info[i].fival[j].discrete.numerator= 1; + rk29_camera_platform_data.info[i].fival[j].index = 0; + rk29_camera_platform_data.info[i].fival[j].pixel_format = V4L2_PIX_FMT_NV12; + rk29_camera_platform_data.info[i].fival[j].width = 1280; + rk29_camera_platform_data.info[i].fival[j].height = 720; + rk29_camera_platform_data.info[i].fival[j].type = V4L2_FRMIVAL_TYPE_DISCRETE; + j++; + #endif + + } else { + #if CONFIG_SENSOR_QCIF_FPS_FIXED_1 + rk29_camera_platform_data.info[i].fival[j].discrete.denominator = CONFIG_SENSOR_QCIF_FPS_FIXED_1; + rk29_camera_platform_data.info[i].fival[j].discrete.numerator= 1; + rk29_camera_platform_data.info[i].fival[j].index = 0; + rk29_camera_platform_data.info[i].fival[j].pixel_format = V4L2_PIX_FMT_NV12; + rk29_camera_platform_data.info[i].fival[j].width = 176; + rk29_camera_platform_data.info[i].fival[j].height = 144; + rk29_camera_platform_data.info[i].fival[j].type = V4L2_FRMIVAL_TYPE_DISCRETE; + j++; + #endif + + #if CONFIG_SENSOR_QVGA_FPS_FIXED_1 + rk29_camera_platform_data.info[i].fival[j].discrete.denominator = CONFIG_SENSOR_QVGA_FPS_FIXED_1; + rk29_camera_platform_data.info[i].fival[j].discrete.numerator= 1; + rk29_camera_platform_data.info[i].fival[j].index = 0; + rk29_camera_platform_data.info[i].fival[j].pixel_format = V4L2_PIX_FMT_NV12; + rk29_camera_platform_data.info[i].fival[j].width = 320; + rk29_camera_platform_data.info[i].fival[j].height = 240; + rk29_camera_platform_data.info[i].fival[j].type = V4L2_FRMIVAL_TYPE_DISCRETE; + j++; + #endif + + #if CONFIG_SENSOR_CIF_FPS_FIXED_1 + rk29_camera_platform_data.info[i].fival[j].discrete.denominator = CONFIG_SENSOR_CIF_FPS_FIXED_1; + rk29_camera_platform_data.info[i].fival[j].discrete.numerator= 1; + rk29_camera_platform_data.info[i].fival[j].index = 0; + rk29_camera_platform_data.info[i].fival[j].pixel_format = V4L2_PIX_FMT_NV12; + rk29_camera_platform_data.info[i].fival[j].width = 352; + rk29_camera_platform_data.info[i].fival[j].height = 288; + rk29_camera_platform_data.info[i].fival[j].type = V4L2_FRMIVAL_TYPE_DISCRETE; + j++; + #endif + + #if CONFIG_SENSOR_VGA_FPS_FIXED_1 + rk29_camera_platform_data.info[i].fival[j].discrete.denominator = CONFIG_SENSOR_VGA_FPS_FIXED_1; + rk29_camera_platform_data.info[i].fival[j].discrete.numerator= 1; + rk29_camera_platform_data.info[i].fival[j].index = 0; + rk29_camera_platform_data.info[i].fival[j].pixel_format = V4L2_PIX_FMT_NV12; + rk29_camera_platform_data.info[i].fival[j].width = 640; + rk29_camera_platform_data.info[i].fival[j].height = 480; + rk29_camera_platform_data.info[i].fival[j].type = V4L2_FRMIVAL_TYPE_DISCRETE; + j++; + #endif + + #if CONFIG_SENSOR_SVGA_FPS_FIXED_1 + rk29_camera_platform_data.info[i].fival[j].discrete.denominator = CONFIG_SENSOR_SVGA_FPS_FIXED_1; + rk29_camera_platform_data.info[i].fival[j].discrete.numerator= 1; + rk29_camera_platform_data.info[i].fival[j].index = 0; + rk29_camera_platform_data.info[i].fival[j].pixel_format = V4L2_PIX_FMT_NV12; + rk29_camera_platform_data.info[i].fival[j].width = 800; + rk29_camera_platform_data.info[i].fival[j].height = 600; + rk29_camera_platform_data.info[i].fival[j].type = V4L2_FRMIVAL_TYPE_DISCRETE; + j++; + #endif + + #if CONFIG_SENSOR_720P_FPS_FIXED_1 + rk29_camera_platform_data.info[i].fival[j].discrete.denominator = CONFIG_SENSOR_720P_FPS_FIXED_1; + rk29_camera_platform_data.info[i].fival[j].discrete.numerator= 1; + rk29_camera_platform_data.info[i].fival[j].index = 0; + rk29_camera_platform_data.info[i].fival[j].pixel_format = V4L2_PIX_FMT_NV12; + rk29_camera_platform_data.info[i].fival[j].width = 1280; + rk29_camera_platform_data.info[i].fival[j].height = 720; + rk29_camera_platform_data.info[i].fival[j].type = V4L2_FRMIVAL_TYPE_DISCRETE; + j++; + #endif + } + continue; sensor_io_int_loop_end: rk29_sensor_io_deinit(i); diff --git a/drivers/media/video/rk29_camera_oneframe.c b/drivers/media/video/rk29_camera_oneframe.c index 14eddd0af8f7..cabaa4c3c0b3 100755 --- a/drivers/media/video/rk29_camera_oneframe.c +++ b/drivers/media/video/rk29_camera_oneframe.c @@ -137,13 +137,18 @@ module_param(debug, int, S_IRUGO|S_IWUSR); //Configure Macro /* * Driver Version Note -*v0.0.1 : this driver first support rk2918; -*v0.0.2 : fix this driver support v4l2 format is V4L2_PIX_FMT_NV12 and V4L2_PIX_FMT_NV16,is not V4L2_PIX_FMT_YUV420 +* +*v0.0.x : this driver is 2.6.32 kernel driver; +*v0.1.x : this driver is 3.0.8 kernel driver; +* +*v0.x.1 : this driver first support rk2918; +*v0.x.2 : fix this driver support v4l2 format is V4L2_PIX_FMT_NV12 and V4L2_PIX_FMT_NV16,is not V4L2_PIX_FMT_YUV420 * and V4L2_PIX_FMT_YUV422P; -*v0.0.3 : this driver support VIDIOC_ENUM_FRAMEINTERVALS; -*v0.0.4 : this driver support digital zoom; +*v0.x.3 : this driver support VIDIOC_ENUM_FRAMEINTERVALS; +*v0.x.4 : this driver support digital zoom; +*v0.x.5 : this driver support test framerate and query framerate from board file configuration; */ -#define RK29_CAM_VERSION_CODE KERNEL_VERSION(0, 1, 3) +#define RK29_CAM_VERSION_CODE KERNEL_VERSION(0, 1, 5) /* limit to rk29 hardware capabilities */ #define RK29_CAM_BUS_PARAM (SOCAM_MASTER |\ @@ -1532,10 +1537,10 @@ static int rk29_camera_querycap(struct soc_camera_host *ici, char orientation[5]; strlcpy(cap->card, dev_name(pcdev->icd->pdev), sizeof(cap->card)); - if (strcmp(dev_name(pcdev->icd->pdev), pcdev->pdata->gpio_res[0].dev_name) == 0) { - sprintf(orientation,"-%d",pcdev->pdata->gpio_res[0].orientation); + if (strcmp(dev_name(pcdev->icd->pdev), pcdev->pdata->info[0].dev_name) == 0) { + sprintf(orientation,"-%d",pcdev->pdata->info[0].orientation); } else { - sprintf(orientation,"-%d",pcdev->pdata->gpio_res[1].orientation); + sprintf(orientation,"-%d",pcdev->pdata->info[1].orientation); } strcat(cap->card,orientation); cap->version = RK29_CAM_VERSION_CODE; @@ -1749,35 +1754,80 @@ int rk29_camera_enum_frameintervals(struct soc_camera_device *icd, struct v4l2_f struct soc_camera_host *ici = to_soc_camera_host(icd->dev.parent); struct rk29_camera_dev *pcdev = ici->priv; struct rk29_camera_frmivalenum *fival_list = NULL; - int i,ret = 0; + struct v4l2_frmivalenum *fival_head; + int i,ret = 0,index; - for (i=0; i<2; i++) { - if (pcdev->icd_frmival[i].icd == icd) { - fival_list = pcdev->icd_frmival[i].fival_list; + index = fival->index & 0x00ffffff; + if ((fival->index & 0xff000000) == 0xff000000) { /* ddl@rock-chips.com: detect framerate */ + for (i=0; i<2; i++) { + if (pcdev->icd_frmival[i].icd == icd) { + fival_list = pcdev->icd_frmival[i].fival_list; + } + } + + if (fival_list != NULL) { + i = 0; + while (fival_list != NULL) { + if ((fival->pixel_format == fival_list->fival.pixel_format) + && (fival->height == fival_list->fival.height) + && (fival->width == fival_list->fival.width)) { + if (i == index) + break; + i++; + } + fival_list = fival_list->nxt; + } + + if ((i==index) && (fival_list != NULL)) { + memcpy(fival, &fival_list->fival, sizeof(struct v4l2_frmivalenum)); + } else { + ret = -EINVAL; + } + } else { + RK29CAMERA_TR("%s: fival_list is NULL\n",__FUNCTION__); + ret = -EINVAL; + } + } else { + if (strcmp(dev_name(pcdev->icd->pdev),pcdev->pdata->info[0].dev_name) == 0) { + fival_head = pcdev->pdata->info[0].fival; + } else { + fival_head = pcdev->pdata->info[1].fival; } - } - - if (fival_list != NULL) { i = 0; - while (fival_list != NULL) { - if ((fival->pixel_format == fival_list->fival.pixel_format) - && (fival->height == fival_list->fival.height) - && (fival->width == fival_list->fival.width)) { - if (i == fival->index) + while (fival_head->width && fival_head->height) { + if ((fival->pixel_format == fival_head->pixel_format) + && (fival->height == fival_head->height) + && (fival->width == fival_head->width)) { + if (i == index) { break; + } i++; - } - fival_list = fival_list->nxt; + } + fival_head++; } - - if ((i==fival->index) && (fival_list != NULL)) { - memcpy(fival, &fival_list->fival, sizeof(struct v4l2_frmivalenum)); + + if ((i == index) && (fival->height == fival_head->height) && (fival->width == fival_head->width)) { + memcpy(fival, fival_head, sizeof(struct v4l2_frmivalenum)); + RK29CAMERA_DG("%s %dx%d@%c%c%c%c framerate : %d/%d\n", dev_name(&rk29_camdev_info_ptr->icd->dev), + fival->width, fival->height, + fival->pixel_format & 0xFF, (fival->pixel_format >> 8) & 0xFF, + (fival->pixel_format >> 16) & 0xFF, (fival->pixel_format >> 24), + fival->discrete.denominator,fival->discrete.numerator); } else { + if (index == 0) + RK29CAMERA_TR("%s have not catch %d%d@%c%c%c%c index(%d) framerate\n",dev_name(&rk29_camdev_info_ptr->icd->dev), + fival->width,fival->height, + fival->pixel_format & 0xFF, (fival->pixel_format >> 8) & 0xFF, + (fival->pixel_format >> 16) & 0xFF, (fival->pixel_format >> 24), + index); + else + RK29CAMERA_DG("%s have not catch %d%d@%c%c%c%c index(%d) framerate\n",dev_name(&rk29_camdev_info_ptr->icd->dev), + fival->width,fival->height, + fival->pixel_format & 0xFF, (fival->pixel_format >> 8) & 0xFF, + (fival->pixel_format >> 16) & 0xFF, (fival->pixel_format >> 24), + index); ret = -EINVAL; } - } else { - RK29CAMERA_TR("%s: fival_list is NULL\n",__FUNCTION__); - ret = -EINVAL; } return ret; -- 2.34.1