All pastes #1719910 Raw Edit

phh

public text v1 · immutable
#1719910 ·published 2009-12-18 23:22 UTC
rendered paste body
diff --git a/arch/arm/mach-msm/board-htcblackstone-panel.c b/arch/arm/mach-msm/board-htcblackstone-panel.cindex 827c1fb..5007ccb 100644--- a/arch/arm/mach-msm/board-htcblackstone-panel.c+++ b/arch/arm/mach-msm/board-htcblackstone-panel.c@@ -349,10 +349,67 @@ static void htcraphael_process_mddi_table(struct msm_mddi_client_data *client_da  static struct vreg *vreg_mddi_1v5; static struct vreg *vreg_lcm_2v85;+extern void micropklt_lcd_ctrl(int);  static void htcraphael_mddi_power_client(struct msm_mddi_client_data *client_data, 				    int on) {++	struct msm_dex_command dex;+	int i;+	+	printk("htcdiamond_mddi_power_client(%d)\n", on);+	+	if(on) {+		msm_gpio_set_function(DEX_GPIO_CFG(RAPH100_LCD_PWR1,0,GPIO_OUTPUT,GPIO_NO_PULL,GPIO_2MA,1));+		micropklt_lcd_ctrl(1);+		dex.cmd=PCOM_PMIC_REG_ON;+		dex.has_data=1;+		dex.data=0x800;+		msm_proc_comm_wince(&dex,0);+		mdelay(40);++		msm_gpio_set_function(DEX_GPIO_CFG(0x3c,0,GPIO_OUTPUT,GPIO_NO_PULL,GPIO_2MA,1));+		msm_gpio_set_function(DEX_GPIO_CFG(0x3d,0,GPIO_OUTPUT,GPIO_NO_PULL,GPIO_2MA,1));+		gpio_set_value(0x3d,0);+		udelay(10);+		gpio_set_value(0x3d,1);+		gpio_set_value(31, 1);+		udelay(10);+		msm_gpio_set_function(DEX_GPIO_CFG(0x3d,0,GPIO_INPUT,GPIO_NO_PULL,GPIO_2MA,0));+		for(i=0;i<10;i++) {+			gpio_set_value(0x3c,0);+			udelay(10);+			gpio_set_value(0x3c,1);+			udelay(10);+		}+		msm_gpio_set_function(DEX_GPIO_CFG(0x3c,1,GPIO_OUTPUT,GPIO_NO_PULL,GPIO_2MA,1));+		msm_gpio_set_function(DEX_GPIO_CFG(0x3d,1,GPIO_OUTPUT,GPIO_NO_PULL,GPIO_2MA,1));+		msm_gpio_set_function(DEX_GPIO_CFG(0x1b,1,GPIO_OUTPUT,GPIO_NO_PULL,GPIO_2MA,0));++		micropklt_lcd_ctrl(2);+		dex.data=0x2000;+		msm_proc_comm_wince(&dex,0);+		mdelay(50);+		msm_gpio_set_function(DEX_GPIO_CFG(RAPH100_LCD_PWR2,0,GPIO_OUTPUT,GPIO_NO_PULL,GPIO_2MA,1));+		mdelay(200);+	} else {+		gpio_set_value(RAPH100_LCD_PWR2, 0);+		mdelay(1);+		dex.cmd=PCOM_PMIC_REG_OFF;+		dex.has_data=1;+		dex.data=0x2000;+		msm_proc_comm_wince(&dex,0);+		mdelay(7);+		msm_gpio_set_function(DEX_GPIO_CFG(0x1b,0,GPIO_OUTPUT,GPIO_NO_PULL,GPIO_2MA,0));+		dex.data=0x800;+		micropklt_lcd_ctrl(5);+		msm_proc_comm_wince(&dex,0);+		mdelay(3);+		gpio_set_value(RAPH100_LCD_PWR1, 0);+		gpio_set_value(31, 0);+		mdelay(10);+	} 	printk("htcraphael_mddi_power_client(%d)\n", on); #if 0  #warning htcraphael_mddi_power_client not yet implementeddiff --git a/arch/arm/mach-msm/board-htcblackstone.c b/arch/arm/mach-msm/board-htcblackstone.cindex 6bb94e3..17b5063 100644--- a/arch/arm/mach-msm/board-htcblackstone.c+++ b/arch/arm/mach-msm/board-htcblackstone.c@@ -334,7 +334,7 @@ static struct platform_device *devices[] __initdata = { 	&msm_device_htc_battery, 	&gpio_keys, 	&blac_snd,-	&raphael_gps,+	//&raphael_gps, };  extern struct sys_timer msm_timer;diff --git a/arch/arm/mach-msm/board-htcdiamond.c b/arch/arm/mach-msm/board-htcdiamond.cindex f427294..2fedb13 100644--- a/arch/arm/mach-msm/board-htcdiamond.c+++ b/arch/arm/mach-msm/board-htcdiamond.c@@ -146,17 +146,85 @@ static struct msm_hsusb_platform_data msm_hsusb_pdata_adb = { 	.num_products = 0, }; ++#define PCOM_GPIO_CFG(a,b,c,d,e) DEX_GPIO_CFG(a,b,c,d,e,0)+static struct msm_gpio_config camera_off_gpio_table[] = {+	/* CAMERA */+	PCOM_GPIO_CFG(2, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT2 */+	PCOM_GPIO_CFG(3, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT3 */+	PCOM_GPIO_CFG(4, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT4 */+	PCOM_GPIO_CFG(5, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT5 */+	PCOM_GPIO_CFG(6, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT6 */+	PCOM_GPIO_CFG(7, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT7 */+	PCOM_GPIO_CFG(8, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT8 */+	PCOM_GPIO_CFG(9, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT9 */+	PCOM_GPIO_CFG(10, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT10 */+	PCOM_GPIO_CFG(11, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT11 */+	PCOM_GPIO_CFG(12, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* PCLK */+	PCOM_GPIO_CFG(13, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* HSYNC_IN */+	PCOM_GPIO_CFG(14, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* VSYNC_IN */+	PCOM_GPIO_CFG(15, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* MCLK */+};++static struct msm_gpio_config camera_on_gpio_table[] = {+	/* CAMERA */+	PCOM_GPIO_CFG(2, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT2 */+	PCOM_GPIO_CFG(3, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT3 */+	PCOM_GPIO_CFG(4, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT4 */+	PCOM_GPIO_CFG(5, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT5 */+	PCOM_GPIO_CFG(6, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT6 */+	PCOM_GPIO_CFG(7, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT7 */+	PCOM_GPIO_CFG(8, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT8 */+	PCOM_GPIO_CFG(9, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT9 */+	PCOM_GPIO_CFG(10, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT10 */+	PCOM_GPIO_CFG(11, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT11 */+	PCOM_GPIO_CFG(12, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_16MA), /* PCLK */+	PCOM_GPIO_CFG(13, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* HSYNC_IN */+	PCOM_GPIO_CFG(14, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* VSYNC_IN */+	PCOM_GPIO_CFG(15, 1, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_16MA), /* MCLK */+};++static void config_gpio_table(struct msm_gpio_config *table, int len)+{+	int n;+	struct msm_gpio_config id;+	for(n = 0; n < len; n++) {+		id = table[n];+		msm_gpio_set_function( id );+	}+}++static void config_camera_on_gpios(void)+{+	config_gpio_table(camera_on_gpio_table,+		ARRAY_SIZE(camera_on_gpio_table));+}++static void config_camera_off_gpios(void)+{+	config_gpio_table(camera_off_gpio_table,+		ARRAY_SIZE(camera_off_gpio_table));+}++static struct msm_camera_sensor_info msm_camera_device = {+	.sensor_reset	= RAPH100_CAM1_RST,+	.sensor_pwd	= RAPH100_CAM_PWR1,+	//.vcm_pwd	= VCM_PWDN;+	.config_gpio_on = config_camera_on_gpios,+	.config_gpio_off = config_camera_off_gpios,+	.sensor_name	= "mt9t013",+	.flash_type	= MSM_CAMERA_FLASH_NONE,+};+ static struct i2c_board_info i2c_devices[] = { 	{ 		// LED & Backlight controller 		I2C_BOARD_INFO("microp-klt", 0x66), 	},-/* 	{ 		I2C_BOARD_INFO("mt9t013", 0x6c>>1),-		// .irq = TROUT_GPIO_TO_INT(TROUT_GPIO_CAM_BTN_STEP1_N),+		.platform_data =  	},-*/ 	{ 		// Raphael NaviPad (cy8c20434) 		I2C_BOARD_INFO("raph_navi_pad", 0x62),@@ -200,6 +268,14 @@ static struct android_pmem_platform_data android_pmem_gpu1_pdata = { 	.cached = 0, }; +static struct android_pmem_platform_data android_pmem_camera_pdata = {+	.name = "pmem_camera",+	.start = MSM_PMEM_CAMERA_BASE,+	.size = MSM_PMEM_CAMERA_SIZE,+	.no_allocator = 1,+	.cached = 0,+};+ static struct platform_device android_pmem_device = { 	.name = "android_pmem", 	.id = 0,@@ -224,6 +300,12 @@ static struct platform_device android_pmem_gpu1_device = { 	.dev = { .platform_data = &android_pmem_gpu1_pdata }, }; +static struct platform_device android_pmem_camera_device = {+	.name = "android_pmem",+	.id = 3,+	.dev = { .platform_data = &android_pmem_camera_pdata },+};+ static smem_batt_t msm_battery_pdata = { 	.gpio_battery_detect = RAPH100_BAT_IRQ, 	.gpio_charger_enable = RAPH100_CHARGE_EN_N,@@ -348,6 +430,14 @@ static struct platform_device msm_device_buttons = { 		.platform_data  = &button_data,         } };++static struct platform_device diamond_camera = {+	.name		= "camera",+	.dev		= { +		.platform_data = &msm_camera_device,+	},+};+ static struct pwr_sink diamond_pwrsink_table[] = {         {                 .id     = PWRSINK_AUDIO,@@ -465,6 +555,8 @@ static struct platform_device *devices[] __initdata = { 	&android_pmem_adsp_device, 	&android_pmem_gpu0_device, 	&android_pmem_gpu1_device,+	//&android_pmem_camera_device,+	&diamond_camera, 	&raphael_rfkill, 	&msm_device_smd, 	&msm_device_nand,@@ -479,7 +571,7 @@ static struct platform_device *devices[] __initdata = { #endif 	&msm_device_htc_battery, 	&raphael_snd,-//	&raphael_gps, disable until it works+	&raphael_gps,// disable until it works 	&msm_device_buttons, #ifdef CONFIG_HTC_HEADSET 	&diamond_h2w,diff --git a/arch/arm/mach-msm/board-htcdiamond.h b/arch/arm/mach-msm/board-htcdiamond.hindex c2881d0..987937d 100644--- a/arch/arm/mach-msm/board-htcdiamond.h+++ b/arch/arm/mach-msm/board-htcdiamond.h@@ -30,11 +30,13 @@ #define MSM_FB_BASE		MSM_PMEM_ADSP_BASE + MSM_PMEM_ADSP_SIZE #define MSM_FB_SIZE		0x200000 /* 2mb */ +#define MSM_PMEM_CAMERA_BASE      MSM_FB_BASE + MSM_FB_SIZE+#define MSM_PMEM_CAMERA_SIZE      0x100000 /* 1mb */+ /* Define the EBI layout */ #define MSM_LINUX_BASE          MSM_EBI_BASE #define MSM_LINUX_SIZE          0x6b00000 /* 107mb */ - #define MSM_RAM_CONSOLE_BASE	0x00800000 #define MSM_RAM_CONSOLE_SIZE	0x00100000 // 1M at 0x00800000 @@ -134,6 +136,7 @@  #define RAPH100_HP_PWR		89 +#define RAPH100_CAM_PWD		91 #define RAPH100_CAM1_RST	92 #define RAPH100_CAM2_RST	93 #define RAPH100_NAVI_IRQ	94diff --git a/arch/arm/mach-msm/board-htcraphael-gps.c b/arch/arm/mach-msm/board-htcraphael-gps.cindex fc5b7c6..6aa87b2 100644--- a/arch/arm/mach-msm/board-htcraphael-gps.c+++ b/arch/arm/mach-msm/board-htcraphael-gps.c@@ -78,7 +78,14 @@ pdsm_get_position (void)         struct rpc_request_hdr hdr;          uint32_t msg[28];      } msg;++    struct+  {+        struct rpc_reply_hdr hdr;+         uint32_t msg[90];+     } rep;     int rc;+    int i;      msg.msg[0] = cpu_to_be32 (0xa); /* unknown */     msg.msg[1] = cpu_to_be32 (0x0);@@ -109,10 +116,15 @@ pdsm_get_position (void)     msg.msg[26] = cpu_to_be32 (SESSION_TIMEOUT);     msg.msg[27] = cpu_to_be32 (PD_CLIENT_ID);     rc =-    msm_rpc_call (ept, GET_POSITION, &msg,-		  (28 * 4) + sizeof (struct rpc_request_hdr), 15 * HZ);+    msm_rpc_call_reply (ept, GET_POSITION, &msg,+		  (28 * 4) + sizeof (struct rpc_request_hdr), &rep, sizeof(rep),15 * HZ);     if (rc < 0)         printk ("ERROR: %s:%d %d\n", __func__, __LINE__, rc);+    printk(KERN_INFO"get_position()={ hdr: {%d:%d:%d}\n", rep.hdr.xid, rep.hdr.type, rep.hdr.reply_stat);+    for(i=0;i<(rc-sizeof(struct rpc_reply_hdr))/4;++i) {+         printk(KERN_INFO "msg[%d]=%d\n", i, rep.msg[i]);+    }+      } @@ -222,8 +234,7 @@ gps_enable (void) #error "Unknown AMSS version" #endif     msg.msg[5] = cpu_to_be32 (0xffffffff);-    rc =-    msm_rpc_call_reply (ept, CLIENT_PD_REG, &msg, 6*4 + sizeof (struct rpc_request_hdr),+    rc = msm_rpc_call_reply (ept, CLIENT_PD_REG, &msg, 6*4 + sizeof (struct rpc_request_hdr), 		   &rep, sizeof(rep), 5 * HZ);     if (rc < 0)         printk ("ERROR: %s:%d %d\n", __func__, __LINE__, rc);@@ -359,126 +370,6 @@ struct gps_kernel_state static struct gps_kernel_state global_state; static struct gps_kernel_state *state = &global_state; -static void-handle_sat_data (int last, int index, int num, struct sat_info sats[])-{-    int i;--    spin_lock (&state->lock);--    for (i = 0; i < num; i++)-    {-          state->user_state.sat_state[i + index].sat_no-	           = sats[i].prn;-          state->user_state.sat_state[i + index].signal_strength-	           = 0;-      }--    if (last)-    {-          for (i = i + index; i < MAX_SATELLITES; i++)-	{-	        state->user_state.sat_state[i].sat_no = 0;-	        state->user_state.sat_state[i].signal_strength = 0;-	    }--          atomic_inc (&state->updates);-          wake_up (&state->wq);-      }--    spin_unlock (&state->lock);-}--static void-handle_pos_data (int32_t lat, int32_t lon, uint32_t time, float altitude,-		 float accuracy)-{--    				/* Drop the data is we're supposed to be off */-      if (!state->state)-        return;--    spin_lock (&state->lock);--    state->user_state.time = time;-    state->user_state.lat  =lat;-    state->user_state.lng  =lon;-                    printk ("time=%d lat=%d lng=%d\n",-					      state->user_state.time,-					      state->user_state.lat,-					      state->user_state.lng);--    atomic_inc (&state->updates);-    wake_up (&state->wq);--    spin_unlock (&state->lock);-}--static void-handle_bearing_speed (float bearing, float speed)-{-    				//don't do anything.  Need to extend the userspace interface :(-}--/* This thread exists to read the data that comes from AMSS */-static int-gps_rpc_thread (void *data)-{-    struct msm_rpc_endpoint *ept = (struct msm_rpc_endpoint *) data;-    struct rpc_request_hdr *hdr = NULL;--    				/* We're not going to do anything but ack.-				        * Kaiser data comes form NMEA, currently */-      while (!kthread_should_stop ())-    {-#if 0-          msm_rpc_read (ept, (void **) &hdr, -1, 15*HZ);--          rpc_ack (be32_to_cpu (hdr->xid));-          kfree (hdr);-#endif-//       printk("gps_rpc_thread called\n");-      }--    return 0;-}--static int-gps_nmea_thread (void *data)-{-    int fd;-    int count;-    char buf[256];-    struct nmea_state nmea;--#if 0-    fd = sys_open ("/dev/smd27", O_RDONLY, 0);-    if (fd < 0)-        printk ("Unable to open NMEA device %d\n", fd);-    nmea_init (&nmea, NULL, handle_pos_data, handle_sat_data,-		        handle_bearing_speed);-#endif--    while (!kthread_should_stop ())-    {-//          if (state->state == GPS_STATE_ON)-	      pdsm_get_position ();-	      msleep(1000);-#if 0          -      do-	{-	        count = sys_read (fd, buf, sizeof (buf));-	    }-      while (count == -EINTR);-          printk ("NMEA read.  Size %d\n", count);-          nmea_parse (&nmea, buf, count);-#endif-      }--//    sys_close (fd);--    return 0;-}  struct gps_fd_state {@@ -589,31 +480,12 @@ vogue_gps_open (struct inode *inode, struct file *file)     static int thread_started = 0;     struct gps_fd_state *fd_state;     int rc;+    static struct msm_rpc_endpoint *rpc_cb_server_client; -static struct msm_rpc_endpoint *rpc_cb_server_client;      if (!thread_started)     {-          			/* Only do this on the first open.  This is less than ideal */-//	    msm_rpc_register_server (NULL, RPC_PDAPI_CB_PROG, 0); -#if 0-	rpc_cb_server_client = msm_rpc_open();-	if (IS_ERR(rpc_cb_server_client)) {-		rpc_cb_server_client = NULL;-		rc = PTR_ERR(rpc_cb_server_client);-		printk("gps: could not create rpc server (%d)\n", rc);-		return -1;-	}--	rc = msm_rpc_register_server(rpc_cb_server_client,-				     RPC_PDAPI_CB_PROG,-				     0);-	if (rc) {-		printk("gps: could not register callback server (%d)\n", rc);-		return -1;-	}-#endif           ept = msm_rpc_connect (RPC_PDAPI_PROG, 0, MSM_RPC_UNINTERRUPTIBLE);           if (!ept || IS_ERR (ept)) 	{@@ -621,9 +493,8 @@ static struct msm_rpc_endpoint *rpc_cb_server_client; 	        return -1; 	    } -//          kthread_run (gps_rpc_thread, ept, "gps_thread");-//          kthread_run (gps_nmea_thread, ept, "gps_nmea_thread");       }+    gps_enable();      fd_state = kmalloc (sizeof (struct gps_fd_state), GFP_KERNEL);     fd_state->last_read = 0;diff --git a/arch/arm/mach-msm/smd_rpcrouter.c b/arch/arm/mach-msm/smd_rpcrouter.cindex ee2ffb1..f5b0594 100644--- a/arch/arm/mach-msm/smd_rpcrouter.c+++ b/arch/arm/mach-msm/smd_rpcrouter.c@@ -955,22 +955,32 @@ int msm_rpc_call_reply(struct msm_rpc_endpoint *ept, uint32_t proc, 	struct rpc_reply_hdr *reply; 	int rc; +	printk(KERN_INFO "%s:%s:%d\n", __FILE__, __FUNCTION__, __LINE__); 	if (request_size < sizeof(*req)) 		return -ETOOSMALL;+	printk(KERN_INFO "%s:%s:%d\n", __FILE__, __FUNCTION__, __LINE__);  	if (ept->dst_pid == 0xffffffff) 		return -ENOTCONN;+	printk(KERN_INFO "%s:%s:%d\n", __FILE__, __FUNCTION__, __LINE__);  	memset(req, 0, sizeof(*req));+	printk(KERN_INFO "%s:%s:%d\n", __FILE__, __FUNCTION__, __LINE__); 	req->xid = cpu_to_be32(atomic_add_return(1, &next_xid));+	printk(KERN_INFO "%s:%s:%d\n", __FILE__, __FUNCTION__, __LINE__); 	req->rpc_vers = cpu_to_be32(2);+	printk(KERN_INFO "%s:%s:%d\n", __FILE__, __FUNCTION__, __LINE__); 	req->prog = ept->dst_prog;+	printk(KERN_INFO "%s:%s:%d\n", __FILE__, __FUNCTION__, __LINE__); 	req->vers = ept->dst_vers;+	printk(KERN_INFO "%s:%s:%d\n", __FILE__, __FUNCTION__, __LINE__); 	req->procedure = cpu_to_be32(proc);+	printk(KERN_INFO "%s:%s:%d\n", __FILE__, __FUNCTION__, __LINE__);  	rc = msm_rpc_write(ept, req, request_size); 	if (rc < 0) 		return rc;+	printk(KERN_INFO "%s:%s:%d\n", __FILE__, __FUNCTION__, __LINE__);  	for (;;) { 		rc = msm_rpc_read(ept, (void*) &reply, -1, timeout);diff --git a/drivers/i2c/chips/mt9t013.c b/drivers/i2c/chips/mt9t013.cindex a0d110c..477550e 100755--- a/drivers/i2c/chips/mt9t013.c+++ b/drivers/i2c/chips/mt9t013.c@@ -41,7 +41,8 @@  static const uint32_t fps_divider = 1; -#define AF_I2C_ID	0x18  /* actuator's slave address */+//#define AF_I2C_ID	0x18  /* actuator's slave address */+#define AF_I2C_ID	0x38  //TODO:what is it ?  static struct i2c_client *pclient; @@ -176,16 +177,28 @@ DECLARE_MUTEX(sem); static struct msm_camera_device_platform_data  *cam;  #define out_dword(addr, val) \+	printk(KERN_INFO "mt9t013: writing %x to %x\n", val, addr); \ 	(*((volatile unsigned long  *)(addr)) = ((unsigned long)(val)))  #define out_dword_masked_ns(io, mask, val, current_reg_content)	    \   (void) out_dword(io, ((current_reg_content & (uint32_t)(~(mask))) | \ 			 ((uint32_t)((val) & (mask))))) -#define __inpdw(port) (*((volatile uint32_t *) (port)))+/*+#define __inpdw(port) \+	printk(KERN_INFO "mt9t013: reading %x\n", port); \+	(*((volatile uint32_t *) (port)))+*/+uint32_t __inpdw(int port) {+	printk(KERN_INFO "mt9t013: reading %x\n", port);+	uint32_t val=(*((volatile uint32_t *) (port)));+	printk(KERN_INFO "mt9t013: succeeded\n", port);+	return val;+} #define in_dword_masked(addr, mask) (__inpdw(addr) & (uint32_t)mask ) -#define HWIO_MDDI_CAMIF_CFG_ADDR MSM_MDC_BASE+int camif_cfg_addr=0;+#define HWIO_MDDI_CAMIF_CFG_ADDR camif_cfg_addr //MSM_MDC_BASE #define HWIO_MDDI_CAMIF_CFG_RMSK 0x1fffff #define HWIO_MDDI_CAMIF_CFG_IN \   in_dword_masked(HWIO_MDDI_CAMIF_CFG_ADDR, HWIO_MDDI_CAMIF_CFG_RMSK)@@ -586,11 +599,13 @@ static int mt9t013_release(struct inode *ip, struct file *fp)  static int mt9t013_camif_pad_reg_reset(void) {+	printk(KERN_ERR "ok:%s:%d\n", __FILE__, __LINE__); 	int rc = clk_select(1); 	if(rc < 0) { 		printk(KERN_ERR "mt9t013 error switching to internal clock\n"); 		return rc; 	}+	printk(KERN_ERR "ok:%s:%d\n", __FILE__, __LINE__); 	HWIO_OUTM (MDDI_CAMIF_CFG, 		HWIO_FMSK (MDDI_CAMIF_CFG, CAM_SEL) | 		HWIO_FMSK (MDDI_CAMIF_CFG, CAM_PCLK_SRC_SEL) |@@ -598,18 +613,22 @@ static int mt9t013_camif_pad_reg_reset(void) 		1 << HWIO_SHFT (MDDI_CAMIF_CFG, CAM_SEL) | 		3 << HWIO_SHFT (MDDI_CAMIF_CFG, CAM_PCLK_SRC_SEL) | 		0 << HWIO_SHFT (MDDI_CAMIF_CFG, CAM_PCLK_INVERT));+	printk(KERN_ERR "ok:%s:%d\n", __FILE__, __LINE__); 	msleep(10); 	HWIO_OUTM (MDDI_CAMIF_CFG, 		HWIO_FMSK (MDDI_CAMIF_CFG, CAM_PAD_REG_SW_RESET), 		1 << HWIO_SHFT (MDDI_CAMIF_CFG, 		CAM_PAD_REG_SW_RESET));+	printk(KERN_ERR "ok:%s:%d\n", __FILE__, __LINE__); 	msleep(10); 	HWIO_OUTM (MDDI_CAMIF_CFG, 		HWIO_FMSK (MDDI_CAMIF_CFG, CAM_PAD_REG_SW_RESET), 		0 << HWIO_SHFT (MDDI_CAMIF_CFG, 		CAM_PAD_REG_SW_RESET));+	printk(KERN_ERR "ok:%s:%d\n", __FILE__, __LINE__); 	msleep(10); 	rc = clk_select(0); /* external */+	printk(KERN_ERR "ok:%s:%d\n", __FILE__, __LINE__); 	if(rc < 0) { 		printk(KERN_ERR "mt9t013 error switching to external clock\n"); 		return rc;@@ -818,6 +837,7 @@ static int mt9t013_lens_power(int on) { 	int rc; 	printk(KERN_INFO "mt9t013: lens power %d\n", on);+	return 0; 	rc = gpio_request(cam->vcm_pwd, "mt9t013"); 	if (!rc) 		gpio_direction_output(cam->vcm_pwd, !on);@@ -1327,6 +1347,7 @@ static int mt9t013_plat_probe(struct platform_device *pdev __attribute__((unused        {                printk(KERN_INFO "pdev->dev.platform_data is not NULL\n");                cam = pdev->dev.platform_data;+	       camif_cfg_addr=ioremap(0x3A00000, MSM_MDC_SIZE);                rc = i2c_add_driver(&mt9t013_driver);        }        return rc;diff --git a/drivers/video/msm/mddi_client_epson.c b/drivers/video/msm/mddi_client_epson.cindex 21dd504..b6f93c3 100644--- a/drivers/video/msm/mddi_client_epson.c+++ b/drivers/video/msm/mddi_client_epson.c@@ -99,7 +99,7 @@ static void epson_wait_vsync(struct msm_panel_data *panel_data)  static int epson_suspend(struct msm_panel_data *panel_data) {-printk("epson_suspend\n");return 0;+printk("epson_suspend\n"); 	struct panel_info *panel = container_of(panel_data, struct panel_info, 						panel_data); 	struct msm_mddi_client_data *client_data = panel->client_data;@@ -120,7 +120,7 @@ printk("epson_suspend\n");return 0;  static int epson_resume(struct msm_panel_data *panel_data) {-printk("epson_resume\n");return 0;+printk("epson_resume\n"); 	struct panel_info *panel = container_of(panel_data, struct panel_info, 						panel_data); 	struct msm_mddi_client_data *client_data = panel->client_data;