Do some atomisp cleanups
Subsystems (4)
cover Do some atomisp cleanups
When I started building media subsystem with the atomisp driver, I ended by adding several hacks on their Makefiles, in order to get rid of thousands of warnings. I felt a little guty of hiding how broken is this driver, so I decided t remove two Makefile hacks that affect sensors and fix the warnings.
Yet, there's still one such hack at drivers/staging/media/atomisp/pci/atomisp2/Makefile, with:
# HACK! While this driver is in bad shape, don't enable several warnings
# that would be otherwise enabled with W=1
ccflags-y += $(call cc-disable-warning, implicit-fallthrough) ccflags-y += $(call cc-disable-warning, missing-prototypes) ccflags-y += $(call cc-disable-warning, missing-declarations) ccflags-y += $(call cc-disable-warning, suggest-attribute=format) ccflags-y += $(call cc-disable-warning, unused-const-variable) ccflags-y += $(call cc-disable-warning, unused-but-set-variable)
Getting his of those is a big task, as there are thousands of warnings hidden there. In order to seriously get rid of them, one should start getting rid of the several abstraction layers at the driver and have hardware for test.
As I don't have any hardware to test, nor any reason why dedicating myself to such task, I'll just leave this task for others to do.
Mauro Carvalho Chehab (9):
media: staging: atomisp: get rid of __KERNEL macros
media: staging: atomisp: reenable warnings for I2C
media: atomisp: ov2680.h: fix identation
media: staging: atomisp-gc2235: don't fill an unused var
media: staging: atomisp: Comment out several unused sensor resolutions
media: atomisp: ov2680: don't declare unused vars
media: atomisp-gc0310: return errors at gc0310_init()
media: atomisp-mt9m114: remove dead data
media: atomisp-mt9m114: comment out unused stuff
drivers/staging/media/atomisp/i2c/Makefile | 7 - drivers/staging/media/atomisp/i2c/atomisp-gc0310.c | 2 +- drivers/staging/media/atomisp/i2c/atomisp-gc2235.c | 6 +- .../staging/media/atomisp/i2c/atomisp-mt9m114.c | 11 +- drivers/staging/media/atomisp/i2c/atomisp-ov2680.c | 6 +- drivers/staging/media/atomisp/i2c/gc2235.h | 9 +- drivers/staging/media/atomisp/i2c/mt9m114.h | 13 +- drivers/staging/media/atomisp/i2c/ov2680.h | 900 +++++++++++---------- drivers/staging/media/atomisp/i2c/ov2722.h | 6 + drivers/staging/media/atomisp/i2c/ov5693/Makefile | 7 - drivers/staging/media/atomisp/i2c/ov5693/ov5693.h | 18 +- .../css_2401_csi2p_system/host/system_local.h | 15 - .../hive_isp_css_common/host/system_local.h | 15 - .../css2400/hive_isp_css_include/math_support.h | 5 - .../css2400/hive_isp_css_include/print_support.h | 3 - .../media/atomisp/pci/atomisp2/css2400/sh_css_sp.c | 4 - 16 files changed, 503 insertions(+), 524 deletions(-)
Signature · 1 line
2.14.3
PATCH 1/9 media: staging: atomisp: get rid of __KERNEL macros
There's no sense for a Kernel driver to have __KERNEL macros on it.
--- .../css2400/css_2401_csi2p_system/host/system_local.h | 15 --------------- .../css2400/hive_isp_css_common/host/system_local.h | 15 --------------- .../atomisp2/css2400/hive_isp_css_include/math_support.h | 5 ----- .../atomisp2/css2400/hive_isp_css_include/print_support.h | 3 --- .../media/atomisp/pci/atomisp2/css2400/sh_css_sp.c | 4 ---- 5 files changed, 42 deletions(-)
drivers/staging/media/atomisp/pci/atomisp2/css2400/css_2401_csi2p_system/host/system_local.h +0 -15
@@ -31,23 +31,8 @@#define HRT_ADDRESS_WIDTH 64/* Surprise, this is a local property */ #endif -#if !defined(__KERNEL__) || (1 ==1 )/* This interface is deprecated */ #include "hrt/hive_types.h" -#else /* __KERNEL__ */ -#include <type_support.h> - -#if HRT_ADDRESS_WIDTH ==64 -typedef uint64_t hrt_address ; -#elif HRT_ADDRESS_WIDTH ==32 -typedef uint32_t hrt_address ; -#else -#error "system_local.h: HRT_ADDRESS_WIDTH must be one of {32,64}" -#endif - -typedef uint32_t hrt_vaddress ; -typedef uint32_t hrt_data ; -#endif /* __KERNEL__ */ /* * Cell specific address maps
drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_common/host/system_local.h +0 -15
@@ -33,23 +33,8 @@#define HRT_ADDRESS_WIDTH 64/* Surprise, this is a local property */ #endif -#if !defined(__KERNEL__) || (1 ==1 )/* This interface is deprecated */ #include "hrt/hive_types.h" -#else /* __KERNEL__ */ -#include <linux/types.h> - -#if HRT_ADDRESS_WIDTH ==64 -typedef uint64_t hrt_address ; -#elif HRT_ADDRESS_WIDTH ==32 -typedef uint32_t hrt_address ; -#else -#error "system_local.h: HRT_ADDRESS_WIDTH must be one of {32,64}" -#endif - -typedef uint32_t hrt_vaddress ; -typedef uint32_t hrt_data ; -#endif /* __KERNEL__ */ /* * Cell specific address maps
drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_include/math_support.h +0 -5
@@ -15,9 +15,7 @@#ifndef __MATH_SUPPORT_H#define __MATH_SUPPORT_H -#if defined(__KERNEL__)#include <linux/kernel.h> /* Override the definition of max/min from linux kernel*/ -#endif /*__KERNEL__*/ #if defined(_MSC_VER)#include <stdlib.h> /* Override the definition of max/min from stdlib.h*/
@@ -216,8 +214,5 @@ static inline unsigned int ceil_pow2(unsigned int a)#define OP_std_modadd (base, offset, size) ((base+offset)%(size))#endif /* !defined(__ISP) */ -#if !defined(__KERNEL__) -#define clamp (a, min_val, max_val) MIN(MAX((a), (min_val)), (max_val)) -#endif /* !defined(__KERNEL__) */ #endif /* __MATH_SUPPORT_H */
drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_include/print_support.h +0 -3
@@ -17,9 +17,6 @@#include <stdarg.h> -#if !defined(__KERNEL__) -#include <stdio.h> -#endif extern int (*sh_css_printf) (const char *fmt,va_list args);/* depends on host supplied print function in ia_css_init() */
drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_sp.c +0 -4
@@ -1592,10 +1592,6 @@ ia_css_pipe_set_irq_mask(struct ia_css_pipe *pipe,* - compare with (uint16_t)~0 or 0xffff * - different assert for Linux and Windows */ -#ifndef __KERNEL__ -assert (or_mask <=UINT16_MAX ); -assert (and_mask <=UINT16_MAX ); -#endif (void )HIVE_ADDR_host_sp_com;/* Suppres warnings in CRUN */
Signature · 1 line
2.14.3
PATCH 2/9 media: staging: atomisp: reenable warnings for I2C
In reply to Mauro Carvalho ChehabWhen atomisp got merged, there were so many warnings with W=1 that we simply disabled the ones that were causing troubles.
Since then, several changes got applied to atomisp, and the number of warnings are a way smaller than it used to be.
So, let's reenable warnings there and fix the issues.
--- drivers/staging/media/atomisp/i2c/Makefile | 7 ------- drivers/staging/media/atomisp/i2c/ov5693/Makefile | 7 ------- 2 files changed, 14 deletions(-)
drivers/staging/media/atomisp/i2c/Makefile +0 -7
@@ -16,10 +16,3 @@ obj-$(CONFIG_VIDEO_ATOMISP_MSRLIST_HELPER) += atomisp-libmsrlisthelper.o # obj-$(CONFIG_VIDEO_ATOMISP_LM3554) += atomisp-lm3554.o - -# HACK! While this driver is in bad shape, don't enable several warnings -# that would be otherwise enabled with W=1 -ccflags-y += $(call cc-disable-warning, unused-but-set-variable) -ccflags-y += $(call cc-disable-warning, unused-const-variable) -ccflags-y += $(call cc-disable-warning, missing-prototypes) -ccflags-y += $(call cc-disable-warning, missing-declarations)
drivers/staging/media/atomisp/i2c/ov5693/Makefile +0 -7
@@ -1,9 +1,2 @@ # SPDX-License-Identifier: GPL-2.0 obj-$(CONFIG_VIDEO_ATOMISP_OV5693) += atomisp-ov5693.o - -# HACK! While this driver is in bad shape, don't enable several warnings -# that would be otherwise enabled with W=1 -ccflags-y += $(call cc-disable-warning, unused-but-set-variable) -ccflags-y += $(call cc-disable-warning, unused-const-variable) -ccflags-y += $(call cc-disable-warning, missing-prototypes) -ccflags-y += $(call cc-disable-warning, missing-declarations)
Signature · 1 line
2.14.3
PATCH 3/9 media: atomisp: ov2680.h: fix identation
In reply to Mauro Carvalho ChehabThe identation for several tables there are broken.
--- drivers/staging/media/atomisp/i2c/ov2680.h | 895 ++++++++++++++--------------- 1 file changed, 447 insertions(+), 448 deletions(-)
drivers/staging/media/atomisp/i2c/ov2680.h +447 -448
@@ -299,131 +299,131 @@ struct ov2680_format {* 176x144 30fps VBlanking 1lane 10Bit (binning) */ static struct ov2680_reg const ov2680_QCIF_30fps[] = { - {OV2680_8BIT ,0x3086 ,0x01 }, - {OV2680_8BIT ,0x3501 ,0x24 }, - {OV2680_8BIT ,0x3502 ,0x40 }, - {OV2680_8BIT ,0x370a ,0x23 }, - {OV2680_8BIT ,0x3801 ,0xa0 }, - {OV2680_8BIT ,0x3802 ,0x00 }, - {OV2680_8BIT ,0x3803 ,0x78 }, - {OV2680_8BIT ,0x3804 ,0x05 }, - {OV2680_8BIT ,0x3805 ,0xaf }, - {OV2680_8BIT ,0x3806 ,0x04 }, - {OV2680_8BIT ,0x3807 ,0x47 }, - {OV2680_8BIT ,0x3808 ,0x00 }, - {OV2680_8BIT ,0x3809 ,0xC0 }, - {OV2680_8BIT ,0x380a ,0x00 }, - {OV2680_8BIT ,0x380b ,0xa0 }, - {OV2680_8BIT ,0x380c ,0x06 }, - {OV2680_8BIT ,0x380d ,0xb0 }, - {OV2680_8BIT ,0x380e ,0x02 }, - {OV2680_8BIT ,0x380f ,0x84 }, - {OV2680_8BIT ,0x3810 ,0x00 }, - {OV2680_8BIT ,0x3811 ,0x04 }, - {OV2680_8BIT ,0x3812 ,0x00 }, - {OV2680_8BIT ,0x3813 ,0x04 }, - {OV2680_8BIT ,0x3814 ,0x31 }, - {OV2680_8BIT ,0x3815 ,0x31 }, - {OV2680_8BIT ,0x4000 ,0x81 }, - {OV2680_8BIT ,0x4001 ,0x40 }, - {OV2680_8BIT ,0x4008 ,0x00 }, - {OV2680_8BIT ,0x4009 ,0x03 }, - {OV2680_8BIT ,0x5081 ,0x41 }, - {OV2680_8BIT ,0x5708 ,0x00 },//add for full size flip off and mirror off 2014/09/11 - {OV2680_8BIT ,0x5704 ,0x10 }, - {OV2680_8BIT ,0x5705 ,0xa0 }, - {OV2680_8BIT ,0x5706 ,0x0c }, - {OV2680_8BIT ,0x5707 ,0x78 }, - {OV2680_8BIT ,0x3820 ,0xc2 }, - {OV2680_8BIT ,0x3821 ,0x01 }, -// {OV2680_8BIT, 0x5090, 0x0c}, - {OV2680_TOK_TERM ,0 ,0 } + {OV2680_8BIT ,0x3086 ,0x01 }, + {OV2680_8BIT ,0x3501 ,0x24 }, + {OV2680_8BIT ,0x3502 ,0x40 }, + {OV2680_8BIT ,0x370a ,0x23 }, + {OV2680_8BIT ,0x3801 ,0xa0 }, + {OV2680_8BIT ,0x3802 ,0x00 }, + {OV2680_8BIT ,0x3803 ,0x78 }, + {OV2680_8BIT ,0x3804 ,0x05 }, + {OV2680_8BIT ,0x3805 ,0xaf }, + {OV2680_8BIT ,0x3806 ,0x04 }, + {OV2680_8BIT ,0x3807 ,0x47 }, + {OV2680_8BIT ,0x3808 ,0x00 }, + {OV2680_8BIT ,0x3809 ,0xC0 }, + {OV2680_8BIT ,0x380a ,0x00 }, + {OV2680_8BIT ,0x380b ,0xa0 }, + {OV2680_8BIT ,0x380c ,0x06 }, + {OV2680_8BIT ,0x380d ,0xb0 }, + {OV2680_8BIT ,0x380e ,0x02 }, + {OV2680_8BIT ,0x380f ,0x84 }, + {OV2680_8BIT ,0x3810 ,0x00 }, + {OV2680_8BIT ,0x3811 ,0x04 }, + {OV2680_8BIT ,0x3812 ,0x00 }, + {OV2680_8BIT ,0x3813 ,0x04 }, + {OV2680_8BIT ,0x3814 ,0x31 }, + {OV2680_8BIT ,0x3815 ,0x31 }, + {OV2680_8BIT ,0x4000 ,0x81 }, + {OV2680_8BIT ,0x4001 ,0x40 }, + {OV2680_8BIT ,0x4008 ,0x00 }, + {OV2680_8BIT ,0x4009 ,0x03 }, + {OV2680_8BIT ,0x5081 ,0x41 }, + {OV2680_8BIT ,0x5708 ,0x00 },//add for full size flip off and mirror off 2014/09/11 + {OV2680_8BIT ,0x5704 ,0x10 }, + {OV2680_8BIT ,0x5705 ,0xa0 }, + {OV2680_8BIT ,0x5706 ,0x0c }, + {OV2680_8BIT ,0x5707 ,0x78 }, + {OV2680_8BIT ,0x3820 ,0xc2 }, + {OV2680_8BIT ,0x3821 ,0x01 }, +// {OV2680_8BIT, 0x5090, 0x0c}, + {OV2680_TOK_TERM ,0 ,0 } };/* * 352x288 30fps VBlanking 1lane 10Bit (binning) */ static struct ov2680_reg const ov2680_CIF_30fps[] = { - {OV2680_8BIT ,0x3086 ,0x01 }, - {OV2680_8BIT ,0x3501 ,0x24 }, - {OV2680_8BIT ,0x3502 ,0x40 }, - {OV2680_8BIT ,0x370a ,0x23 }, - {OV2680_8BIT ,0x3801 ,0xa0 }, - {OV2680_8BIT ,0x3802 ,0x00 }, - {OV2680_8BIT ,0x3803 ,0x78 }, - {OV2680_8BIT ,0x3804 ,0x03 }, - {OV2680_8BIT ,0x3805 ,0x8f }, - {OV2680_8BIT ,0x3806 ,0x02 }, - {OV2680_8BIT ,0x3807 ,0xe7 }, - {OV2680_8BIT ,0x3808 ,0x01 }, - {OV2680_8BIT ,0x3809 ,0x70 }, - {OV2680_8BIT ,0x380a ,0x01 }, - {OV2680_8BIT ,0x380b ,0x30 }, - {OV2680_8BIT ,0x380c ,0x06 }, - {OV2680_8BIT ,0x380d ,0xb0 }, - {OV2680_8BIT ,0x380e ,0x02 }, - {OV2680_8BIT ,0x380f ,0x84 }, - {OV2680_8BIT ,0x3810 ,0x00 }, - {OV2680_8BIT ,0x3811 ,0x04 }, - {OV2680_8BIT ,0x3812 ,0x00 }, - {OV2680_8BIT ,0x3813 ,0x04 }, - {OV2680_8BIT ,0x3814 ,0x31 }, - {OV2680_8BIT ,0x3815 ,0x31 }, - {OV2680_8BIT ,0x4008 ,0x00 }, - {OV2680_8BIT ,0x4009 ,0x03 }, - {OV2680_8BIT ,0x5081 ,0x41 }, - {OV2680_8BIT ,0x5708 ,0x00 },//add for full size flip off and mirror off 2014/09/11 - {OV2680_8BIT ,0x5704 ,0x10 }, - {OV2680_8BIT ,0x5705 ,0xa0 }, - {OV2680_8BIT ,0x5706 ,0x0c }, - {OV2680_8BIT ,0x5707 ,0x78 }, - {OV2680_8BIT ,0x3820 ,0xc2 }, - {OV2680_8BIT ,0x3821 ,0x01 }, -// {OV2680_8BIT, 0x5090, 0x0c}, - {OV2680_TOK_TERM ,0 ,0 } + {OV2680_8BIT ,0x3086 ,0x01 }, + {OV2680_8BIT ,0x3501 ,0x24 }, + {OV2680_8BIT ,0x3502 ,0x40 }, + {OV2680_8BIT ,0x370a ,0x23 }, + {OV2680_8BIT ,0x3801 ,0xa0 }, + {OV2680_8BIT ,0x3802 ,0x00 }, + {OV2680_8BIT ,0x3803 ,0x78 }, + {OV2680_8BIT ,0x3804 ,0x03 }, + {OV2680_8BIT ,0x3805 ,0x8f }, + {OV2680_8BIT ,0x3806 ,0x02 }, + {OV2680_8BIT ,0x3807 ,0xe7 }, + {OV2680_8BIT ,0x3808 ,0x01 }, + {OV2680_8BIT ,0x3809 ,0x70 }, + {OV2680_8BIT ,0x380a ,0x01 }, + {OV2680_8BIT ,0x380b ,0x30 }, + {OV2680_8BIT ,0x380c ,0x06 }, + {OV2680_8BIT ,0x380d ,0xb0 }, + {OV2680_8BIT ,0x380e ,0x02 }, + {OV2680_8BIT ,0x380f ,0x84 }, + {OV2680_8BIT ,0x3810 ,0x00 }, + {OV2680_8BIT ,0x3811 ,0x04 }, + {OV2680_8BIT ,0x3812 ,0x00 }, + {OV2680_8BIT ,0x3813 ,0x04 }, + {OV2680_8BIT ,0x3814 ,0x31 }, + {OV2680_8BIT ,0x3815 ,0x31 }, + {OV2680_8BIT ,0x4008 ,0x00 }, + {OV2680_8BIT ,0x4009 ,0x03 }, + {OV2680_8BIT ,0x5081 ,0x41 }, + {OV2680_8BIT ,0x5708 ,0x00 },//add for full size flip off and mirror off 2014/09/11 + {OV2680_8BIT ,0x5704 ,0x10 }, + {OV2680_8BIT ,0x5705 ,0xa0 }, + {OV2680_8BIT ,0x5706 ,0x0c }, + {OV2680_8BIT ,0x5707 ,0x78 }, + {OV2680_8BIT ,0x3820 ,0xc2 }, + {OV2680_8BIT ,0x3821 ,0x01 }, +// {OV2680_8BIT, 0x5090, 0x0c}, + {OV2680_TOK_TERM ,0 ,0 } };/* * 336x256 30fps VBlanking 1lane 10Bit (binning) */ static struct ov2680_reg const ov2680_QVGA_30fps[] = { - {OV2680_8BIT ,0x3086 ,0x01 }, - {OV2680_8BIT ,0x3501 ,0x24 }, - {OV2680_8BIT ,0x3502 ,0x40 }, - {OV2680_8BIT ,0x370a ,0x23 }, - {OV2680_8BIT ,0x3801 ,0xa0 }, - {OV2680_8BIT ,0x3802 ,0x00 }, - {OV2680_8BIT ,0x3803 ,0x78 }, - {OV2680_8BIT ,0x3804 ,0x03 }, - {OV2680_8BIT ,0x3805 ,0x4f }, - {OV2680_8BIT ,0x3806 ,0x02 }, - {OV2680_8BIT ,0x3807 ,0x87 }, - {OV2680_8BIT ,0x3808 ,0x01 }, - {OV2680_8BIT ,0x3809 ,0x50 }, - {OV2680_8BIT ,0x380a ,0x01 }, - {OV2680_8BIT ,0x380b ,0x00 }, - {OV2680_8BIT ,0x380c ,0x06 }, - {OV2680_8BIT ,0x380d ,0xb0 }, - {OV2680_8BIT ,0x380e ,0x02 }, - {OV2680_8BIT ,0x380f ,0x84 }, - {OV2680_8BIT ,0x3810 ,0x00 }, - {OV2680_8BIT ,0x3811 ,0x04 }, - {OV2680_8BIT ,0x3812 ,0x00 }, - {OV2680_8BIT ,0x3813 ,0x04 }, - {OV2680_8BIT ,0x3814 ,0x31 }, - {OV2680_8BIT ,0x3815 ,0x31 }, - {OV2680_8BIT ,0x4008 ,0x00 }, - {OV2680_8BIT ,0x4009 ,0x03 }, - {OV2680_8BIT ,0x5081 ,0x41 }, - {OV2680_8BIT ,0x5708 ,0x00 },//add for full size flip off and mirror off 2014/09/11 - {OV2680_8BIT ,0x5704 ,0x10 }, - {OV2680_8BIT ,0x5705 ,0xa0 }, - {OV2680_8BIT ,0x5706 ,0x0c }, - {OV2680_8BIT ,0x5707 ,0x78 }, - {OV2680_8BIT ,0x3820 ,0xc2 }, - {OV2680_8BIT ,0x3821 ,0x01 }, -// {OV2680_8BIT, 0x5090, 0x0c}, - {OV2680_TOK_TERM ,0 ,0 } + {OV2680_8BIT ,0x3086 ,0x01 }, + {OV2680_8BIT ,0x3501 ,0x24 }, + {OV2680_8BIT ,0x3502 ,0x40 }, + {OV2680_8BIT ,0x370a ,0x23 }, + {OV2680_8BIT ,0x3801 ,0xa0 }, + {OV2680_8BIT ,0x3802 ,0x00 }, + {OV2680_8BIT ,0x3803 ,0x78 }, + {OV2680_8BIT ,0x3804 ,0x03 }, + {OV2680_8BIT ,0x3805 ,0x4f }, + {OV2680_8BIT ,0x3806 ,0x02 }, + {OV2680_8BIT ,0x3807 ,0x87 }, + {OV2680_8BIT ,0x3808 ,0x01 }, + {OV2680_8BIT ,0x3809 ,0x50 }, + {OV2680_8BIT ,0x380a ,0x01 }, + {OV2680_8BIT ,0x380b ,0x00 }, + {OV2680_8BIT ,0x380c ,0x06 }, + {OV2680_8BIT ,0x380d ,0xb0 }, + {OV2680_8BIT ,0x380e ,0x02 }, + {OV2680_8BIT ,0x380f ,0x84 }, + {OV2680_8BIT ,0x3810 ,0x00 }, + {OV2680_8BIT ,0x3811 ,0x04 }, + {OV2680_8BIT ,0x3812 ,0x00 }, + {OV2680_8BIT ,0x3813 ,0x04 }, + {OV2680_8BIT ,0x3814 ,0x31 }, + {OV2680_8BIT ,0x3815 ,0x31 }, + {OV2680_8BIT ,0x4008 ,0x00 }, + {OV2680_8BIT ,0x4009 ,0x03 }, + {OV2680_8BIT ,0x5081 ,0x41 }, + {OV2680_8BIT ,0x5708 ,0x00 },//add for full size flip off and mirror off 2014/09/11 + {OV2680_8BIT ,0x5704 ,0x10 }, + {OV2680_8BIT ,0x5705 ,0xa0 }, + {OV2680_8BIT ,0x5706 ,0x0c }, + {OV2680_8BIT ,0x5707 ,0x78 }, + {OV2680_8BIT ,0x3820 ,0xc2 }, + {OV2680_8BIT ,0x3821 ,0x01 }, +// {OV2680_8BIT, 0x5090, 0x0c}, + {OV2680_TOK_TERM ,0 ,0 } };
@@ -431,259 +431,259 @@ struct ov2680_format {* 656x496 30fps VBlanking 1lane 10Bit (binning) */ static struct ov2680_reg const ov2680_656x496_30fps[] = { - {OV2680_8BIT ,0x3086 ,0x01 }, - {OV2680_8BIT ,0x3501 ,0x24 }, - {OV2680_8BIT ,0x3502 ,0x40 }, - {OV2680_8BIT ,0x370a ,0x23 }, - {OV2680_8BIT ,0x3801 ,0xa0 }, - {OV2680_8BIT ,0x3802 ,0x00 }, - {OV2680_8BIT ,0x3803 ,0x78 }, - {OV2680_8BIT ,0x3804 ,0x05 }, - {OV2680_8BIT ,0x3805 ,0xcf }, - {OV2680_8BIT ,0x3806 ,0x04 }, - {OV2680_8BIT ,0x3807 ,0x67 }, - {OV2680_8BIT ,0x3808 ,0x02 }, - {OV2680_8BIT ,0x3809 ,0x90 }, - {OV2680_8BIT ,0x380a ,0x01 }, - {OV2680_8BIT ,0x380b ,0xf0 }, - {OV2680_8BIT ,0x380c ,0x06 }, - {OV2680_8BIT ,0x380d ,0xb0 }, - {OV2680_8BIT ,0x380e ,0x02 }, - {OV2680_8BIT ,0x380f ,0x84 }, - {OV2680_8BIT ,0x3810 ,0x00 }, - {OV2680_8BIT ,0x3811 ,0x04 }, - {OV2680_8BIT ,0x3812 ,0x00 }, - {OV2680_8BIT ,0x3813 ,0x04 }, - {OV2680_8BIT ,0x3814 ,0x31 }, - {OV2680_8BIT ,0x3815 ,0x31 }, - {OV2680_8BIT ,0x4008 ,0x00 }, - {OV2680_8BIT ,0x4009 ,0x03 }, - {OV2680_8BIT ,0x5081 ,0x41 }, - {OV2680_8BIT ,0x5708 ,0x00 },//add for full size flip off and mirror off 2014/09/11 - {OV2680_8BIT ,0x5704 ,0x10 }, - {OV2680_8BIT ,0x5705 ,0xa0 }, - {OV2680_8BIT ,0x5706 ,0x0c }, - {OV2680_8BIT ,0x5707 ,0x78 }, - {OV2680_8BIT ,0x3820 ,0xc2 }, - {OV2680_8BIT ,0x3821 ,0x01 }, -// {OV2680_8BIT, 0x5090, 0x0c}, - {OV2680_TOK_TERM ,0 ,0 } + {OV2680_8BIT ,0x3086 ,0x01 }, + {OV2680_8BIT ,0x3501 ,0x24 }, + {OV2680_8BIT ,0x3502 ,0x40 }, + {OV2680_8BIT ,0x370a ,0x23 }, + {OV2680_8BIT ,0x3801 ,0xa0 }, + {OV2680_8BIT ,0x3802 ,0x00 }, + {OV2680_8BIT ,0x3803 ,0x78 }, + {OV2680_8BIT ,0x3804 ,0x05 }, + {OV2680_8BIT ,0x3805 ,0xcf }, + {OV2680_8BIT ,0x3806 ,0x04 }, + {OV2680_8BIT ,0x3807 ,0x67 }, + {OV2680_8BIT ,0x3808 ,0x02 }, + {OV2680_8BIT ,0x3809 ,0x90 }, + {OV2680_8BIT ,0x380a ,0x01 }, + {OV2680_8BIT ,0x380b ,0xf0 }, + {OV2680_8BIT ,0x380c ,0x06 }, + {OV2680_8BIT ,0x380d ,0xb0 }, + {OV2680_8BIT ,0x380e ,0x02 }, + {OV2680_8BIT ,0x380f ,0x84 }, + {OV2680_8BIT ,0x3810 ,0x00 }, + {OV2680_8BIT ,0x3811 ,0x04 }, + {OV2680_8BIT ,0x3812 ,0x00 }, + {OV2680_8BIT ,0x3813 ,0x04 }, + {OV2680_8BIT ,0x3814 ,0x31 }, + {OV2680_8BIT ,0x3815 ,0x31 }, + {OV2680_8BIT ,0x4008 ,0x00 }, + {OV2680_8BIT ,0x4009 ,0x03 }, + {OV2680_8BIT ,0x5081 ,0x41 }, + {OV2680_8BIT ,0x5708 ,0x00 },//add for full size flip off and mirror off 2014/09/11 + {OV2680_8BIT ,0x5704 ,0x10 }, + {OV2680_8BIT ,0x5705 ,0xa0 }, + {OV2680_8BIT ,0x5706 ,0x0c }, + {OV2680_8BIT ,0x5707 ,0x78 }, + {OV2680_8BIT ,0x3820 ,0xc2 }, + {OV2680_8BIT ,0x3821 ,0x01 }, +// {OV2680_8BIT, 0x5090, 0x0c}, + {OV2680_TOK_TERM ,0 ,0 } };/* * 800x600 30fps VBlanking 1lane 10Bit (binning) */ static struct ov2680_reg const ov2680_720x592_30fps[] = { - {OV2680_8BIT ,0x3086 ,0x01 }, - {OV2680_8BIT ,0x3501 ,0x26 }, - {OV2680_8BIT ,0x3502 ,0x40 }, - {OV2680_8BIT ,0x370a ,0x23 }, - {OV2680_8BIT ,0x3801 ,0x00 },// X_ADDR_START; - {OV2680_8BIT ,0x3802 ,0x00 }, - {OV2680_8BIT ,0x3803 ,0x00 },// Y_ADDR_START; - {OV2680_8BIT ,0x3804 ,0x05 }, - {OV2680_8BIT ,0x3805 ,0xaf },// X_ADDR_END; - {OV2680_8BIT ,0x3806 ,0x04 }, - {OV2680_8BIT ,0x3807 ,0xaf },// Y_ADDR_END; - {OV2680_8BIT ,0x3808 ,0x02 }, - {OV2680_8BIT ,0x3809 ,0xd0 },// X_OUTPUT_SIZE; - {OV2680_8BIT ,0x380a ,0x02 }, - {OV2680_8BIT ,0x380b ,0x50 },// Y_OUTPUT_SIZE; - {OV2680_8BIT ,0x380c ,0x06 }, - {OV2680_8BIT ,0x380d ,0xac },// HTS; - {OV2680_8BIT ,0x380e ,0x02 }, - {OV2680_8BIT ,0x380f ,0x84 },// VTS; - {OV2680_8BIT ,0x3810 ,0x00 }, - {OV2680_8BIT ,0x3811 ,0x00 }, - {OV2680_8BIT ,0x3812 ,0x00 }, - {OV2680_8BIT ,0x3813 ,0x00 }, - {OV2680_8BIT ,0x3814 ,0x31 }, - {OV2680_8BIT ,0x3815 ,0x31 }, - {OV2680_8BIT ,0x4008 ,0x00 }, - {OV2680_8BIT ,0x4009 ,0x03 }, - {OV2680_8BIT ,0x5708 ,0x00 }, - {OV2680_8BIT ,0x5704 ,0x02 }, - {OV2680_8BIT ,0x5705 ,0xd0 },// X_WIN; - {OV2680_8BIT ,0x5706 ,0x02 }, - {OV2680_8BIT ,0x5707 ,0x50 },// Y_WIN; - {OV2680_8BIT ,0x3820 ,0xc2 },// FLIP_FORMAT; - {OV2680_8BIT ,0x3821 ,0x01 },// MIRROR_FORMAT; - {OV2680_8BIT ,0x5090 ,0x00 },// PRE ISP CTRL16, default value is 0x0C; -// BIT[3]: Mirror order, BG or GB; -// BIT[2]: Flip order, BR or RB; - {OV2680_8BIT ,0x5081 ,0x41 }, - {OV2680_TOK_TERM ,0 ,0 } + {OV2680_8BIT ,0x3086 ,0x01 }, + {OV2680_8BIT ,0x3501 ,0x26 }, + {OV2680_8BIT ,0x3502 ,0x40 }, + {OV2680_8BIT ,0x370a ,0x23 }, + {OV2680_8BIT ,0x3801 ,0x00 },// X_ADDR_START; + {OV2680_8BIT ,0x3802 ,0x00 }, + {OV2680_8BIT ,0x3803 ,0x00 },// Y_ADDR_START; + {OV2680_8BIT ,0x3804 ,0x05 }, + {OV2680_8BIT ,0x3805 ,0xaf },// X_ADDR_END; + {OV2680_8BIT ,0x3806 ,0x04 }, + {OV2680_8BIT ,0x3807 ,0xaf },// Y_ADDR_END; + {OV2680_8BIT ,0x3808 ,0x02 }, + {OV2680_8BIT ,0x3809 ,0xd0 },// X_OUTPUT_SIZE; + {OV2680_8BIT ,0x380a ,0x02 }, + {OV2680_8BIT ,0x380b ,0x50 },// Y_OUTPUT_SIZE; + {OV2680_8BIT ,0x380c ,0x06 }, + {OV2680_8BIT ,0x380d ,0xac },// HTS; + {OV2680_8BIT ,0x380e ,0x02 }, + {OV2680_8BIT ,0x380f ,0x84 },// VTS; + {OV2680_8BIT ,0x3810 ,0x00 }, + {OV2680_8BIT ,0x3811 ,0x00 }, + {OV2680_8BIT ,0x3812 ,0x00 }, + {OV2680_8BIT ,0x3813 ,0x00 }, + {OV2680_8BIT ,0x3814 ,0x31 }, + {OV2680_8BIT ,0x3815 ,0x31 }, + {OV2680_8BIT ,0x4008 ,0x00 }, + {OV2680_8BIT ,0x4009 ,0x03 }, + {OV2680_8BIT ,0x5708 ,0x00 }, + {OV2680_8BIT ,0x5704 ,0x02 }, + {OV2680_8BIT ,0x5705 ,0xd0 },// X_WIN; + {OV2680_8BIT ,0x5706 ,0x02 }, + {OV2680_8BIT ,0x5707 ,0x50 },// Y_WIN; + {OV2680_8BIT ,0x3820 ,0xc2 },// FLIP_FORMAT; + {OV2680_8BIT ,0x3821 ,0x01 },// MIRROR_FORMAT; + {OV2680_8BIT ,0x5090 ,0x00 },// PRE ISP CTRL16, default value is 0x0C; +// BIT[3]: Mirror order, BG or GB; +// BIT[2]: Flip order, BR or RB; + {OV2680_8BIT ,0x5081 ,0x41 }, + {OV2680_TOK_TERM ,0 ,0 } };/* * 800x600 30fps VBlanking 1lane 10Bit (binning) */ static struct ov2680_reg const ov2680_800x600_30fps[] = { - {OV2680_8BIT ,0x3086 ,0x01 }, - {OV2680_8BIT ,0x3501 ,0x26 }, - {OV2680_8BIT ,0x3502 ,0x40 }, - {OV2680_8BIT ,0x370a ,0x23 }, - {OV2680_8BIT ,0x3801 ,0x00 }, - {OV2680_8BIT ,0x3802 ,0x00 }, - {OV2680_8BIT ,0x3803 ,0x00 }, - {OV2680_8BIT ,0x3804 ,0x06 }, - {OV2680_8BIT ,0x3805 ,0x4f }, - {OV2680_8BIT ,0x3806 ,0x04 }, - {OV2680_8BIT ,0x3807 ,0xbf }, - {OV2680_8BIT ,0x3808 ,0x03 }, - {OV2680_8BIT ,0x3809 ,0x20 }, - {OV2680_8BIT ,0x380a ,0x02 }, - {OV2680_8BIT ,0x380b ,0x58 }, - {OV2680_8BIT ,0x380c ,0x06 }, - {OV2680_8BIT ,0x380d ,0xac }, - {OV2680_8BIT ,0x380e ,0x02 }, - {OV2680_8BIT ,0x380f ,0x84 }, - {OV2680_8BIT ,0x3810 ,0x00 }, - {OV2680_8BIT ,0x3811 ,0x00 }, - {OV2680_8BIT ,0x3812 ,0x00 }, - {OV2680_8BIT ,0x3813 ,0x00 }, - {OV2680_8BIT ,0x3814 ,0x31 }, - {OV2680_8BIT ,0x3815 ,0x31 }, - {OV2680_8BIT ,0x5708 ,0x00 }, - {OV2680_8BIT ,0x5704 ,0x03 }, - {OV2680_8BIT ,0x5705 ,0x20 }, - {OV2680_8BIT ,0x5706 ,0x02 }, - {OV2680_8BIT ,0x5707 ,0x58 }, - {OV2680_8BIT ,0x3820 ,0xc2 }, - {OV2680_8BIT ,0x3821 ,0x01 }, - {OV2680_8BIT ,0x5090 ,0x00 }, - {OV2680_8BIT ,0x4008 ,0x00 }, - {OV2680_8BIT ,0x4009 ,0x03 }, - {OV2680_8BIT ,0x5081 ,0x41 }, - {OV2680_TOK_TERM ,0 ,0 } + {OV2680_8BIT ,0x3086 ,0x01 }, + {OV2680_8BIT ,0x3501 ,0x26 }, + {OV2680_8BIT ,0x3502 ,0x40 }, + {OV2680_8BIT ,0x370a ,0x23 }, + {OV2680_8BIT ,0x3801 ,0x00 }, + {OV2680_8BIT ,0x3802 ,0x00 }, + {OV2680_8BIT ,0x3803 ,0x00 }, + {OV2680_8BIT ,0x3804 ,0x06 }, + {OV2680_8BIT ,0x3805 ,0x4f }, + {OV2680_8BIT ,0x3806 ,0x04 }, + {OV2680_8BIT ,0x3807 ,0xbf }, + {OV2680_8BIT ,0x3808 ,0x03 }, + {OV2680_8BIT ,0x3809 ,0x20 }, + {OV2680_8BIT ,0x380a ,0x02 }, + {OV2680_8BIT ,0x380b ,0x58 }, + {OV2680_8BIT ,0x380c ,0x06 }, + {OV2680_8BIT ,0x380d ,0xac }, + {OV2680_8BIT ,0x380e ,0x02 }, + {OV2680_8BIT ,0x380f ,0x84 }, + {OV2680_8BIT ,0x3810 ,0x00 }, + {OV2680_8BIT ,0x3811 ,0x00 }, + {OV2680_8BIT ,0x3812 ,0x00 }, + {OV2680_8BIT ,0x3813 ,0x00 }, + {OV2680_8BIT ,0x3814 ,0x31 }, + {OV2680_8BIT ,0x3815 ,0x31 }, + {OV2680_8BIT ,0x5708 ,0x00 }, + {OV2680_8BIT ,0x5704 ,0x03 }, + {OV2680_8BIT ,0x5705 ,0x20 }, + {OV2680_8BIT ,0x5706 ,0x02 }, + {OV2680_8BIT ,0x5707 ,0x58 }, + {OV2680_8BIT ,0x3820 ,0xc2 }, + {OV2680_8BIT ,0x3821 ,0x01 }, + {OV2680_8BIT ,0x5090 ,0x00 }, + {OV2680_8BIT ,0x4008 ,0x00 }, + {OV2680_8BIT ,0x4009 ,0x03 }, + {OV2680_8BIT ,0x5081 ,0x41 }, + {OV2680_TOK_TERM ,0 ,0 } };/* * 720p=1280*720 30fps VBlanking 1lane 10Bit (no-Scaling) */ static struct ov2680_reg const ov2680_720p_30fps[] = { - {OV2680_8BIT ,0x3086 ,0x00 }, - {OV2680_8BIT ,0x3501 ,0x48 }, - {OV2680_8BIT ,0x3502 ,0xe0 }, - {OV2680_8BIT ,0x370a ,0x21 }, - {OV2680_8BIT ,0x3801 ,0xa0 }, - {OV2680_8BIT ,0x3802 ,0x00 }, - {OV2680_8BIT ,0x3803 ,0xf2 }, - {OV2680_8BIT ,0x3804 ,0x05 }, - {OV2680_8BIT ,0x3805 ,0xbf }, - {OV2680_8BIT ,0x3806 ,0x03 }, - {OV2680_8BIT ,0x3807 ,0xdd }, - {OV2680_8BIT ,0x3808 ,0x05 }, - {OV2680_8BIT ,0x3809 ,0x10 }, - {OV2680_8BIT ,0x380a ,0x02 }, - {OV2680_8BIT ,0x380b ,0xe0 }, - {OV2680_8BIT ,0x380c ,0x06 }, - {OV2680_8BIT ,0x380d ,0xa8 }, - {OV2680_8BIT ,0x380e ,0x05 }, - {OV2680_8BIT ,0x380f ,0x0e }, - {OV2680_8BIT ,0x3810 ,0x00 }, - {OV2680_8BIT ,0x3811 ,0x08 }, - {OV2680_8BIT ,0x3812 ,0x00 }, - {OV2680_8BIT ,0x3813 ,0x06 }, - {OV2680_8BIT ,0x3814 ,0x11 }, - {OV2680_8BIT ,0x3815 ,0x11 }, - {OV2680_8BIT ,0x4008 ,0x02 }, - {OV2680_8BIT ,0x4009 ,0x09 }, - {OV2680_8BIT ,0x5081 ,0x41 }, - {OV2680_8BIT ,0x5708 ,0x00 },//add for full size flip off and mirror off 2014/09/11 - {OV2680_8BIT ,0x5704 ,0x10 }, - {OV2680_8BIT ,0x5705 ,0xa0 }, - {OV2680_8BIT ,0x5706 ,0x0c }, - {OV2680_8BIT ,0x5707 ,0x78 }, - {OV2680_8BIT ,0x3820 ,0xc0 }, - {OV2680_8BIT ,0x3821 ,0x00 }, -// {OV2680_8BIT, 0x5090, 0x0c}, - {OV2680_TOK_TERM ,0 ,0 } + {OV2680_8BIT ,0x3086 ,0x00 }, + {OV2680_8BIT ,0x3501 ,0x48 }, + {OV2680_8BIT ,0x3502 ,0xe0 }, + {OV2680_8BIT ,0x370a ,0x21 }, + {OV2680_8BIT ,0x3801 ,0xa0 }, + {OV2680_8BIT ,0x3802 ,0x00 }, + {OV2680_8BIT ,0x3803 ,0xf2 }, + {OV2680_8BIT ,0x3804 ,0x05 }, + {OV2680_8BIT ,0x3805 ,0xbf }, + {OV2680_8BIT ,0x3806 ,0x03 }, + {OV2680_8BIT ,0x3807 ,0xdd }, + {OV2680_8BIT ,0x3808 ,0x05 }, + {OV2680_8BIT ,0x3809 ,0x10 }, + {OV2680_8BIT ,0x380a ,0x02 }, + {OV2680_8BIT ,0x380b ,0xe0 }, + {OV2680_8BIT ,0x380c ,0x06 }, + {OV2680_8BIT ,0x380d ,0xa8 }, + {OV2680_8BIT ,0x380e ,0x05 }, + {OV2680_8BIT ,0x380f ,0x0e }, + {OV2680_8BIT ,0x3810 ,0x00 }, + {OV2680_8BIT ,0x3811 ,0x08 }, + {OV2680_8BIT ,0x3812 ,0x00 }, + {OV2680_8BIT ,0x3813 ,0x06 }, + {OV2680_8BIT ,0x3814 ,0x11 }, + {OV2680_8BIT ,0x3815 ,0x11 }, + {OV2680_8BIT ,0x4008 ,0x02 }, + {OV2680_8BIT ,0x4009 ,0x09 }, + {OV2680_8BIT ,0x5081 ,0x41 }, + {OV2680_8BIT ,0x5708 ,0x00 },//add for full size flip off and mirror off 2014/09/11 + {OV2680_8BIT ,0x5704 ,0x10 }, + {OV2680_8BIT ,0x5705 ,0xa0 }, + {OV2680_8BIT ,0x5706 ,0x0c }, + {OV2680_8BIT ,0x5707 ,0x78 }, + {OV2680_8BIT ,0x3820 ,0xc0 }, + {OV2680_8BIT ,0x3821 ,0x00 }, +// {OV2680_8BIT, 0x5090, 0x0c}, + {OV2680_TOK_TERM ,0 ,0 } };/* * 1296x976 30fps VBlanking 1lane 10Bit(no-scaling) */ static struct ov2680_reg const ov2680_1296x976_30fps[] = { - {OV2680_8BIT ,0x3086 ,0x00 }, - {OV2680_8BIT ,0x3501 ,0x48 }, - {OV2680_8BIT ,0x3502 ,0xe0 }, - {OV2680_8BIT ,0x370a ,0x21 }, - {OV2680_8BIT ,0x3801 ,0xa0 }, - {OV2680_8BIT ,0x3802 ,0x00 }, - {OV2680_8BIT ,0x3803 ,0x78 }, - {OV2680_8BIT ,0x3804 ,0x05 }, - {OV2680_8BIT ,0x3805 ,0xbf }, - {OV2680_8BIT ,0x3806 ,0x04 }, - {OV2680_8BIT ,0x3807 ,0x57 }, - {OV2680_8BIT ,0x3808 ,0x05 }, - {OV2680_8BIT ,0x3809 ,0x10 }, - {OV2680_8BIT ,0x380a ,0x03 }, - {OV2680_8BIT ,0x380b ,0xd0 }, - {OV2680_8BIT ,0x380c ,0x06 }, - {OV2680_8BIT ,0x380d ,0xa8 }, - {OV2680_8BIT ,0x380e ,0x05 }, - {OV2680_8BIT ,0x380f ,0x0e }, - {OV2680_8BIT ,0x3810 ,0x00 }, - {OV2680_8BIT ,0x3811 ,0x08 }, - {OV2680_8BIT ,0x3812 ,0x00 }, - {OV2680_8BIT ,0x3813 ,0x08 }, - {OV2680_8BIT ,0x3814 ,0x11 }, - {OV2680_8BIT ,0x3815 ,0x11 }, - {OV2680_8BIT ,0x4008 ,0x02 }, - {OV2680_8BIT ,0x4009 ,0x09 }, - {OV2680_8BIT ,0x5081 ,0x41 }, - {OV2680_8BIT ,0x5708 ,0x00 },//add for full size flip off and mirror off 2014/09/11 - {OV2680_8BIT ,0x5704 ,0x10 }, - {OV2680_8BIT ,0x5705 ,0xa0 }, - {OV2680_8BIT ,0x5706 ,0x0c }, - {OV2680_8BIT ,0x5707 ,0x78 }, - {OV2680_8BIT ,0x3820 ,0xc0 }, - {OV2680_8BIT ,0x3821 ,0x00 },//miror/flip -// {OV2680_8BIT, 0x5090, 0x0c}, - {OV2680_TOK_TERM ,0 ,0 } + {OV2680_8BIT ,0x3086 ,0x00 }, + {OV2680_8BIT ,0x3501 ,0x48 }, + {OV2680_8BIT ,0x3502 ,0xe0 }, + {OV2680_8BIT ,0x370a ,0x21 }, + {OV2680_8BIT ,0x3801 ,0xa0 }, + {OV2680_8BIT ,0x3802 ,0x00 }, + {OV2680_8BIT ,0x3803 ,0x78 }, + {OV2680_8BIT ,0x3804 ,0x05 }, + {OV2680_8BIT ,0x3805 ,0xbf }, + {OV2680_8BIT ,0x3806 ,0x04 }, + {OV2680_8BIT ,0x3807 ,0x57 }, + {OV2680_8BIT ,0x3808 ,0x05 }, + {OV2680_8BIT ,0x3809 ,0x10 }, + {OV2680_8BIT ,0x380a ,0x03 }, + {OV2680_8BIT ,0x380b ,0xd0 }, + {OV2680_8BIT ,0x380c ,0x06 }, + {OV2680_8BIT ,0x380d ,0xa8 }, + {OV2680_8BIT ,0x380e ,0x05 }, + {OV2680_8BIT ,0x380f ,0x0e }, + {OV2680_8BIT ,0x3810 ,0x00 }, + {OV2680_8BIT ,0x3811 ,0x08 }, + {OV2680_8BIT ,0x3812 ,0x00 }, + {OV2680_8BIT ,0x3813 ,0x08 }, + {OV2680_8BIT ,0x3814 ,0x11 }, + {OV2680_8BIT ,0x3815 ,0x11 }, + {OV2680_8BIT ,0x4008 ,0x02 }, + {OV2680_8BIT ,0x4009 ,0x09 }, + {OV2680_8BIT ,0x5081 ,0x41 }, + {OV2680_8BIT ,0x5708 ,0x00 },//add for full size flip off and mirror off 2014/09/11 + {OV2680_8BIT ,0x5704 ,0x10 }, + {OV2680_8BIT ,0x5705 ,0xa0 }, + {OV2680_8BIT ,0x5706 ,0x0c }, + {OV2680_8BIT ,0x5707 ,0x78 }, + {OV2680_8BIT ,0x3820 ,0xc0 }, + {OV2680_8BIT ,0x3821 ,0x00 },//miror/flip +// {OV2680_8BIT, 0x5090, 0x0c}, + {OV2680_TOK_TERM ,0 ,0 } };/* * 1456*1096 30fps VBlanking 1lane 10bit(no-scaling) */ static struct ov2680_reg const ov2680_1456x1096_30fps[]= { - {OV2680_8BIT ,0x3086 ,0x00 }, - {OV2680_8BIT ,0x3501 ,0x48 }, - {OV2680_8BIT ,0x3502 ,0xe0 }, - {OV2680_8BIT ,0x370a ,0x21 }, - {OV2680_8BIT ,0x3801 ,0x90 }, - {OV2680_8BIT ,0x3802 ,0x00 }, - {OV2680_8BIT ,0x3803 ,0x78 }, - {OV2680_8BIT ,0x3804 ,0x06 }, - {OV2680_8BIT ,0x3805 ,0x4f }, - {OV2680_8BIT ,0x3806 ,0x04 }, - {OV2680_8BIT ,0x3807 ,0xC0 }, - {OV2680_8BIT ,0x3808 ,0x05 }, - {OV2680_8BIT ,0x3809 ,0xb0 }, - {OV2680_8BIT ,0x380a ,0x04 }, - {OV2680_8BIT ,0x380b ,0x48 }, - {OV2680_8BIT ,0x380c ,0x06 }, - {OV2680_8BIT ,0x380d ,0xa8 }, - {OV2680_8BIT ,0x380e ,0x05 }, - {OV2680_8BIT ,0x380f ,0x0e }, - {OV2680_8BIT ,0x3810 ,0x00 }, - {OV2680_8BIT ,0x3811 ,0x08 }, - {OV2680_8BIT ,0x3812 ,0x00 }, - {OV2680_8BIT ,0x3813 ,0x00 }, - {OV2680_8BIT ,0x3814 ,0x11 }, - {OV2680_8BIT ,0x3815 ,0x11 }, - {OV2680_8BIT ,0x4008 ,0x02 }, - {OV2680_8BIT ,0x4009 ,0x09 }, - {OV2680_8BIT ,0x5081 ,0x41 }, - {OV2680_8BIT ,0x5708 ,0x00 },//add for full size flip off and mirror off 2014/09/11 - {OV2680_8BIT ,0x5704 ,0x10 }, - {OV2680_8BIT ,0x5705 ,0xa0 }, - {OV2680_8BIT ,0x5706 ,0x0c }, - {OV2680_8BIT ,0x5707 ,0x78 }, - {OV2680_8BIT ,0x3820 ,0xc0 }, - {OV2680_8BIT ,0x3821 ,0x00 }, -// {OV2680_8BIT, 0x5090, 0x0c}, - {OV2680_TOK_TERM ,0 ,0 } + {OV2680_8BIT ,0x3086 ,0x00 }, + {OV2680_8BIT ,0x3501 ,0x48 }, + {OV2680_8BIT ,0x3502 ,0xe0 }, + {OV2680_8BIT ,0x370a ,0x21 }, + {OV2680_8BIT ,0x3801 ,0x90 }, + {OV2680_8BIT ,0x3802 ,0x00 }, + {OV2680_8BIT ,0x3803 ,0x78 }, + {OV2680_8BIT ,0x3804 ,0x06 }, + {OV2680_8BIT ,0x3805 ,0x4f }, + {OV2680_8BIT ,0x3806 ,0x04 }, + {OV2680_8BIT ,0x3807 ,0xC0 }, + {OV2680_8BIT ,0x3808 ,0x05 }, + {OV2680_8BIT ,0x3809 ,0xb0 }, + {OV2680_8BIT ,0x380a ,0x04 }, + {OV2680_8BIT ,0x380b ,0x48 }, + {OV2680_8BIT ,0x380c ,0x06 }, + {OV2680_8BIT ,0x380d ,0xa8 }, + {OV2680_8BIT ,0x380e ,0x05 }, + {OV2680_8BIT ,0x380f ,0x0e }, + {OV2680_8BIT ,0x3810 ,0x00 }, + {OV2680_8BIT ,0x3811 ,0x08 }, + {OV2680_8BIT ,0x3812 ,0x00 }, + {OV2680_8BIT ,0x3813 ,0x00 }, + {OV2680_8BIT ,0x3814 ,0x11 }, + {OV2680_8BIT ,0x3815 ,0x11 }, + {OV2680_8BIT ,0x4008 ,0x02 }, + {OV2680_8BIT ,0x4009 ,0x09 }, + {OV2680_8BIT ,0x5081 ,0x41 }, + {OV2680_8BIT ,0x5708 ,0x00 },//add for full size flip off and mirror off 2014/09/11 + {OV2680_8BIT ,0x5704 ,0x10 }, + {OV2680_8BIT ,0x5705 ,0xa0 }, + {OV2680_8BIT ,0x5706 ,0x0c }, + {OV2680_8BIT ,0x5707 ,0x78 }, + {OV2680_8BIT ,0x3820 ,0xc0 }, + {OV2680_8BIT ,0x3821 ,0x00 }, +// {OV2680_8BIT, 0x5090, 0x0c}, + {OV2680_TOK_TERM ,0 ,0 } };/*
@@ -691,129 +691,128 @@ struct ov2680_format {*/ static struct ov2680_reg const ov2680_1616x916_30fps[] = { - - {OV2680_8BIT ,0x3086 ,0x00 }, - {OV2680_8BIT ,0x3501 ,0x48 }, - {OV2680_8BIT ,0x3502 ,0xe0 }, - {OV2680_8BIT ,0x370a ,0x21 }, - {OV2680_8BIT ,0x3801 ,0x00 }, - {OV2680_8BIT ,0x3802 ,0x00 }, - {OV2680_8BIT ,0x3803 ,0x96 }, - {OV2680_8BIT ,0x3804 ,0x06 }, - {OV2680_8BIT ,0x3805 ,0x4f }, - {OV2680_8BIT ,0x3806 ,0x04 }, - {OV2680_8BIT ,0x3807 ,0x39 }, - {OV2680_8BIT ,0x3808 ,0x06 }, - {OV2680_8BIT ,0x3809 ,0x50 }, - {OV2680_8BIT ,0x380a ,0x03 }, - {OV2680_8BIT ,0x380b ,0x94 }, - {OV2680_8BIT ,0x380c ,0x06 }, - {OV2680_8BIT ,0x380d ,0xa8 }, - {OV2680_8BIT ,0x380e ,0x05 }, - {OV2680_8BIT ,0x380f ,0x0e }, - {OV2680_8BIT ,0x3810 ,0x00 }, - {OV2680_8BIT ,0x3811 ,0x00 }, - {OV2680_8BIT ,0x3812 ,0x00 }, - {OV2680_8BIT ,0x3813 ,0x08 }, - {OV2680_8BIT ,0x3814 ,0x11 }, - {OV2680_8BIT ,0x3815 ,0x11 }, - {OV2680_8BIT ,0x4008 ,0x02 }, - {OV2680_8BIT ,0x4009 ,0x09 }, - {OV2680_8BIT ,0x5081 ,0x41 }, - {OV2680_8BIT ,0x5708 ,0x01 },//add for full size flip off and mirror off 2014/09/11 - {OV2680_8BIT ,0x5704 ,0x06 }, - {OV2680_8BIT ,0x5705 ,0x50 }, - {OV2680_8BIT ,0x5706 ,0x03 }, - {OV2680_8BIT ,0x5707 ,0x94 }, - {OV2680_8BIT ,0x3820 ,0xc0 }, - {OV2680_8BIT ,0x3821 ,0x00 }, -// {OV2680_8BIT, 0x5090, 0x0C}, - {OV2680_TOK_TERM ,0 ,0 } + {OV2680_8BIT ,0x3086 ,0x00 }, + {OV2680_8BIT ,0x3501 ,0x48 }, + {OV2680_8BIT ,0x3502 ,0xe0 }, + {OV2680_8BIT ,0x370a ,0x21 }, + {OV2680_8BIT ,0x3801 ,0x00 }, + {OV2680_8BIT ,0x3802 ,0x00 }, + {OV2680_8BIT ,0x3803 ,0x96 }, + {OV2680_8BIT ,0x3804 ,0x06 }, + {OV2680_8BIT ,0x3805 ,0x4f }, + {OV2680_8BIT ,0x3806 ,0x04 }, + {OV2680_8BIT ,0x3807 ,0x39 }, + {OV2680_8BIT ,0x3808 ,0x06 }, + {OV2680_8BIT ,0x3809 ,0x50 }, + {OV2680_8BIT ,0x380a ,0x03 }, + {OV2680_8BIT ,0x380b ,0x94 }, + {OV2680_8BIT ,0x380c ,0x06 }, + {OV2680_8BIT ,0x380d ,0xa8 }, + {OV2680_8BIT ,0x380e ,0x05 }, + {OV2680_8BIT ,0x380f ,0x0e }, + {OV2680_8BIT ,0x3810 ,0x00 }, + {OV2680_8BIT ,0x3811 ,0x00 }, + {OV2680_8BIT ,0x3812 ,0x00 }, + {OV2680_8BIT ,0x3813 ,0x08 }, + {OV2680_8BIT ,0x3814 ,0x11 }, + {OV2680_8BIT ,0x3815 ,0x11 }, + {OV2680_8BIT ,0x4008 ,0x02 }, + {OV2680_8BIT ,0x4009 ,0x09 }, + {OV2680_8BIT ,0x5081 ,0x41 }, + {OV2680_8BIT ,0x5708 ,0x01 },//add for full size flip off and mirror off 2014/09/11 + {OV2680_8BIT ,0x5704 ,0x06 }, + {OV2680_8BIT ,0x5705 ,0x50 }, + {OV2680_8BIT ,0x5706 ,0x03 }, + {OV2680_8BIT ,0x5707 ,0x94 }, + {OV2680_8BIT ,0x3820 ,0xc0 }, + {OV2680_8BIT ,0x3821 ,0x00 }, +// {OV2680_8BIT, 0x5090, 0x0C}, + {OV2680_TOK_TERM ,0 ,0 } };/* * 1612x1212 30fps VBlanking 1lane 10Bit */ static struct ov2680_reg const ov2680_1616x1082_30fps[] = { - {OV2680_8BIT ,0x3086 ,0x00 }, - {OV2680_8BIT ,0x3501 ,0x48 }, - {OV2680_8BIT ,0x3502 ,0xe0 }, - {OV2680_8BIT ,0x370a ,0x21 }, - {OV2680_8BIT ,0x3801 ,0x00 }, - {OV2680_8BIT ,0x3802 ,0x00 }, - {OV2680_8BIT ,0x3803 ,0x86 }, - {OV2680_8BIT ,0x3804 ,0x06 }, - {OV2680_8BIT ,0x3805 ,0x4f }, - {OV2680_8BIT ,0x3806 ,0x04 }, - {OV2680_8BIT ,0x3807 ,0xbf }, - {OV2680_8BIT ,0x3808 ,0x06 }, - {OV2680_8BIT ,0x3809 ,0x50 }, - {OV2680_8BIT ,0x380a ,0x04 }, - {OV2680_8BIT ,0x380b ,0x3a }, - {OV2680_8BIT ,0x380c ,0x06 }, - {OV2680_8BIT ,0x380d ,0xa8 }, - {OV2680_8BIT ,0x380e ,0x05 }, - {OV2680_8BIT ,0x380f ,0x0e }, - {OV2680_8BIT ,0x3810 ,0x00 }, - {OV2680_8BIT ,0x3811 ,0x00 }, - {OV2680_8BIT ,0x3812 ,0x00 }, - {OV2680_8BIT ,0x3813 ,0x00 }, - {OV2680_8BIT ,0x3814 ,0x11 }, - {OV2680_8BIT ,0x3815 ,0x11 }, - {OV2680_8BIT ,0x5708 ,0x01 },//add for full size flip off and mirror off 2014/09/11 - {OV2680_8BIT ,0x5704 ,0x06 }, - {OV2680_8BIT ,0x5705 ,0x50 }, - {OV2680_8BIT ,0x5706 ,0x04 }, - {OV2680_8BIT ,0x5707 ,0x3a }, - {OV2680_8BIT ,0x3820 ,0xc0 }, - {OV2680_8BIT ,0x3821 ,0x00 }, -// {OV2680_8BIT, 0x5090, 0x0C}, - {OV2680_8BIT ,0x4008 ,0x02 }, - {OV2680_8BIT ,0x4009 ,0x09 }, - {OV2680_8BIT ,0x5081 ,0x41 }, + {OV2680_8BIT ,0x3086 ,0x00 }, + {OV2680_8BIT ,0x3501 ,0x48 }, + {OV2680_8BIT ,0x3502 ,0xe0 }, + {OV2680_8BIT ,0x370a ,0x21 }, + {OV2680_8BIT ,0x3801 ,0x00 }, + {OV2680_8BIT ,0x3802 ,0x00 }, + {OV2680_8BIT ,0x3803 ,0x86 }, + {OV2680_8BIT ,0x3804 ,0x06 }, + {OV2680_8BIT ,0x3805 ,0x4f }, + {OV2680_8BIT ,0x3806 ,0x04 }, + {OV2680_8BIT ,0x3807 ,0xbf }, + {OV2680_8BIT ,0x3808 ,0x06 }, + {OV2680_8BIT ,0x3809 ,0x50 }, + {OV2680_8BIT ,0x380a ,0x04 }, + {OV2680_8BIT ,0x380b ,0x3a }, + {OV2680_8BIT ,0x380c ,0x06 }, + {OV2680_8BIT ,0x380d ,0xa8 }, + {OV2680_8BIT ,0x380e ,0x05 }, + {OV2680_8BIT ,0x380f ,0x0e }, + {OV2680_8BIT ,0x3810 ,0x00 }, + {OV2680_8BIT ,0x3811 ,0x00 }, + {OV2680_8BIT ,0x3812 ,0x00 }, + {OV2680_8BIT ,0x3813 ,0x00 }, + {OV2680_8BIT ,0x3814 ,0x11 }, + {OV2680_8BIT ,0x3815 ,0x11 }, + {OV2680_8BIT ,0x5708 ,0x01 },//add for full size flip off and mirror off 2014/09/11 + {OV2680_8BIT ,0x5704 ,0x06 }, + {OV2680_8BIT ,0x5705 ,0x50 }, + {OV2680_8BIT ,0x5706 ,0x04 }, + {OV2680_8BIT ,0x5707 ,0x3a }, + {OV2680_8BIT ,0x3820 ,0xc0 }, + {OV2680_8BIT ,0x3821 ,0x00 }, +// {OV2680_8BIT, 0x5090, 0x0C}, + {OV2680_8BIT ,0x4008 ,0x02 }, + {OV2680_8BIT ,0x4009 ,0x09 }, + {OV2680_8BIT ,0x5081 ,0x41 }, {OV2680_TOK_TERM ,0 ,0 } };/* * 1616x1216 30fps VBlanking 1lane 10Bit */ static struct ov2680_reg const ov2680_1616x1216_30fps[] = { - {OV2680_8BIT ,0x3086 ,0x00 }, - {OV2680_8BIT ,0x3501 ,0x48 }, - {OV2680_8BIT ,0x3502 ,0xe0 }, - {OV2680_8BIT ,0x370a ,0x21 }, - {OV2680_8BIT ,0x3801 ,0x00 }, - {OV2680_8BIT ,0x3802 ,0x00 }, - {OV2680_8BIT ,0x3803 ,0x00 }, - {OV2680_8BIT ,0x3804 ,0x06 }, - {OV2680_8BIT ,0x3805 ,0x4f }, - {OV2680_8BIT ,0x3806 ,0x04 }, - {OV2680_8BIT ,0x3807 ,0xbf }, - {OV2680_8BIT ,0x3808 ,0x06 }, - {OV2680_8BIT ,0x3809 ,0x50 },//50},//4line for mirror and flip - {OV2680_8BIT ,0x380a ,0x04 }, - {OV2680_8BIT ,0x380b ,0xc0 },//c0}, - {OV2680_8BIT ,0x380c ,0x06 }, - {OV2680_8BIT ,0x380d ,0xa8 }, - {OV2680_8BIT ,0x380e ,0x05 }, - {OV2680_8BIT ,0x380f ,0x0e }, - {OV2680_8BIT ,0x3810 ,0x00 }, - {OV2680_8BIT ,0x3811 ,0x00 }, - {OV2680_8BIT ,0x3812 ,0x00 }, - {OV2680_8BIT ,0x3813 ,0x00 }, - {OV2680_8BIT ,0x3814 ,0x11 }, - {OV2680_8BIT ,0x3815 ,0x11 }, - {OV2680_8BIT ,0x4008 ,0x00 }, - {OV2680_8BIT ,0x4009 ,0x0b }, - {OV2680_8BIT ,0x5081 ,0x01 }, - {OV2680_8BIT ,0x5708 ,0x01 },//add for full size flip off and mirror off 2014/09/11 - {OV2680_8BIT ,0x5704 ,0x06 }, - {OV2680_8BIT ,0x5705 ,0x50 }, - {OV2680_8BIT ,0x5706 ,0x04 }, - {OV2680_8BIT ,0x5707 ,0xcc }, - {OV2680_8BIT ,0x3820 ,0xc0 }, - {OV2680_8BIT ,0x3821 ,0x00 }, -// {OV2680_8BIT, 0x5090, 0x0C}, - {OV2680_TOK_TERM ,0 ,0 } + {OV2680_8BIT ,0x3086 ,0x00 }, + {OV2680_8BIT ,0x3501 ,0x48 }, + {OV2680_8BIT ,0x3502 ,0xe0 }, + {OV2680_8BIT ,0x370a ,0x21 }, + {OV2680_8BIT ,0x3801 ,0x00 }, + {OV2680_8BIT ,0x3802 ,0x00 }, + {OV2680_8BIT ,0x3803 ,0x00 }, + {OV2680_8BIT ,0x3804 ,0x06 }, + {OV2680_8BIT ,0x3805 ,0x4f }, + {OV2680_8BIT ,0x3806 ,0x04 }, + {OV2680_8BIT ,0x3807 ,0xbf }, + {OV2680_8BIT ,0x3808 ,0x06 }, + {OV2680_8BIT ,0x3809 ,0x50 },//50},//4line for mirror and flip + {OV2680_8BIT ,0x380a ,0x04 }, + {OV2680_8BIT ,0x380b ,0xc0 },//c0}, + {OV2680_8BIT ,0x380c ,0x06 }, + {OV2680_8BIT ,0x380d ,0xa8 }, + {OV2680_8BIT ,0x380e ,0x05 }, + {OV2680_8BIT ,0x380f ,0x0e }, + {OV2680_8BIT ,0x3810 ,0x00 }, + {OV2680_8BIT ,0x3811 ,0x00 }, + {OV2680_8BIT ,0x3812 ,0x00 }, + {OV2680_8BIT ,0x3813 ,0x00 }, + {OV2680_8BIT ,0x3814 ,0x11 }, + {OV2680_8BIT ,0x3815 ,0x11 }, + {OV2680_8BIT ,0x4008 ,0x00 }, + {OV2680_8BIT ,0x4009 ,0x0b }, + {OV2680_8BIT ,0x5081 ,0x01 }, + {OV2680_8BIT ,0x5708 ,0x01 },//add for full size flip off and mirror off 2014/09/11 + {OV2680_8BIT ,0x5704 ,0x06 }, + {OV2680_8BIT ,0x5705 ,0x50 }, + {OV2680_8BIT ,0x5706 ,0x04 }, + {OV2680_8BIT ,0x5707 ,0xcc }, + {OV2680_8BIT ,0x3820 ,0xc0 }, + {OV2680_8BIT ,0x3821 ,0x00 }, +// {OV2680_8BIT, 0x5090, 0x0C}, + {OV2680_TOK_TERM ,0 ,0 } };static struct ov2680_resolution ov2680_res_preview[] = {
Signature · 1 line
2.14.3
PATCH 4/9 media: staging: atomisp-gc2235: don't fill an unused var
In reply to Mauro Carvalho ChehabThe code with uses the dummy var is commented out. So, coment out its definition/initialization.
Fix this warning:
drivers/staging/media/atomisp/i2c/atomisp-gc2235.c: In function 'gc2235_get_intg_factor':
drivers/staging/media/atomisp/i2c/atomisp-gc2235.c:249:26: warning: variable 'dummy' set but not used [-Wunused-but-set-variable]
u16 reg_val, reg_val_h, dummy;
^~~~~--- drivers/staging/media/atomisp/i2c/atomisp-gc2235.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
drivers/staging/media/atomisp/i2c/atomisp-gc2235.c +4 -2
@@ -246,7 +246,7 @@ static int gc2235_get_intg_factor(struct i2c_client *client,struct v4l2_subdev *sd =i2c_get_clientdata (client);struct gc2235_device *dev =to_gc2235_sensor (sd);struct atomisp_sensor_mode_data *buf = &info->data; -u16 reg_val, reg_val_h, dummy; +u16 reg_val, reg_val_h;int ret;if (!info)
@@ -316,7 +316,9 @@ static int gc2235_get_intg_factor(struct i2c_client *client,if (ret)return ret; - dummy = (reg_val_h <<8 ) | reg_val; +#if 0 +u16 dummy = (reg_val_h <<8 ) | reg_val; +#endif ret =gc2235_read_reg (client,GC2235_8BIT ,GC2235_SH_DELAY_H , ®_val_h);
Signature · 1 line
2.14.3
PATCH 5/9 media: staging: atomisp: Comment out several unused sensor resolutions
In reply to Mauro Carvalho ChehabThe register settings for several resolutions aren't used currently. So, comment them out.
Fix those warnings:
In file included from drivers/staging/media/atomisp/i2c/atomisp-gc2235.c:35:0:drivers/staging/media/atomisp/i2c/gc2235.h:340:32: warning: 'gc2235_960_640_30fps' defined but not used [-Wunused-const-variable=]
static struct gc2235_reg const gc2235_960_640_30fps[] = {
^~~~~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/gc2235.h:287:32: warning: 'gc2235_1296_736_30fps' defined but not used [-Wunused-const-variable=]
static struct gc2235_reg const gc2235_1296_736_30fps[] = {
^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/staging/media/atomisp/i2c/atomisp-ov2722.c:35:0:
drivers/staging/media/atomisp/i2c/ov2722.h:999:32: warning: 'ov2722_720p_30fps' defined but not used [-Wunused-const-variable=]
static struct ov2722_reg const ov2722_720p_30fps[] = {
^~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov2722.h:787:32: warning: 'ov2722_1M3_30fps' defined but not used [-Wunused-const-variable=]
static struct ov2722_reg const ov2722_1M3_30fps[] = {
^~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov2722.h:476:32: warning: 'ov2722_VGA_30fps' defined but not used [-Wunused-const-variable=]
static struct ov2722_reg const ov2722_VGA_30fps[] = {
^~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov2722.h:367:32: warning: 'ov2722_480P_30fps' defined but not used [-Wunused-const-variable=]
static struct ov2722_reg const ov2722_480P_30fps[] = {
^~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov2722.h:257:32: warning: 'ov2722_QVGA_30fps' defined but not used [-Wunused-const-variable=]
static struct ov2722_reg const ov2722_QVGA_30fps[] = {
^~~~~~~~~~~~~~~~~drivers/staging/media/atomisp/i2c/atomisp-ov2680.c: In function '__ov2680_set_exposure':
In file included from drivers/staging/media/atomisp/i2c/atomisp-ov2680.c:35:0:
At top level:drivers/staging/media/atomisp/i2c/ov2680.h:736:33: warning: 'ov2680_1616x1082_30fps' defined but not used [-Wunused-const-variable=]
static struct ov2680_reg const ov2680_1616x1082_30fps[] = {
^~~~~~~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov2680.h:649:33: warning: 'ov2680_1456x1096_30fps' defined but not used [-Wunused-const-variable=]
static struct ov2680_reg const ov2680_1456x1096_30fps[]= {
^~~~~~~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov2680.h:606:33: warning: 'ov2680_1296x976_30fps' defined but not used [-Wunused-const-variable=]
static struct ov2680_reg const ov2680_1296x976_30fps[] = {
^~~~~~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov2680.h:563:33: warning: 'ov2680_720p_30fps' defined but not used [-Wunused-const-variable=]
static struct ov2680_reg const ov2680_720p_30fps[] = {
^~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov2680.h:520:33: warning: 'ov2680_800x600_30fps' defined but not used [-Wunused-const-variable=]
static struct ov2680_reg const ov2680_800x600_30fps[] = {
^~~~~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov2680.h:475:33: warning: 'ov2680_720x592_30fps' defined but not used [-Wunused-const-variable=]
static struct ov2680_reg const ov2680_720x592_30fps[] = {
^~~~~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov2680.h:433:33: warning: 'ov2680_656x496_30fps' defined but not used [-Wunused-const-variable=]
static struct ov2680_reg const ov2680_656x496_30fps[] = {
^~~~~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov2680.h:389:33: warning: 'ov2680_QVGA_30fps' defined but not used [-Wunused-const-variable=]
static struct ov2680_reg const ov2680_QVGA_30fps[] = {
^~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov2680.h:346:33: warning: 'ov2680_CIF_30fps' defined but not used [-Wunused-const-variable=]
static struct ov2680_reg const ov2680_CIF_30fps[] = {
^~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov2680.h:301:33: warning: 'ov2680_QCIF_30fps' defined but not used [-Wunused-const-variable=]
static struct ov2680_reg const ov2680_QCIF_30fps[] = {
^~~~~~~~~~~~~~~~~
In file included from drivers/staging/media/atomisp/i2c/ov5693/atomisp-ov5693.c:36:0:
drivers/staging/media/atomisp/i2c/ov5693/ov5693.h:988:32: warning: 'ov5693_1424x1168_30fps' defined but not used [-Wunused-const-variable=]
static struct ov5693_reg const ov5693_1424x1168_30fps[] = {
^~~~~~~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov5693/ov5693.h:954:32: warning: 'ov5693_2592x1944_30fps' defined but not used [-Wunused-const-variable=]
static struct ov5693_reg const ov5693_2592x1944_30fps[] = {
^~~~~~~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov5693/ov5693.h:889:32: warning: 'ov5693_2592x1456_30fps' defined but not used [-Wunused-const-variable=]
static struct ov5693_reg const ov5693_2592x1456_30fps[] = {
^~~~~~~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov5693/ov5693.h:862:32: warning: 'ov5693_1940x1096' defined but not used [-Wunused-const-variable=]
static struct ov5693_reg const ov5693_1940x1096[] = {
^~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov5693/ov5693.h:796:32: warning: 'ov5693_1636p_30fps' defined but not used [-Wunused-const-variable=]
static struct ov5693_reg const ov5693_1636p_30fps[] = {
^~~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov5693/ov5693.h:758:32: warning: 'ov5693_1296x736' defined but not used [-Wunused-const-variable=]
static struct ov5693_reg const ov5693_1296x736[] = {
^~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov5693/ov5693.h:730:32: warning: 'ov5693_976x556' defined but not used [-Wunused-const-variable=]
static struct ov5693_reg const ov5693_976x556[] = {
^~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov5693/ov5693.h:672:32: warning: 'ov5693_736x496' defined but not used [-Wunused-const-variable=]
static struct ov5693_reg const ov5693_736x496[] = {
^~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov5693/ov5693.h:643:32: warning: 'ov5693_192x160' defined but not used [-Wunused-const-variable=]
static struct ov5693_reg const ov5693_192x160[] = {
^~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov5693/ov5693.h:616:32: warning: 'ov5693_368x304' defined but not used [-Wunused-const-variable=]
static struct ov5693_reg const ov5693_368x304[] = {
^~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov5693/ov5693.h:587:32: warning: 'ov5693_336x256' defined but not used [-Wunused-const-variable=]
static struct ov5693_reg const ov5693_336x256[] = {
^~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov5693/ov5693.h:540:32: warning: 'ov5693_1296x976' defined but not used [-Wunused-const-variable=]
static struct ov5693_reg const ov5693_1296x976[] = {
^~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/ov5693/ov5693.h:509:32: warning: 'ov5693_654x496' defined but not used [-Wunused-const-variable=]
static struct ov5693_reg const ov5693_654x496[] = {
^~~~~~~~~~~~~~--- drivers/staging/media/atomisp/i2c/gc2235.h | 9 ++++++++- drivers/staging/media/atomisp/i2c/ov2680.h | 5 ++++- drivers/staging/media/atomisp/i2c/ov2722.h | 6 ++++++ drivers/staging/media/atomisp/i2c/ov5693/ov5693.h | 18 +++++++++++++++++- 4 files changed, 35 insertions(+), 3 deletions(-)
drivers/staging/media/atomisp/i2c/gc2235.h +8 -1
@@ -33,6 +33,11 @@#include "../include/linux/atomisp_platform.h" +/* +* FIXME: non-preview resolutions are currently broken +*/ +#define ENABLE_NON_PREVIEW 0 +/* Defines for register writes and register array processing */ #define I2C_MSG_LENGTH 0x2#define I2C_RETRY_COUNT 5
@@ -284,6 +289,7 @@ static struct gc2235_reg const gc2235_init_settings[] = {/* * Register settings for various resolution */ +#if ENABLE_NON_PREVIEW static struct gc2235_reg const gc2235_1296_736_30fps[] = { {GC2235_8BIT ,0x8b ,0xa0 }, { GC2235_8BIT, 0x8c, 0x02 },
@@ -387,6 +393,7 @@ static struct gc2235_reg const gc2235_960_640_30fps[] = { { GC2235_8BIT, 0xfe, 0x00 }, /* switch to P0 */ { GC2235_TOK_TERM, 0, 0 } }; +#endif static struct gc2235_reg const gc2235_1600_900_30fps[] = { { GC2235_8BIT, 0x8b, 0xa0 },
@@ -578,7 +585,7 @@ static struct gc2235_resolution gc2235_res_preview[] = {* Disable non-preview configurations until the configuration selection is * improved. */ -#if 0 +#if ENABLE_NON_PREVIEW static struct gc2235_resolution gc2235_res_still[] = { { .desc = "gc2235_1600_900_30fps",
drivers/staging/media/atomisp/i2c/ov2680.h +4 -1
@@ -295,6 +295,7 @@ struct ov2680_format { }; +#if 0 /* None of the definitions below are used currently */ /* * 176x144 30fps VBlanking 1lane 10Bit (binning) */
@@ -513,7 +514,6 @@ struct ov2680_format { {OV2680_8BIT, 0x5081, 0x41}, {OV2680_TOK_TERM, 0, 0} }; -/* * 800x600 30fps VBlanking 1lane 10Bit (binning) */
@@ -685,6 +685,7 @@ struct ov2680_format {// {OV2680_8BIT, 0x5090, 0x0c}, {OV2680_TOK_TERM, 0, 0} }; +#endif /* *1616x916 30fps VBlanking 1lane 10bit
@@ -733,6 +734,7 @@ struct ov2680_format {/* * 1612x1212 30fps VBlanking 1lane 10Bit */ +#if 0 static struct ov2680_reg const ov2680_1616x1082_30fps[] = { {OV2680_8BIT ,0x3086 ,0x00 }, {OV2680_8BIT, 0x3501, 0x48},
@@ -772,6 +774,7 @@ struct ov2680_format { {OV2680_8BIT, 0x5081, 0x41}, {OV2680_TOK_TERM, 0, 0} }; +#endif /* * 1616x1216 30fps VBlanking 1lane 10Bit */
drivers/staging/media/atomisp/i2c/ov2722.h +6 -0
@@ -254,6 +254,7 @@ struct ov2722_write_ctrl {/* * Register settings for various resolution */ +#if 0 static struct ov2722_reg const ov2722_QVGA_30fps[] = { {OV2722_8BIT ,0x3718 ,0x10 }, {OV2722_8BIT, 0x3702, 0x0c},
@@ -581,6 +582,7 @@ static struct ov2722_reg const ov2722_VGA_30fps[] = { {OV2722_8BIT, 0x3509, 0x10}, {OV2722_TOK_TERM, 0, 0}, }; +#endif static struct ov2722_reg const ov2722_1632_1092_30fps[] = { {OV2722_8BIT, 0x3021, 0x03}, /* For stand wait for
@@ -784,6 +786,7 @@ static struct ov2722_reg const ov2722_1452_1092_30fps[] = { {OV2722_8BIT, 0x3509, 0x00}, {OV2722_TOK_TERM, 0, 0} }; +#if 0 static struct ov2722_reg const ov2722_1M3_30fps[] = { {OV2722_8BIT ,0x3718 ,0x10 }, {OV2722_8BIT, 0x3702, 0x24},
@@ -890,6 +893,7 @@ static struct ov2722_reg const ov2722_1M3_30fps[] = { {OV2722_8BIT, 0x3509, 0x10}, {OV2722_TOK_TERM, 0, 0}, }; +#endif static struct ov2722_reg const ov2722_1080p_30fps[] = { {OV2722_8BIT, 0x3021, 0x03}, /* For stand wait for a whole
@@ -996,6 +1000,7 @@ static struct ov2722_reg const ov2722_1080p_30fps[] = { {OV2722_TOK_TERM, 0, 0} }; +#if 0 /* Currently unused */ static struct ov2722_reg const ov2722_720p_30fps[] = { {OV2722_8BIT ,0x3021 ,0x03 }, {OV2722_8BIT, 0x3718, 0x10},
@@ -1095,6 +1100,7 @@ static struct ov2722_reg const ov2722_720p_30fps[] = { {OV2722_8BIT, 0x3509, 0x00}, {OV2722_TOK_TERM, 0, 0}, }; +#endif static struct ov2722_resolution ov2722_res_preview[] = { {
drivers/staging/media/atomisp/i2c/ov5693/ov5693.h +17 -1
@@ -31,6 +31,12 @@#include "../../include/linux/atomisp_platform.h" +/* +* FIXME: non-preview resolutions are currently broken +*/ +#define ENABLE_NON_PREVIEW 0 + +#define OV5693_POWER_UP_RETRY_NUM 5/* Defines for register writes and register array processing */
@@ -503,6 +509,7 @@ static struct ov5693_reg const ov5693_global_setting[] = { {OV5693_TOK_TERM, 0, 0} }; +#if ENABLE_NON_PREVIEW /* * 654x496 30fps 17ms VBlanking 2lane 10Bit (Scaling) */
@@ -695,6 +702,7 @@ static struct ov5693_reg const ov5693_736x496[] = { {OV5693_8BIT, 0x0100, 0x01}, {OV5693_TOK_TERM, 0, 0} }; +#endif /* static struct ov5693_reg const ov5693_736x496[] = {
@@ -727,6 +735,7 @@ static struct ov5693_reg const ov5693_736x496[] = {/* * 976x556 30fps 8.8ms VBlanking 2lane 10Bit (Scaling) */ +#if ENABLE_NON_PREVIEW static struct ov5693_reg const ov5693_976x556[] = { {OV5693_8BIT ,0x3501 ,0x7b }, {OV5693_8BIT, 0x3502, 0x00},
@@ -819,6 +828,7 @@ static struct ov5693_reg const ov5693_1636p_30fps[] = { {OV5693_8BIT, 0x0100, 0x01}, {OV5693_TOK_TERM, 0, 0} }; +#endif static struct ov5693_reg const ov5693_1616x1216_30fps[] = { {OV5693_8BIT, 0x3501, 0x7b},
@@ -859,6 +869,7 @@ static struct ov5693_reg const ov5693_1616x1216_30fps[] = {/* * 1940x1096 30fps 8.8ms VBlanking 2lane 10bit (Scaling) */ +#if ENABLE_NON_PREVIEW static struct ov5693_reg const ov5693_1940x1096[] = { {OV5693_8BIT ,0x3501 ,0x7b }, {OV5693_8BIT, 0x3502, 0x00},
@@ -916,6 +927,7 @@ static struct ov5693_reg const ov5693_2592x1456_30fps[] = { {OV5693_8BIT, 0x5002, 0x00}, {OV5693_TOK_TERM, 0, 0} }; +#endif static struct ov5693_reg const ov5693_2576x1456_30fps[] = { {OV5693_8BIT, 0x3501, 0x7b},
@@ -951,6 +963,7 @@ static struct ov5693_reg const ov5693_2576x1456_30fps[] = {/* * 2592x1944 30fps 0.6ms VBlanking 2lane 10Bit */ +#if ENABLE_NON_PREVIEW static struct ov5693_reg const ov5693_2592x1944_30fps[] = { {OV5693_8BIT ,0x3501 ,0x7b }, {OV5693_8BIT, 0x3502, 0x00},
@@ -977,6 +990,7 @@ static struct ov5693_reg const ov5693_2592x1944_30fps[] = { {OV5693_8BIT, 0x0100, 0x01}, {OV5693_TOK_TERM, 0, 0} }; +#endif /* * 11:9 Full FOV Output, expected FOV Res: 2346x1920
@@ -985,6 +999,7 @@ static struct ov5693_reg const ov5693_2592x1944_30fps[] = {* * WA: Left Offset: 8, Hor scal: 64 */ +#if ENABLE_NON_PREVIEW static struct ov5693_reg const ov5693_1424x1168_30fps[] = { {OV5693_8BIT ,0x3501 ,0x3b },/* long exposure[15:8] */ {OV5693_8BIT, 0x3502, 0x80}, /* long exposure[7:0] */
@@ -1019,6 +1034,7 @@ static struct ov5693_reg const ov5693_1424x1168_30fps[] = { {OV5693_8BIT, 0x0100, 0x01}, {OV5693_TOK_TERM, 0, 0} }; +#endif /* * 3:2 Full FOV Output, expected FOV Res: 2560x1706
@@ -1151,7 +1167,7 @@ static struct ov5693_resolution ov5693_res_preview[] = {* Disable non-preview configurations until the configuration selection is * improved. */ -#if 0 +#if ENABLE_NON_PREVIEW struct ov5693_resolution ov5693_res_still[] = { { .desc = "ov5693_736x496_30fps",
Signature · 1 line
2.14.3
PATCH 6/9 media: atomisp: ov2680: don't declare unused vars
In reply to Mauro Carvalho Chehabdrivers/staging/media/atomisp/i2c/atomisp-ov2680.c: In function ‘__ov2680_set_exposure’:drivers/staging/media/atomisp/i2c/atomisp-ov2680.c:400:10: warning: variable ‘hts’ set but not used [-Wunused-but-set-variable]
u16 vts,hts;
^~~
drivers/staging/media/atomisp/i2c/atomisp-ov2680.c: In function ‘ov2680_detect’:
drivers/staging/media/atomisp/i2c/atomisp-ov2680.c:1164:5: warning: variable ‘revision’ set but not used [-Wunused-but-set-variable]
u8 revision;
^~~~~~~~--- drivers/staging/media/atomisp/i2c/atomisp-ov2680.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
drivers/staging/media/atomisp/i2c/atomisp-ov2680.c +3 -3
@@ -397,14 +397,13 @@ static long __ov2680_set_exposure(struct v4l2_subdev *sd, int coarse_itg, {struct i2c_client *client =v4l2_get_subdevdata (sd);struct ov2680_device *dev =to_ov2680_sensor (sd); -u16 vts,hts; +u16 vts;int ret,exp_val;dev_dbg (&client->dev,"+++++++__ov2680_set_exposure coarse_itg %d, gain %d, digitgain %d++\n" , coarse_itg, gain, digitgain); - hts = ov2680_res[dev->fmt_idx].pixels_per_line; vts = ov2680_res[dev->fmt_idx].lines_per_frame;/* group hold */
@@ -1185,7 +1184,8 @@ static int ov2680_detect(struct i2c_client *client) OV2680_SC_CMMN_SUB_ID, &high); revision = (u8 ) high &0x0f ; -dev_info (&client->dev,"sensor_revision id = 0x%x\n" , id); +dev_info (&client->dev,"sensor_revision id = 0x%x, rev= %d\n" , + id, revision);return 0 ; }
Signature · 1 line
2.14.3
PATCH 7/9 media: atomisp-gc0310: return errors at gc0310_init()
In reply to Mauro Carvalho ChehabIf something wrong gets there, return the error.
Get rid of this warning:
drivers/staging/media/atomisp/i2c/atomisp-gc0310.c: In function 'gc0310_init':
drivers/staging/media/atomisp/i2c/atomisp-gc0310.c:713:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
int ret;
^~~--- drivers/staging/media/atomisp/i2c/atomisp-gc0310.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/staging/media/atomisp/i2c/atomisp-gc0310.c +1 -1
@@ -727,7 +727,7 @@ static int gc0310_init(struct v4l2_subdev *sd)mutex_unlock (&dev->input_lock);pr_info ("%s E\n" , __func__); -return 0 ; +return ret; }static int power_ctrl (struct v4l2_subdev *sd,bool flag)
Signature · 1 line
2.14.3
PATCH 8/9 media: atomisp-mt9m114: remove dead data
In reply to Mauro Carvalho ChehabIt seems that, originally, the logic would allow selecting between fine and coarse integration. However, only coarse seems to be implemented.
Get rid of this warning:
drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c: In function 'mt9m114_s_exposure':
drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c:1003:6: warning: variable 'exposure_local' set but not used [-Wunused-but-set-variable]
u16 exposure_local[3];
^~~~~~~~~~~~~~--- drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-)
drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c +1 -6
@@ -995,12 +995,10 @@ static long mt9m114_s_exposure(struct v4l2_subdev *sd,struct mt9m114_device *dev =to_mt9m114_sensor (sd);int ret =0 ;unsigned int coarse_integration =0 ; -unsigned int fine_integration =0 ;unsigned int FLines =0 ;unsigned int FrameLengthLines =0 ;/* ExposureTime.FrameLengthLines; */ unsigned int AnalogGain, DigitalGain;u32 AnalogGainToWrite =0 ; -u16 exposure_local[3 ]; dev_dbg(&client->dev, "%s(0x%X 0x%X 0x%X)\n", __func__, exposure->integration_time[0], exposure->gain[0],
@@ -1032,10 +1030,7 @@ static long mt9m114_s_exposure(struct v4l2_subdev *sd,return -EINVAL ; } -/* set coarse/fine integration */ - exposure_local[0 ] =REG_EXPO_COARSE ; - exposure_local[1 ] = (u16 )coarse_integration; - exposure_local[2 ] = (u16 )fine_integration; +/* set coarse integration */ /* 3A provide real exposure time. should not translate to any value here. */ ret = mt9m114_write_reg(client, MISENSOR_16BIT,
Signature · 1 line
2.14.3
PATCH 9/9 media: atomisp-mt9m114: comment out unused stuff
In reply to Mauro Carvalho ChehabThere are lots of data structs defined there but aren't used anywhere.
Comment them out. Gets rid of those warnings:
drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c:1808:45: warning: 'mt9m114_entity_ops' defined but not used [-Wunused-const-variable=]
static const struct media_entity_operations mt9m114_entity_ops = {
^~~~~~~~~~~~~~~~~~
In file included from drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c:35:0:
drivers/staging/media/atomisp/i2c/mt9m114.h:805:34: warning: 'mt9m114_iq' defined but not used [-Wunused-const-variable=]
static struct misensor_reg const mt9m114_iq[] = {
^~~~~~~~~~
drivers/staging/media/atomisp/i2c/mt9m114.h:797:34: warning: 'mt9m114_antiflicker_60hz' defined but not used [-Wunused-const-variable=]
static struct misensor_reg const mt9m114_antiflicker_60hz[] = {
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/mt9m114.h:789:34: warning: 'mt9m114_antiflicker_50hz' defined but not used [-Wunused-const-variable=]
static struct misensor_reg const mt9m114_antiflicker_50hz[] = {
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/mt9m114.h:682:34: warning: 'mt9m114_720_480P_init' defined but not used [-Wunused-const-variable=]
static struct misensor_reg const mt9m114_720_480P_init[] = {
^~~~~~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/mt9m114.h:533:34: warning: 'mt9m114_960P_init' defined but not used [-Wunused-const-variable=]
static struct misensor_reg const mt9m114_960P_init[] = {
^~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/mt9m114.h:518:34: warning: 'mt9m114_wakeup_reg' defined but not used [-Wunused-const-variable=]
static struct misensor_reg const mt9m114_wakeup_reg[] = {
^~~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/mt9m114.h:504:34: warning: 'mt9m114_streaming' defined but not used [-Wunused-const-variable=]
static struct misensor_reg const mt9m114_streaming[] = {
^~~~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/mt9m114.h:497:34: warning: 'mt9m114_suspend' defined but not used [-Wunused-const-variable=]
static struct misensor_reg const mt9m114_suspend[] = {
^~~~~~~~~~~~~~~
drivers/staging/media/atomisp/i2c/mt9m114.h:393:34: warning: 'mt9m114_exitstandby' defined but not used [-Wunused-const-variable=]
static struct misensor_reg const mt9m114_exitstandby[] = {
^~~~~~~~~~~~~~~~~~~--- drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c | 4 ---- drivers/staging/media/atomisp/i2c/mt9m114.h | 13 ++++++++++++- 2 files changed, 12 insertions(+), 5 deletions(-)
drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c +0 -4
@@ -1805,10 +1805,6 @@ static const struct v4l2_subdev_ops mt9m114_ops = { .sensor = &mt9m114_sensor_ops, }; -static const struct media_entity_operations mt9m114_entity_ops = { - .link_setup =NULL , -}; -static int mt9m114_remove (struct i2c_client *client) {struct mt9m114_device *dev;
drivers/staging/media/atomisp/i2c/mt9m114.h +12 -1
@@ -390,6 +390,7 @@ static struct mt9m114_res_struct mt9m114_res[] = { };#define N_RES (ARRAY_SIZE(mt9m114_res)) +#if 0 /* Currently unused */ static struct misensor_reg const mt9m114_exitstandby[] = { {MISENSOR_16BIT ,0x098E ,0xDC00 }, /* exit-standby */
@@ -397,6 +398,7 @@ static struct misensor_reg const mt9m114_exitstandby[] = { {MISENSOR_16BIT, 0x0080, 0x8002}, {MISENSOR_TOK_TERM, 0, 0} }; +#endif static struct misensor_reg const mt9m114_exp_win[5][5] = { {
@@ -494,6 +496,7 @@ static struct misensor_reg const mt9m114_exp_center[] = { {MISENSOR_TOK_TERM, 0, 0} }; +#if 0 /* Currently unused */ static struct misensor_reg const mt9m114_suspend[] = { {MISENSOR_16BIT ,0x098E ,0xDC00 }, {MISENSOR_8BIT, 0xDC00, 0x40},
@@ -507,6 +510,7 @@ static struct misensor_reg const mt9m114_streaming[] = { {MISENSOR_16BIT, 0x0080, 0x8002}, {MISENSOR_TOK_TERM, 0, 0} }; +#endif static struct misensor_reg const mt9m114_standby_reg[] = { {MISENSOR_16BIT, 0x098E, 0xDC00},
@@ -515,12 +519,14 @@ static struct misensor_reg const mt9m114_standby_reg[] = { {MISENSOR_TOK_TERM, 0, 0} }; +#if 0 /* Currently unused */ static struct misensor_reg const mt9m114_wakeup_reg[] = { {MISENSOR_16BIT ,0x098E ,0xDC00 }, {MISENSOR_8BIT ,0xDC00 ,0x54 }, {MISENSOR_16BIT ,0x0080 ,0x8002 }, {MISENSOR_TOK_TERM ,0 ,0 } }; +#endif static struct misensor_reg const mt9m114_chgstat_reg[] = { {MISENSOR_16BIT ,0x098E ,0xDC00 },
@@ -530,6 +536,7 @@ static struct misensor_reg const mt9m114_chgstat_reg[] = { };/* [1296x976_30fps] - Intel */ +#if 0 static struct misensor_reg const mt9m114_960P_init[] = { {MISENSOR_16BIT ,0x098E ,0x1000 }, {MISENSOR_8BIT, 0xC97E, 0x01}, /* cam_sysctl_pll_enable = 1 */
@@ -565,6 +572,7 @@ static struct misensor_reg const mt9m114_960P_init[] = { {MISENSOR_16BIT, 0xC86A, 0x03C8}, /* cam_output_height = 960 */ {MISENSOR_TOK_TERM, 0, 0}, }; +#endif /* [1296x976_30fps_768Mbps] */ static struct misensor_reg const mt9m114_976P_init[] = {
@@ -679,6 +687,7 @@ static struct misensor_reg const mt9m114_736P_init[] = { };/* [736x496_30fps_768Mbps] */ +#if 0 /* Currently unused */ static struct misensor_reg const mt9m114_720_480P_init[] = { {MISENSOR_16BIT ,0x98E ,0x1000 }, {MISENSOR_8BIT, 0xC97E, 0x01}, /* cam_sysctl_pll_enable = 1 */
@@ -714,6 +723,7 @@ static struct misensor_reg const mt9m114_720_480P_init[] = { {MISENSOR_8BIT, 0xC878, 0x00}, /* 0x0E //cam_aet_aemode = 0 */ {MISENSOR_TOK_TERM, 0, 0} }; +#endif static struct misensor_reg const mt9m114_common[] = { /* reset */
@@ -785,7 +795,7 @@ static struct misensor_reg const mt9m114_common[] = { {MISENSOR_TOK_TERM, 0, 0}, }; - +#if 0 /* Currently unused */ static struct misensor_reg const mt9m114_antiflicker_50hz[] = { {MISENSOR_16BIT ,0x098E ,0xC88B }, {MISENSOR_8BIT, 0xC88B, 0x32},
@@ -1775,3 +1785,4 @@ static struct misensor_reg const mt9m114_iq[] = { };#endif +#endif
Signature · 1 line
2.14.3
Quoted 18 lines · Mauro Carvalho Chehab
When I started building media subsystem with the atomisp driver, I ended by adding several hacks on their Makefiles, in order to get rid of thousands of warnings. I felt a little guty of hiding how broken is this driver, so I decided t remove two
Makefilehacks that affect sensors and fix the warnings.Yet, there's still one such hack at
drivers/staging/media/atomisp/pci/atomisp2/Makefile, with:# HACK! While this driver is in bad shape, don't enable several warnings
# that would be otherwise enabled with W=1
ccflags-y += $(call cc-disable-warning, implicit-fallthrough) ccflags-y += $(call cc-disable-warning, missing-prototypes) ccflags-y += $(call cc-disable-warning, missing-declarations) ccflags-y += $(call cc-disable-warning, suggest-attribute=format) ccflags-y += $(call cc-disable-warning, unused-const-variable) ccflags-y += $(call cc-disable-warning, unused-but-set-variable)
Quoted 8 lines
Getting his of those is a big task, as there are thousands of warnings hidden there. In order to seriously get rid of them, one should start getting rid of the several abstraction layers at the driver and have hardware for test.
As I don't have any hardware to test, nor any reason why dedicating myself to such task, I'll just leave this task for others to do.
Thanks. Feel free to add:
And take the patches through your tree.
Signature · 4 lines
Kind regards, Sakari Ailus [email protected]