>From [email protected] Thu Mar  5 11:34:04 2009
Message-Id: <[email protected]>
References: <[email protected]>
User-Agent: quilt/0.46-1
Date: Thu, 05 Mar 2009 11:33:36 +0800
From: Werner Almesberger <[email protected]>
To: [email protected]
Cc: Werner Almesberger <[email protected]>
Subject: [PATCH 10/14] Fix Samsung S5K4BA camera driver.
Content-Disposition: inline; filename=fix-s5k4.patch

This patch makes the Samsung S5K4BA driver work in 2.6.29 and also solves
a few minor issues, such as trailing whitespace.

Signed-off-by: Werner Almesberger <[email protected]>

---

Index: cam/drivers/media/video/samsung/4xa_sensor.c
===================================================================
--- cam.orig/drivers/media/video/samsung/4xa_sensor.c   2009-03-04 
20:09:52.000000000 +0800
+++ cam/drivers/media/video/samsung/4xa_sensor.c        2009-03-04 
20:07:00.000000000 +0800
@@ -102,16 +102,13 @@
 
 static unsigned short ignore[] = { I2C_CLIENT_END };
 static unsigned short normal_addr[] = { (CAM_ID >> 1), I2C_CLIENT_END };
-static unsigned short *forces[] = { NULL };
+static const unsigned short *forces[] = { NULL };
 
 static struct i2c_client_address_data addr_data = {
-      normal_i2c:normal_addr,
-      /* normal_i2c_range:ignore, */
-      probe:ignore,
-      /* probe_range:ignore, */
-      ignore:ignore,
-      /* ignore_range:ignore, */
-      forces:forces,
+      .normal_i2c      = normal_addr,
+      .probe           = ignore,
+      .ignore          = ignore,
+      .forces          = forces,
 };
 
 
@@ -171,13 +168,13 @@
        if (!c)
                return -ENOMEM;
 
-       memset(c, 0, sizeof(struct i2c_client));        
+       memset(c, 0, sizeof(struct i2c_client));
 
        strcpy(c->name, "S5K4XA");
        c->addr = addr;
        c->adapter = adap;
        c->driver = &sensor_driver;
-       c->data = &data;
+       i2c_set_clientdata(c, &data);
        data.sensor = c;
 
        s3c_camif_register_sensor(c);
@@ -346,4 +343,3 @@
 MODULE_AUTHOR("Jinsung, Yang <[email protected]>");
 MODULE_DESCRIPTION("I2C Client Driver For FIMC V4L2 Driver");
 MODULE_LICENSE("GPL");
-
Index: cam/drivers/media/video/samsung/4xa_sensor.h
===================================================================
--- cam.orig/drivers/media/video/samsung/4xa_sensor.h   2009-03-04 
20:09:52.000000000 +0800
+++ cam/drivers/media/video/samsung/4xa_sensor.h        2009-03-04 
20:07:00.000000000 +0800
@@ -168,10 +168,10 @@
        {0xfc,0x00},
        {0x6c,0xb0},    // AE target
        {0x6d,0x00},
-       
+
        {0xfc,0x20},
        {0x16,0x5a},    // for Prevating AE Hunting
-       
+
        {0xfc,0x00},
        {0x78,0x6a},    // AGC Max
        {0xfc,0x20},
@@ -186,10 +186,10 @@
 
        {0xfc,0x07},
        {0x11,0x02},    // AWB G Gain offset
-       
+
        {0xfc,0x07},
        {0x3e,0x0a},    // AWB Cut R max
-       
+
        {0xfc,0x01},
        {0xc8,0xd0},    // AWB Y Max e0  Y°ªÀÌ ¾î´À ÀÌ»óÀ϶§ ±× ÀÌ»ó°ªÀ» 
©¶ó³»´Â ¼¼ÆÃ°ª
        {0xfc,0x00},
@@ -203,12 +203,12 @@
        {0x32,0x04},    // AWB moving average 8 frame
        {0x81,0x10},    // AWB G gain suppress Disable
        {0xbc,0xf0},
-       
+
        {0x29,0x04},    // Y level H
        {0x2a,0x00},    // Y level L
        {0x2b,0x03},    // color level H
        {0x2c,0xc8},    // color level L
-       
+
        {0xfc,0x07},
        {0x37,0x00},    // Flicker Add for 32Mhz
        {0xfc,0x00},
@@ -217,11 +217,11 @@
 
        {0xfc,0x20},
        {0x02,0x02},    // Flicker Dgain Mode
-       
+
        {0xfc,0x00},
        //{0x23,0x40},  // Mirror Option
-       {0x62,0x0a},    // Mirror Option                
-       
+       {0x62,0x0a},    // Mirror Option
+
        {0xfc,0x02},
        {0x4e,0x00},    // IO current 8mA set
        {0x4e,0x00},    // IO current 8mA set
@@ -231,7 +231,7 @@
        {0x4f,0x0a},    // IO current 48mA set
        {0x4f,0x0a},    // IO current 48mA set
        {0x4f,0x0a},    // IO current 48mA set
-       
+
        {0xfc,0x01},
        {0x0c,0x03},    // Full YC Enable
        //{0x0c,03},    // Full YC Enable
@@ -261,7 +261,7 @@
        {0x5D,0xFF},
        {0x5E,0xD8},
        {0x5F,0xFC},
-       {0x60,0x2E},    
+       {0x60,0x2E},
        {0x61,0x07},
        {0x62,0xFA},
 
@@ -277,7 +277,7 @@
        {0x49,0x0a},    // positive gain AGC MAX
        {0x4d,0x18},    // negative gain AGC MIN
        {0x51,0x0a},    // negative gain AGC MAX
-       
+
        {0xfc,0x05},
        {0x34,0x20},    // APTCLP
        {0x35,0x09},    // APTSC
@@ -290,7 +290,7 @@
        {0x47,0x40},    // LLREF
        {0x48,0x0c},
        {0x49,0x31},    // CSSEL  EGSEL  CS_DLY
-       
+
        {0x40,0x41},    // Y delay
 
        //==========================================================
@@ -323,14 +323,14 @@
        {0x82,0xFF},
 
        {0x83,0xC0},
-       {0x84,0xCF},            
-       {0x85,0xDA},            
+       {0x84,0xCF},
+       {0x85,0xDA},
        {0x86,0xFC},
 
        {0x87,0x08},    //G
        {0x88,0x12},
-       {0x89,0x42},    
-       {0x8A,0xBA},    
+       {0x89,0x42},
+       {0x8A,0xBA},
        {0x8B,0x00},
 
        {0x8C,0x75},
@@ -359,7 +359,7 @@
        {0x9F,0x05},    //B
        {0xA0,0x18},
        {0xA1,0x42},
-       {0xA2,0xd7},            
+       {0xA2,0xd7},
        {0xA3,0x00},
 
        {0xA4,0xB6},
@@ -397,7 +397,7 @@
        {0x4d,0x3c},
        {0x4e,0xf0},
        {0x4f,0x0c},
-       
+
        {0x50,0x34},    // 3000K
        {0x51,0x34},
        {0x52,0xf4},
@@ -406,7 +406,7 @@
        {0x55,0x3c},
        {0x56,0xf0},
        {0x57,0x0c},
-       
+
        {0x58,0x34},    // 5100K
        {0x59,0x30},
        {0x5a,0x00},
@@ -420,13 +420,13 @@
        //==========================================================
        {0xfc,0x00},
        {0x7e,0xf4},
-       
+
        //==========================================================
        //      BPR
        //==========================================================
        {0xfc,0x01},
        {0x3d,0x10},
-       
+
        {0xfc,0x0b},
        {0x0b,0x00},    // ISP BPR On start
        {0x0c,0x20},    // Th13 AGC Min
@@ -454,8 +454,8 @@
        //      GR/GB CORRECTION
        //==========================================================
        {0xfc,0x01},
-       {0x45,0x0c},    
-       
+       {0x45,0x0c},
+
        {0xfc,0x0b},
        {0x21,0x00},    // start AGC
        {0x22,0x18},    // AGCMIN
@@ -464,7 +464,7 @@
        {0x25,0x30},    // G Th AGCMAX
        {0x26,0x0d},    // RB Th AGCMIN
        {0x27,0x30},    // RB Th AGCMAX
-       
+
        //==========================================================
        //      NR
        //==========================================================
@@ -472,9 +472,9 @@
        {0x4C,0x01},    // NR Enable
        {0x49,0x15},    // Sig_Th Mult
        {0x4B,0x0A},    // Pre_Th Mult
-       
+
        {0xfc,0x0b},
-       {0x28,0x00},    // NR start AGC 
+       {0x28,0x00},    // NR start AGC
        {0x29,0x00},    // SIG Th AGCMIN H
        {0x2a,0x14},    // SIG Th AGCMIN L
        {0x2b,0x00},    // SIG Th AGCMAX H
@@ -487,13 +487,13 @@
        {0x32,0xa0},    // POST Th AGCMIN L
        {0x33,0x01},    // POST Th AGCMAX H
        {0x34,0x10},    // POST Th AGCMAX L
-       
+
        //==========================================================
        //      1D-Y/C-SIGMA-LPF
        //==========================================================
        {0xfc,0x01},
-       {0x05,0xc0},    
-       
+       {0x05,0xc0},
+
        {0xfc,0x0b},
        {0x35,0x00},    // YLPF start AGC
        {0x36,0x40},    // YLPF01 AGCMIN
@@ -522,7 +522,7 @@
        {0x08,0x58},    // Color suppress AGC MIN
        {0x09,0x03},    // Color suppress MIN H
        {0x0a,0x80},    // Color suppress MIN L
-       
+
        //==========================================================
        //      SHADING
        //==========================================================
@@ -832,10 +832,10 @@
        {0xdb,0xac},
        {0xdc,0x01},    // tc(5100K)
        {0xdd,0x30},    // default eeh
-       
+
        {0xfc,0x00},
        {0x81,0x10},    // xshading tem
-       
+
        {0xfc,0x1b},
        {0x80,0x01},    // X-Shading On
 
@@ -844,7 +844,7 @@
        //==========================================================
        {0xfc,0x00},
        {0x03,0x4b},    // AE Suppress On
-       
+
        {0xfc,0x06},
        {0x01,0x35},    // UXGA AE Window
        {0x03,0xc2},
@@ -858,7 +858,7 @@
        {0x3B,0x5A},
        {0x3D,0x10},    // 1c
        {0x3F,0x44},
-       
+
        {0xfc,0x20},
        {0x60,0x11},
        {0x61,0x11},
@@ -927,7 +927,7 @@
        {0xAE,0x2C},
        {0xAF,0x19},
        {0xB0,0x0F},
-       
+
        {0x94,0x3C},
        {0x95,0xCC},
        {0x96,0x5C},
@@ -948,13 +948,13 @@
        {0xEB,0x00},
        {0xEC,0x00},
        {0xEE,0x97},
-       
+
        //=================================
        // Pixel Filter Setting
        //=================================
        {0xFC,0x07},
        {0x95,0x8F},
-       
+
        {0xfc,0x01},
        {0xD3,0x4B},
        {0xD4,0x00},
@@ -1043,12 +1043,12 @@
        {0xb2,0x03},
        {0xb3,0x00},
        {0xb4,0xc1},
-       
+
        {0xb5,0x00},    // Cloudy
        {0xb6,0x05},
        {0xb7,0xc9},
        {0xb9,0x81},
-       
+
        {0xd7,0x00},    // Shade
        {0xd8,0x35},
        {0xd9,0x20},
@@ -1060,7 +1060,7 @@
        {0xfc,0x00},
        {0x79,0xF9},
        {0x7A,0x02},    // Global AWB gain off{0xet
-       
+
        {0xfc,0x22},
        {0x58,0xf6},    // D65 R Off{0xet
        {0x59,0xff},    // D65 B Off{0xet
@@ -1074,7 +1074,7 @@
        {0x61,0xfb},    // A B Off0xet
        {0x62,0xfb},    // 2000K R Off0xet
        {0x63,0xfb},    // 2000K B Off0xet
-       
+
        {0xde,0x00},    // LARGE OBJECT BUG FIX
        {0xf0,0x6a},    // RB Ratio
        //=================================
@@ -1265,7 +1265,7 @@
        {0x5f, 0xfc},   //fd    //FC  FB
        {0x60, 0x96},   //5b    //23  B1
        {0x61, 0x07},   //07    //08  08
-       {0x62, 0xaf},   //24    //64  FD        
+       {0x62, 0xaf},   //24    //64  FD
 
 //==========================================================
 //     EDGE ENHANCEMENT
@@ -1560,7 +1560,7 @@
        {0x1e, 0x00},
        {0x1f, 0x20},
 
-//==========================================================   
+//==========================================================
 //     GR/GB CORRECTION
 //==========================================================
        {0xfc, 0x01},
@@ -1602,7 +1602,7 @@
 //==========================================================
        {0xfc, 0x01},
        {0x05, 0xC0},
-       
+
        {0xfc, 0x0b},
        {0x35, 0x00},
        {0x36, 0x40},
@@ -1642,22 +1642,22 @@
 
        {0x03, 0x04},
        {0x04, 0xB0},
-       
+
        {0x05, 0x03},
        {0x06, 0x20},
        {0x07, 0x02},
        {0x08, 0x91},
-       
+
        {0x09, 0x03},
        {0x0A, 0x25},
        {0x0B, 0x02},
        {0x0C, 0x64},
-       
+
        {0x0D, 0x03},
        {0x0E, 0x0F},
        {0x0F, 0x02},
        {0x10, 0x4E},
-       
+
        {0x1D, 0x80},
        {0x1E, 0x00},
        {0x1F, 0x80},
@@ -1666,7 +1666,7 @@
        {0x24, 0x52},
        {0x21, 0x79},
        {0x22, 0xE6},
-       
+
        {0x25, 0x80},
        {0x26, 0x00},
        {0x27, 0x80},
@@ -1675,7 +1675,7 @@
        {0x2C, 0x48},
        {0x29, 0x81},
        {0x2A, 0x48},
-       
+
        {0x2D, 0x80},
        {0x2E, 0x00},
        {0x2F, 0x80},
@@ -1701,7 +1701,7 @@
        {0x42, 0x6A},
        {0x43, 0x02},
        {0x44, 0xD3},
-       
+
        {0x45, 0x01},
        {0x46, 0x00},
        {0x47, 0x01},
@@ -1846,7 +1846,7 @@
        {0xCB, 0x49},
        {0xCC, 0x15},
        {0xCD, 0xBA},
-       
+
        {0x00, 0x02},// shading on
 
 //==========================================================
@@ -1933,13 +1933,13 @@
        {0xD3, 0x84},
        {0xD4, 0x06},
        {0xD5, 0xCA},
-       
+
        {0xfc, 0x0b},
        {0xda, 0x00},
        {0xdb, 0x9c},
        {0xdc, 0x00},
        {0xdd, 0xd1},
-       
+
        {0xfc, 0x1b},
        {0x80, 0x01},
 
@@ -1957,7 +1957,7 @@
        {0x33, 0x61},
        {0x35, 0x28},
        {0x37, 0x5c},
-       
+
        {0xfc, 0x20},
        {0x60, 0x11},
        {0x61, 0x11},
@@ -1989,18 +1989,18 @@
 //==========================================================
        {0xfc, 0x00},
        {0x7b, 0x00},
-       
+
        {0xfc, 0x07},
        {0x3c, 0x10},
        {0x3d, 0x10},
        {0x3e, 0x10},
        {0x3f, 0x10},
-       
+
        {0xfc, 0x01},
        {0xc8, 0xe0},
        {0xfc, 0x00},
        {0x3e, 0x10},
-       
+
        {0xfc, 0x00},
        {0x3e, 0x10},
        {0x3d, 0x04},
@@ -2010,7 +2010,7 @@
        {0xfc, 0x22},
        {0x8c, 0x04},
        {0x8d, 0x06},
-       
+
        {0xfc, 0x07},
        {0x97, 0x00},
 
@@ -2038,7 +2038,7 @@
 //=================================
        {0xfc, 0x22},
        {0xA8, 0xFF},
-       
+
        {0xA0, 0x01},
        {0xA1, 0x38},
        {0xA2, 0x0E},
@@ -2074,7 +2074,7 @@
        {0xEB, 0xD2},
        {0xEC, 0xD9},
        {0xEE, 0xA6},
-       
+
        {0xfc, 0x00},
        {0x8a, 0x02},
 
@@ -2083,7 +2083,7 @@
 //=================================
        {0xFC, 0x07},
        {0x95, 0xCF},
-       
+
        {0xfc, 0x01},
        {0xd3, 0x4f},
        {0xd4, 0x00},
@@ -2174,12 +2174,12 @@
        {0xb2, 0x02},
        {0xb3, 0x00},
        {0xb4, 0xC1},
-       
+
        {0xb5, 0x00},
        {0xb6, 0x02},
        {0xb7, 0x00},
        {0xb9, 0xc2},
-       
+
        {0xd7, 0x00},
        {0xd8, 0x35},
        {0xd9, 0x20},
@@ -2191,10 +2191,10 @@
        {0xfc, 0x00},
        {0x79, 0xf8},
        {0x7a, 0x08},
-       
+
        {0xfc, 0x07},
        {0x11, 0x01},
-       
+
        {0xfc, 0x22},
        {0x58, 0xf8},
        {0x59, 0x00},
@@ -2208,7 +2208,7 @@
        {0x61, 0xf8},
        {0x62, 0x00},
        {0x63, 0xf0},
-       
+
        {0xde, 0x00},
        {0xf0, 0x6a},
 
@@ -2243,13 +2243,13 @@
        {0x00, 0x90},
        {0xfc, 0x02},
        {0x03, 0x20},
-       
+
        {0xfc, 0x20},
        {0x0f, 0x00},
-       
+
        {0xfc, 0x00},
        {0x02, 0x09},
-       
+
        {0xfc, 0x01},
        //{0x02, 0x00},
        {0x02, 0x02},//Donghoon
@@ -2300,9 +2300,9 @@
        {0x9F,0x05},            //B
        {0xA0,0x18},
        {0xA1,0x42},
-       {0xA2,0xd7},            
+       {0xA2,0xd7},
        {0xA3,0x00},
-       
+
        {0xA4,0xB6},
        {0xA5,0x3b},
        {0xA6,0x88},
@@ -2374,4 +2374,3 @@
 
 
 #endif
-
Index: cam/drivers/media/video/samsung/Makefile
===================================================================
--- cam.orig/drivers/media/video/samsung/Makefile       2009-03-04 
20:09:52.000000000 +0800
+++ cam/drivers/media/video/samsung/Makefile    2009-03-04 20:07:00.000000000 
+0800
@@ -1,8 +1,4 @@
-#
-# Samsung CIS camera module
-
-obj-$(CONFIG_VIDEO_SAMSUNG_S5K3AA) += 3xa_sensor.o
-obj-$(CONFIG_VIDEO_SAMSUNG_S5K3BA) += 3xa_sensor.o
-obj-$(CONFIG_VIDEO_SAMSUNG_S5K4BA) += 4xa_sensor.o
-obj-$(CONFIG_VIDEO_SAMSUNG_S5K53BA) += 53bea_sensor.o
-obj-$(CONFIG_VIDEO_ADV7180) += adv7180.o
+#
+# Samsung CIS camera module
+#
+obj-$(CONFIG_VIDEO_SAMSUNG_S5K4BA) += 4xa_sensor.o

-- 


Reply via email to