linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/9] Do some atomisp cleanups
@ 2018-04-16 16:37 Mauro Carvalho Chehab
  2018-04-16 16:37 ` [PATCH 1/9] media: staging: atomisp: get rid of __KERNEL macros Mauro Carvalho Chehab
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: Mauro Carvalho Chehab @ 2018-04-16 16:37 UTC (permalink / raw)
  Cc: Mauro Carvalho Chehab, Linux Media Mailing List,
	Mauro Carvalho Chehab, Kate Stewart, Guillermo O. Freschi,
	Hans de Goede, Dan Carpenter, Thomas Gleixner, Hans Verkuil,
	Alan Cox, Sakari Ailus, Julia Lawall, devel, Rene Hickersberger,
	Arvind Yadav, Greg Kroah-Hartman, Luis Oliveira, Andy Shevchenko,
	Arnd Bergmann, Aishwarya Pant

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(-)

-- 
2.14.3

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 1/9] media: staging: atomisp: get rid of __KERNEL macros
  2018-04-16 16:37 [PATCH 0/9] Do some atomisp cleanups Mauro Carvalho Chehab
@ 2018-04-16 16:37 ` Mauro Carvalho Chehab
  2018-04-16 16:37 ` [PATCH 2/9] media: staging: atomisp: reenable warnings for I2C Mauro Carvalho Chehab
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Mauro Carvalho Chehab @ 2018-04-16 16:37 UTC (permalink / raw)
  Cc: Mauro Carvalho Chehab, Linux Media Mailing List,
	Mauro Carvalho Chehab, Alan Cox, Sakari Ailus,
	Greg Kroah-Hartman, Hans de Goede, devel

There's no sense for a Kernel driver to have __KERNEL macros
on it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 .../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(-)

diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/css_2401_csi2p_system/host/system_local.h b/drivers/staging/media/atomisp/pci/atomisp2/css2400/css_2401_csi2p_system/host/system_local.h
index c16670989702..5600b32e29f4 100644
--- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/css_2401_csi2p_system/host/system_local.h
+++ b/drivers/staging/media/atomisp/pci/atomisp2/css2400/css_2401_csi2p_system/host/system_local.h
@@ -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
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_common/host/system_local.h b/drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_common/host/system_local.h
index 111b346dfafb..8be1cd020bf4 100644
--- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_common/host/system_local.h
+++ b/drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_common/host/system_local.h
@@ -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
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_include/math_support.h b/drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_include/math_support.h
index 6436dae0007e..7c52ba54fcf1 100644
--- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_include/math_support.h
+++ b/drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_include/math_support.h
@@ -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 */
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_include/print_support.h b/drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_include/print_support.h
index ca0fbbb57788..37e8116b74a4 100644
--- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_include/print_support.h
+++ b/drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_include/print_support.h
@@ -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() */
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_sp.c b/drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_sp.c
index 85263725540d..cdbe914787c8 100644
--- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_sp.c
+++ b/drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_sp.c
@@ -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 */
 
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 2/9] media: staging: atomisp: reenable warnings for I2C
  2018-04-16 16:37 [PATCH 0/9] Do some atomisp cleanups Mauro Carvalho Chehab
  2018-04-16 16:37 ` [PATCH 1/9] media: staging: atomisp: get rid of __KERNEL macros Mauro Carvalho Chehab
@ 2018-04-16 16:37 ` Mauro Carvalho Chehab
  2018-04-16 16:37 ` [PATCH 3/9] media: atomisp: ov2680.h: fix identation Mauro Carvalho Chehab
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Mauro Carvalho Chehab @ 2018-04-16 16:37 UTC (permalink / raw)
  Cc: Mauro Carvalho Chehab, Linux Media Mailing List,
	Mauro Carvalho Chehab, Alan Cox, Sakari Ailus,
	Greg Kroah-Hartman, Andy Shevchenko, Thomas Gleixner,
	Kate Stewart, devel

When 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.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 drivers/staging/media/atomisp/i2c/Makefile        | 7 -------
 drivers/staging/media/atomisp/i2c/ov5693/Makefile | 7 -------
 2 files changed, 14 deletions(-)

diff --git a/drivers/staging/media/atomisp/i2c/Makefile b/drivers/staging/media/atomisp/i2c/Makefile
index 99ea35c043fd..8d022986e199 100644
--- a/drivers/staging/media/atomisp/i2c/Makefile
+++ b/drivers/staging/media/atomisp/i2c/Makefile
@@ -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)
diff --git a/drivers/staging/media/atomisp/i2c/ov5693/Makefile b/drivers/staging/media/atomisp/i2c/ov5693/Makefile
index aa6be85c5a60..3275f2be229e 100644
--- a/drivers/staging/media/atomisp/i2c/ov5693/Makefile
+++ b/drivers/staging/media/atomisp/i2c/ov5693/Makefile
@@ -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)
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 3/9] media: atomisp: ov2680.h: fix identation
  2018-04-16 16:37 [PATCH 0/9] Do some atomisp cleanups Mauro Carvalho Chehab
  2018-04-16 16:37 ` [PATCH 1/9] media: staging: atomisp: get rid of __KERNEL macros Mauro Carvalho Chehab
  2018-04-16 16:37 ` [PATCH 2/9] media: staging: atomisp: reenable warnings for I2C Mauro Carvalho Chehab
@ 2018-04-16 16:37 ` Mauro Carvalho Chehab
  2018-04-16 16:37 ` [PATCH 4/9] media: staging: atomisp-gc2235: don't fill an unused var Mauro Carvalho Chehab
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Mauro Carvalho Chehab @ 2018-04-16 16:37 UTC (permalink / raw)
  Cc: Mauro Carvalho Chehab, Linux Media Mailing List,
	Mauro Carvalho Chehab, Alan Cox, Sakari Ailus,
	Greg Kroah-Hartman, Andy Shevchenko, Arnd Bergmann,
	Dan Carpenter, devel

The identation for several tables there are broken.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 drivers/staging/media/atomisp/i2c/ov2680.h | 895 ++++++++++++++---------------
 1 file changed, 447 insertions(+), 448 deletions(-)

diff --git a/drivers/staging/media/atomisp/i2c/ov2680.h b/drivers/staging/media/atomisp/i2c/ov2680.h
index cb38e6e79409..c83ae379f517 100644
--- a/drivers/staging/media/atomisp/i2c/ov2680.h
+++ b/drivers/staging/media/atomisp/i2c/ov2680.h
@@ -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[] = {
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 4/9] media: staging: atomisp-gc2235: don't fill an unused var
  2018-04-16 16:37 [PATCH 0/9] Do some atomisp cleanups Mauro Carvalho Chehab
                   ` (2 preceding siblings ...)
  2018-04-16 16:37 ` [PATCH 3/9] media: atomisp: ov2680.h: fix identation Mauro Carvalho Chehab
@ 2018-04-16 16:37 ` Mauro Carvalho Chehab
  2018-04-16 16:37 ` [PATCH 5/9] media: staging: atomisp: Comment out several unused sensor resolutions Mauro Carvalho Chehab
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Mauro Carvalho Chehab @ 2018-04-16 16:37 UTC (permalink / raw)
  Cc: Mauro Carvalho Chehab, Linux Media Mailing List,
	Mauro Carvalho Chehab, Alan Cox, Sakari Ailus,
	Greg Kroah-Hartman, Andy Shevchenko, Hans Verkuil, Arvind Yadav,
	Guillermo O. Freschi, Aishwarya Pant, devel

The 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;
                            ^~~~~

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 drivers/staging/media/atomisp/i2c/atomisp-gc2235.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/media/atomisp/i2c/atomisp-gc2235.c b/drivers/staging/media/atomisp/i2c/atomisp-gc2235.c
index 93f9c618f3d8..4b6b6568b3cf 100644
--- a/drivers/staging/media/atomisp/i2c/atomisp-gc2235.c
+++ b/drivers/staging/media/atomisp/i2c/atomisp-gc2235.c
@@ -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, &reg_val_h);
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 5/9] media: staging: atomisp: Comment out several unused sensor resolutions
  2018-04-16 16:37 [PATCH 0/9] Do some atomisp cleanups Mauro Carvalho Chehab
                   ` (3 preceding siblings ...)
  2018-04-16 16:37 ` [PATCH 4/9] media: staging: atomisp-gc2235: don't fill an unused var Mauro Carvalho Chehab
@ 2018-04-16 16:37 ` Mauro Carvalho Chehab
  2018-04-16 16:37 ` [PATCH 6/9] media: atomisp: ov2680: don't declare unused vars Mauro Carvalho Chehab
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Mauro Carvalho Chehab @ 2018-04-16 16:37 UTC (permalink / raw)
  Cc: Mauro Carvalho Chehab, Linux Media Mailing List,
	Mauro Carvalho Chehab, Alan Cox, Sakari Ailus,
	Greg Kroah-Hartman, Hans Verkuil, Guillermo O. Freschi,
	Dan Carpenter, Andy Shevchenko, Arnd Bergmann, devel

The 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[] = {
                                ^~~~~~~~~~~~~~

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 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(-)

diff --git a/drivers/staging/media/atomisp/i2c/gc2235.h b/drivers/staging/media/atomisp/i2c/gc2235.h
index 0e805bcfa4d8..54bf7812b27a 100644
--- a/drivers/staging/media/atomisp/i2c/gc2235.h
+++ b/drivers/staging/media/atomisp/i2c/gc2235.h
@@ -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",
diff --git a/drivers/staging/media/atomisp/i2c/ov2680.h b/drivers/staging/media/atomisp/i2c/ov2680.h
index c83ae379f517..bde2f148184d 100644
--- a/drivers/staging/media/atomisp/i2c/ov2680.h
+++ b/drivers/staging/media/atomisp/i2c/ov2680.h
@@ -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
 	 */
diff --git a/drivers/staging/media/atomisp/i2c/ov2722.h b/drivers/staging/media/atomisp/i2c/ov2722.h
index 757b37613ccc..d99188a5c9d0 100644
--- a/drivers/staging/media/atomisp/i2c/ov2722.h
+++ b/drivers/staging/media/atomisp/i2c/ov2722.h
@@ -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[] = {
 	{
diff --git a/drivers/staging/media/atomisp/i2c/ov5693/ov5693.h b/drivers/staging/media/atomisp/i2c/ov5693/ov5693.h
index 9058a82455a6..bba99406785e 100644
--- a/drivers/staging/media/atomisp/i2c/ov5693/ov5693.h
+++ b/drivers/staging/media/atomisp/i2c/ov5693/ov5693.h
@@ -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",
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 6/9] media: atomisp: ov2680: don't declare unused vars
  2018-04-16 16:37 [PATCH 0/9] Do some atomisp cleanups Mauro Carvalho Chehab
                   ` (4 preceding siblings ...)
  2018-04-16 16:37 ` [PATCH 5/9] media: staging: atomisp: Comment out several unused sensor resolutions Mauro Carvalho Chehab
@ 2018-04-16 16:37 ` Mauro Carvalho Chehab
  2018-04-16 16:37 ` [PATCH 7/9] media: atomisp-gc0310: return errors at gc0310_init() Mauro Carvalho Chehab
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Mauro Carvalho Chehab @ 2018-04-16 16:37 UTC (permalink / raw)
  Cc: Mauro Carvalho Chehab, Linux Media Mailing List,
	Mauro Carvalho Chehab, Alan Cox, Sakari Ailus,
	Greg Kroah-Hartman, Andy Shevchenko, Hans Verkuil, Hans de Goede,
	Luis Oliveira, devel

drivers/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;
     ^~~~~~~~

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 drivers/staging/media/atomisp/i2c/atomisp-ov2680.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/media/atomisp/i2c/atomisp-ov2680.c b/drivers/staging/media/atomisp/i2c/atomisp-ov2680.c
index c0849299d592..bba3d1745908 100644
--- a/drivers/staging/media/atomisp/i2c/atomisp-ov2680.c
+++ b/drivers/staging/media/atomisp/i2c/atomisp-ov2680.c
@@ -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;
 }
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 7/9] media: atomisp-gc0310: return errors at gc0310_init()
  2018-04-16 16:37 [PATCH 0/9] Do some atomisp cleanups Mauro Carvalho Chehab
                   ` (5 preceding siblings ...)
  2018-04-16 16:37 ` [PATCH 6/9] media: atomisp: ov2680: don't declare unused vars Mauro Carvalho Chehab
@ 2018-04-16 16:37 ` Mauro Carvalho Chehab
  2018-04-16 16:37 ` [PATCH 8/9] media: atomisp-mt9m114: remove dead data Mauro Carvalho Chehab
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Mauro Carvalho Chehab @ 2018-04-16 16:37 UTC (permalink / raw)
  Cc: Mauro Carvalho Chehab, Linux Media Mailing List,
	Mauro Carvalho Chehab, Alan Cox, Sakari Ailus,
	Greg Kroah-Hartman, Andy Shevchenko, Hans Verkuil, Hans de Goede,
	Arvind Yadav, Rene Hickersberger, devel

If 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;
        ^~~

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 drivers/staging/media/atomisp/i2c/atomisp-gc0310.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/media/atomisp/i2c/atomisp-gc0310.c b/drivers/staging/media/atomisp/i2c/atomisp-gc0310.c
index 512fa87fa11b..3b38cbccf294 100644
--- a/drivers/staging/media/atomisp/i2c/atomisp-gc0310.c
+++ b/drivers/staging/media/atomisp/i2c/atomisp-gc0310.c
@@ -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)
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 8/9] media: atomisp-mt9m114: remove dead data
  2018-04-16 16:37 [PATCH 0/9] Do some atomisp cleanups Mauro Carvalho Chehab
                   ` (6 preceding siblings ...)
  2018-04-16 16:37 ` [PATCH 7/9] media: atomisp-gc0310: return errors at gc0310_init() Mauro Carvalho Chehab
@ 2018-04-16 16:37 ` Mauro Carvalho Chehab
  2018-04-16 16:37 ` [PATCH 9/9] media: atomisp-mt9m114: comment out unused stuff Mauro Carvalho Chehab
  2018-04-26  8:20 ` [PATCH 0/9] Do some atomisp cleanups Sakari Ailus
  9 siblings, 0 replies; 11+ messages in thread
From: Mauro Carvalho Chehab @ 2018-04-16 16:37 UTC (permalink / raw)
  Cc: Mauro Carvalho Chehab, Linux Media Mailing List,
	Mauro Carvalho Chehab, Alan Cox, Sakari Ailus,
	Greg Kroah-Hartman, Andy Shevchenko, Hans Verkuil, Hans de Goede,
	Aishwarya Pant, devel

It 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];
        ^~~~~~~~~~~~~~

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c b/drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c
index 44db9f9f1fc5..454a5c31a206 100644
--- a/drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c
+++ b/drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c
@@ -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,
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 9/9] media: atomisp-mt9m114: comment out unused stuff
  2018-04-16 16:37 [PATCH 0/9] Do some atomisp cleanups Mauro Carvalho Chehab
                   ` (7 preceding siblings ...)
  2018-04-16 16:37 ` [PATCH 8/9] media: atomisp-mt9m114: remove dead data Mauro Carvalho Chehab
@ 2018-04-16 16:37 ` Mauro Carvalho Chehab
  2018-04-26  8:20 ` [PATCH 0/9] Do some atomisp cleanups Sakari Ailus
  9 siblings, 0 replies; 11+ messages in thread
From: Mauro Carvalho Chehab @ 2018-04-16 16:37 UTC (permalink / raw)
  Cc: Mauro Carvalho Chehab, Linux Media Mailing List,
	Mauro Carvalho Chehab, Alan Cox, Sakari Ailus,
	Greg Kroah-Hartman, Andy Shevchenko, Hans Verkuil, Julia Lawall,
	Arvind Yadav, devel

There 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[] = {
                                  ^~~~~~~~~~~~~~~~~~~

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c |  4 ----
 drivers/staging/media/atomisp/i2c/mt9m114.h         | 13 ++++++++++++-
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c b/drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c
index 454a5c31a206..8e180f903335 100644
--- a/drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c
+++ b/drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c
@@ -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;
diff --git a/drivers/staging/media/atomisp/i2c/mt9m114.h b/drivers/staging/media/atomisp/i2c/mt9m114.h
index 0af79d77a404..de39cc141308 100644
--- a/drivers/staging/media/atomisp/i2c/mt9m114.h
+++ b/drivers/staging/media/atomisp/i2c/mt9m114.h
@@ -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
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/9] Do some atomisp cleanups
  2018-04-16 16:37 [PATCH 0/9] Do some atomisp cleanups Mauro Carvalho Chehab
                   ` (8 preceding siblings ...)
  2018-04-16 16:37 ` [PATCH 9/9] media: atomisp-mt9m114: comment out unused stuff Mauro Carvalho Chehab
@ 2018-04-26  8:20 ` Sakari Ailus
  9 siblings, 0 replies; 11+ messages in thread
From: Sakari Ailus @ 2018-04-26  8:20 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Linux Media Mailing List, Mauro Carvalho Chehab, Kate Stewart,
	Guillermo O. Freschi, Hans de Goede, Dan Carpenter,
	Thomas Gleixner, Hans Verkuil, Alan Cox, Julia Lawall, devel,
	Rene Hickersberger, Arvind Yadav, Greg Kroah-Hartman,
	Luis Oliveira, Andy Shevchenko, Arnd Bergmann, Aishwarya Pant

On Mon, Apr 16, 2018 at 12:37:03PM -0400, Mauro Carvalho Chehab wrote:
> 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.

Thanks. Feel free to add:

Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>

And take the patches through your tree.

-- 
Kind regards,

Sakari Ailus
sakari.ailus@linux.intel.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2018-04-26  8:20 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-16 16:37 [PATCH 0/9] Do some atomisp cleanups Mauro Carvalho Chehab
2018-04-16 16:37 ` [PATCH 1/9] media: staging: atomisp: get rid of __KERNEL macros Mauro Carvalho Chehab
2018-04-16 16:37 ` [PATCH 2/9] media: staging: atomisp: reenable warnings for I2C Mauro Carvalho Chehab
2018-04-16 16:37 ` [PATCH 3/9] media: atomisp: ov2680.h: fix identation Mauro Carvalho Chehab
2018-04-16 16:37 ` [PATCH 4/9] media: staging: atomisp-gc2235: don't fill an unused var Mauro Carvalho Chehab
2018-04-16 16:37 ` [PATCH 5/9] media: staging: atomisp: Comment out several unused sensor resolutions Mauro Carvalho Chehab
2018-04-16 16:37 ` [PATCH 6/9] media: atomisp: ov2680: don't declare unused vars Mauro Carvalho Chehab
2018-04-16 16:37 ` [PATCH 7/9] media: atomisp-gc0310: return errors at gc0310_init() Mauro Carvalho Chehab
2018-04-16 16:37 ` [PATCH 8/9] media: atomisp-mt9m114: remove dead data Mauro Carvalho Chehab
2018-04-16 16:37 ` [PATCH 9/9] media: atomisp-mt9m114: comment out unused stuff Mauro Carvalho Chehab
2018-04-26  8:20 ` [PATCH 0/9] Do some atomisp cleanups Sakari Ailus

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).