diff -urN -x '*.o' -x '*.ko' -x '*.cmd' -x '*.cmd.c' -x '*.map' -x '*.builtin' -x '*.mod.c' -x '*.order' -x '*.symvers' -x '*.S' -x '*.d' -x '*.tmp' kernel_imx/arch/arm/mach-mx5/ntx_hwconfig.c kernel_shine/arch/arm/mach-mx5/ntx_hwconfig.c
--- kernel_imx/arch/arm/mach-mx5/ntx_hwconfig.c	2013-08-09 15:55:11.000000000 +0200
+++ kernel_shine/arch/arm/mach-mx5/ntx_hwconfig.c	2014-01-02 10:30:10.668885152 +0100
@@ -294,6 +294,37 @@
 		(char **)gszFrontLightLEDrvA,FIELD_TYPE_IDXSTR,FIELD_FLAGS_HW},
 };
 
+extern volatile NTX_HWCONFIG *gptHWCFG;
+void print_ntx_phj( NTX_HWCONFIG *gpt )
+{
+NTXHWCFG_VAL *HW=&gpt->m_val;
+printk("CPU  : %2x %s / %2x %s\n",HW->bCPU,gszCPUA[HW->bCPU],HW->bCPUFreq,gszCPUFreqA[HW->bCPUFreq]);
+printk("PCB  : %2x %s\n",HW->bPCB,gszPCBA[HW->bPCB]);
+printk("Disp.: %2x %s / %2x %s\n",HW->bDisplayCtrl,gszDisplayCtrlA[HW->bDisplayCtrl],HW->bDisplayPanel,gszDisplayPanelA[HW->bDisplayPanel]);
+printk("Resol: %2x %s / %2x %s\n",HW->bDisplayResolution,gszDisplayResolutionA[HW->bDisplayResolution],HW->bDisplayBusWidth,gszDisplayBusWidthA[HW->bDisplayBusWidth]);
+printk("Touch: %2x %s / %2x %s\n",HW->bTouchCtrl,gszTouchCtrlA[HW->bTouchCtrl],HW->bTouchType,gszTouchTypeA[HW->bTouchType]);
+printk("Light: %2x %s / %2x %s\n",HW->bFrontLight,gszFrontLightA[HW->bFrontLight],HW->bFrontLight_LED_Driver,gszFrontLightLEDrvA[HW->bFrontLight_LED_Driver]);
+printk("Flags: %2x %s\n",HW->bFrontLight_Flags,gszFrontLight_FlagsA[HW->bFrontLight_Flags]);
+printk("Key  : %2x %s\n",HW->bKeyPad,gszKeyPadA[HW->bKeyPad]);
+printk("Codec: %2x %s\n",HW->bAudioCodec,gszAudioCodecA[HW->bAudioCodec]);
+printk("Audio: %2x %s\n",HW->bAudioAmp,gszAudioAmpA[HW->bAudioAmp]);
+printk("Wifi : %2x %s\n",HW->bWifi,gszWifiA[HW->bWifi]);
+printk("BT   : %2x %s\n",HW->bBT,gszBTA[HW->bBT]);
+printk("Mobil: %2x %s\n",HW->bMobile,gszMobileA[HW->bMobile]);
+printk("Sens.: %2x %s\n",HW->bRSensor,gszRSensorA[HW->bRSensor]);
+printk("uP   : %2x %s\n",HW->bMicroP,gszMicroPA[HW->bMicroP]);
+printk("Cust.: %2x %s\n",HW->bCustomer,gszCustomerA[HW->bCustomer]);
+printk("Batt.: %2x %s\n",HW->bBattery,gszBatteryA[HW->bBattery]);
+printk("LED  : %2x %s\n",HW->bLed,gszLedA[HW->bLed]);
+printk("RAM  : %2x %s\n",HW->bRamSize,gszRamSizeA[HW->bRamSize]);
+printk("FLASH: %2x %s\n",HW->bIFlash,gszIFlashA[HW->bIFlash]);
+printk("ExtSD: %2x %s\n",HW->bExternalMem,gszExternalMemA[HW->bExternalMem]);
+printk("FStyp: %2x %s\n",HW->bRootFsType,gszRootFsTypeA[HW->bRootFsType]);
+printk("Part.: %2x %s\n",HW->bSysPartType,gszSysPartTypeA[HW->bSysPartType]);
+printk("UI   : %2x %s\n",HW->bUIConfig,gszUIStyleA[HW->bUIConfig]);
+printk("Halls: %2x %s\n",HW->bHallSensor,gszHallSensorA[HW->bHallSensor]);
+}
+
 
 
 static NTX_HWCONFIG _gtNtxHwCfg,*_gptNtxHwCfg=&_gtNtxHwCfg;
diff -urN -x '*.o' -x '*.ko' -x '*.cmd' -x '*.cmd.c' -x '*.map' -x '*.builtin' -x '*.mod.c' -x '*.order' -x '*.symvers' -x '*.S' -x '*.d' -x '*.tmp' kernel_imx/arch/arm/plat-mxc/dvfs_core.c kernel_shine/arch/arm/plat-mxc/dvfs_core.c
--- kernel_imx/arch/arm/plat-mxc/dvfs_core.c	2013-08-09 15:55:11.000000000 +0200
+++ kernel_shine/arch/arm/plat-mxc/dvfs_core.c	2014-01-04 15:47:48.191555600 +0100
@@ -203,6 +203,7 @@
 	u32 en_sw_dvfs = 0;
 	unsigned long flags;
 	volatile unsigned long dw_lp_cnt=0;
+int v=0;
 
 	if (cpu_wp_tbl[wp].pll_rate != cpu_wp_tbl[old_wp].pll_rate) {
 		org_cpu_rate = clk_get_rate(cpu_clk);
@@ -365,7 +366,7 @@
 		/* Wait for arm podf changed */
 		while ((__raw_readl(gpc_base + dvfs_data->gpc_cntr_offset) &
 			MXC_GPCCNTR_STRT) == MXC_GPCCNTR_STRT) {
-			printk(KERN_DEBUG "Waiting for arm_podf changed!\n");
+if((v++ & 0x0f)==0x0f)			printk(KERN_DEBUG "Waiting for arm_podf changed (%d usec)!\n",v*10);
 			udelay(10);
 		}
 		/* No need to wait for !ARM_PODF_BUSY after ARM_PODF updated */
@@ -391,7 +392,7 @@
 			udelay(dvfs_data->delay_time);
 		}
 	}
-
+//printk("cpu frq=%d\n",cpu_wp_tbl[wp].cpu_rate);
 	cpufreq_trig_needed = 1;
 	old_wp = wp;
 	return ret;
diff -urN -x '*.o' -x '*.ko' -x '*.cmd' -x '*.cmd.c' -x '*.map' -x '*.builtin' -x '*.mod.c' -x '*.order' -x '*.symvers' -x '*.S' -x '*.d' -x '*.tmp' kernel_imx/.config kernel_shine/.config
--- kernel_imx/.config	2013-08-19 17:48:02.000000000 +0200
+++ kernel_shine/.config	2014-01-04 15:57:09.127086888 +0100
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # Linux kernel version: 2.6.35.3
-# Mon Aug 19 17:48:02 2013
+# Sat Jan  4 15:57:09 2014
 #
 CONFIG_ARM=y
 CONFIG_HAVE_PWM=y
@@ -66,7 +66,7 @@
 # CONFIG_TREE_RCU_TRACE is not set
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=14
+CONFIG_LOG_BUF_SHIFT=16
 CONFIG_CGROUPS=y
 CONFIG_CGROUP_DEBUG=y
 CONFIG_CGROUP_NS=y
@@ -103,7 +103,7 @@
 CONFIG_HOTPLUG=y
 CONFIG_PRINTK=y
 CONFIG_BUG=y
-CONFIG_ELF_CORE=y
+# CONFIG_ELF_CORE is not set
 CONFIG_BASE_FULL=y
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
@@ -428,7 +428,6 @@
 # Userspace binary formats
 #
 CONFIG_BINFMT_ELF=y
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
 CONFIG_HAVE_AOUT=y
 # CONFIG_BINFMT_AOUT is not set
 # CONFIG_BINFMT_MISC is not set
@@ -1065,8 +1064,8 @@
 #
 CONFIG_INPUT_MOUSEDEV=y
 CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1440
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1080
 # CONFIG_INPUT_JOYDEV is not set
 CONFIG_INPUT_EVDEV=y
 # CONFIG_INPUT_EVBUG is not set
@@ -1142,7 +1141,7 @@
 # CONFIG_INPUT_PCF8574 is not set
 # CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
 CONFIG_INPUT_DA9052_ONKEY=y
-CONFIG_INPUT_ISL29023=y
+# CONFIG_INPUT_ISL29023 is not set
 
 #
 # Hardware I/O ports
@@ -1161,7 +1160,7 @@
 CONFIG_DEVKMEM=y
 # CONFIG_SERIAL_NONSTANDARD is not set
 # CONFIG_N_GSM is not set
-CONFIG_FM_SI4702=m
+# CONFIG_FM_SI4702 is not set
 CONFIG_MXC_IIM=y
 CONFIG_MXS_VIIM=y
 CONFIG_IMX_SIM=m
@@ -1503,12 +1502,12 @@
 #
 CONFIG_IR_CORE=y
 CONFIG_VIDEO_IR=y
-CONFIG_RC_MAP=y
-CONFIG_IR_NEC_DECODER=y
-CONFIG_IR_RC5_DECODER=y
-CONFIG_IR_RC6_DECODER=y
-CONFIG_IR_JVC_DECODER=y
-CONFIG_IR_SONY_DECODER=y
+# CONFIG_RC_MAP is not set
+# CONFIG_IR_NEC_DECODER is not set
+# CONFIG_IR_RC5_DECODER is not set
+# CONFIG_IR_RC6_DECODER is not set
+# CONFIG_IR_JVC_DECODER is not set
+# CONFIG_IR_SONY_DECODER is not set
 # CONFIG_IR_IMON is not set
 # CONFIG_MEDIA_ATTACH is not set
 CONFIG_MEDIA_TUNER=y
@@ -1530,7 +1529,7 @@
 # CONFIG_MEDIA_TUNER_MXL5005S is not set
 # CONFIG_MEDIA_TUNER_MXL5007T is not set
 # CONFIG_MEDIA_TUNER_MC44S803 is not set
-CONFIG_MEDIA_TUNER_MAX2165=m
+# CONFIG_MEDIA_TUNER_MAX2165 is not set
 CONFIG_VIDEO_V4L2=y
 CONFIG_VIDEO_V4L1=y
 CONFIG_VIDEO_CAPTURE_DRIVERS=y
@@ -1703,15 +1702,7 @@
 # CONFIG_USB_STKWEBCAM is not set
 # CONFIG_USB_S2255 is not set
 # CONFIG_V4L_MEM2MEM_DRIVERS is not set
-CONFIG_RADIO_ADAPTERS=y
-# CONFIG_I2C_SI4713 is not set
-# CONFIG_RADIO_SI4713 is not set
-# CONFIG_USB_DSBR is not set
-# CONFIG_RADIO_SI470X is not set
-# CONFIG_USB_MR800 is not set
-# CONFIG_RADIO_TEA5764 is not set
-# CONFIG_RADIO_SAA7706H is not set
-# CONFIG_RADIO_TEF6862 is not set
+# CONFIG_RADIO_ADAPTERS is not set
 # CONFIG_DAB is not set
 
 #
@@ -2369,22 +2360,22 @@
 #
 # MXC Asynchronous Sample Rate Converter support
 #
-CONFIG_MXC_ASRC=y
+# CONFIG_MXC_ASRC is not set
 
 #
 # MXC Bluetooth support
 #
-CONFIG_MXC_BLUETOOTH=m
+# CONFIG_MXC_BLUETOOTH is not set
 
 #
 # Broadcom GPS ioctrl support
 #
-CONFIG_GPS_IOCTRL=m
+# CONFIG_GPS_IOCTRL is not set
 
 #
 # MXC Media Local Bus Driver
 #
-CONFIG_MXC_MLB=m
+# CONFIG_MXC_MLB is not set
 
 #
 # i.MX ADC support
@@ -2488,18 +2479,8 @@
 # CONFIG_SYSV_FS is not set
 # CONFIG_UFS_FS is not set
 CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
-# CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
+# CONFIG_NFS_FS is not set
 # CONFIG_NFSD is not set
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=y
-# CONFIG_RPCSEC_GSS_KRB5 is not set
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CEPH_FS is not set
 # CONFIG_CIFS is not set
@@ -2573,7 +2554,7 @@
 #
 # Kernel hacking
 #
-# CONFIG_PRINTK_TIME is not set
+CONFIG_PRINTK_TIME=y
 CONFIG_ENABLE_WARN_DEPRECATED=y
 CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_FRAME_WARN=1024
diff -urN -x '*.o' -x '*.ko' -x '*.cmd' -x '*.cmd.c' -x '*.map' -x '*.builtin' -x '*.mod.c' -x '*.order' -x '*.symvers' -x '*.S' -x '*.d' -x '*.tmp' kernel_imx/drivers/input/touchscreen/zforce_i2c.c kernel_shine/drivers/input/touchscreen/zforce_i2c.c
--- kernel_imx/drivers/input/touchscreen/zforce_i2c.c	2013-08-09 15:55:11.000000000 +0200
+++ kernel_shine/drivers/input/touchscreen/zforce_i2c.c	2014-01-02 10:30:10.736946351 +0100
@@ -18,6 +18,7 @@
 #include <linux/gpio.h>
 #include "../../../arch/arm/mach-mx5/ntx_hwconfig.h"
 extern volatile NTX_HWCONFIG *gptHWCFG;
+void print_ntx_phj(NTX_HWCONFIG *);
 
 static const char ZFORCE_TS_NAME[]	= "zForce-ir-touch";
 #define TS_POLL_PERIOD	msecs_to_jiffies(10) /* ms delay between samples */
@@ -46,6 +47,7 @@
 
 static struct zForce_data {
 	int intr_gpio;
+int rotated;
 	struct delayed_work	work;
 	struct i2c_client *client;
 	struct input_dev *input;
@@ -264,13 +266,61 @@
 	return result;
 }
 
+int rotate_phj;
+
+static void switch_res_phj( int x, int y) {
+ZFORCE_TS_WIDTH=x;
+ZFORCE_TS_HIGHT=y;
+		ZFORCE_TS_X_MAX=ZFORCE_TS_WIDTH;
+		ZFORCE_TS_Y_MAX=ZFORCE_TS_HIGHT;
+		
+		printk ("Set touch resolution %dx%d\n",ZFORCE_TS_WIDTH,ZFORCE_TS_HIGHT);
+		cmd_Resolution[1] = (uint8_t)(ZFORCE_TS_HIGHT&0xff);
+		cmd_Resolution[2] = (uint8_t)(ZFORCE_TS_HIGHT>>8);
+		cmd_Resolution[3] = (uint8_t)(ZFORCE_TS_WIDTH&0xff);
+		cmd_Resolution[4] = (uint8_t)(ZFORCE_TS_WIDTH>>8);
+
+		cmd_Resolution_v2[3] = (uint8_t)(ZFORCE_TS_HIGHT&0xff);
+		cmd_Resolution_v2[4] = (uint8_t)(ZFORCE_TS_HIGHT>>8);
+		cmd_Resolution_v2[5] = (uint8_t)(ZFORCE_TS_WIDTH&0xff);
+		cmd_Resolution_v2[6] = (uint8_t)(ZFORCE_TS_WIDTH>>8);
+  input_set_abs_params(zForce_ir_touch_data.input, ABS_X, 0, ZFORCE_TS_X_MAX, 0, 0);
+	input_set_abs_params(zForce_ir_touch_data.input, ABS_Y, 0, ZFORCE_TS_Y_MAX, 0, 0);
+	input_set_abs_params(zForce_ir_touch_data.input, ABS_HAT0X, 0, ZFORCE_TS_X_MAX, 0, 0);
+	input_set_abs_params(zForce_ir_touch_data.input, ABS_HAT0Y, 0, ZFORCE_TS_Y_MAX, 0, 0);
+	input_set_abs_params(zForce_ir_touch_data.input, ABS_MT_POSITION_X, 0, ZFORCE_TS_X_MAX, 0, 0);
+	input_set_abs_params(zForce_ir_touch_data.input, ABS_MT_POSITION_Y, 0, ZFORCE_TS_Y_MAX, 0, 0);
+	input_set_abs_params(zForce_ir_touch_data.input, ABS_MT_TOUCH_MAJOR, 0, 2, 0, 0);
+	input_set_abs_params(zForce_ir_touch_data.input, ABS_MT_WIDTH_MAJOR, 0, 15, 0, 0);
+	input_set_abs_params(zForce_ir_touch_data.input, ABS_MT_TRACKING_ID, 1, 2, 0, 0);
+	input_set_abs_params(zForce_ir_touch_data.input, ABS_PRESSURE, 0, 2048, 0, 0);
+
+}
+
 extern int gIsCustomerUi;
+static int touched;
 static void zForce_ir_touch_report_data(struct i2c_client *client, uint8_t *buf)
 {
 	static int last_x[16], last_y[16];
 	int state;
 	int x,y,packets=buf[1];
 	char id, *packet = buf+2;
+// JUST for auraHD!!!!!!!!!!!!!!!!!!!
+if (zForce_ir_touch_data.rotated != rotate_phj) {	// if just rotated
+//#define FB_ROTATE_UR      0 <= UD
+//#define FB_ROTATE_CW      1 <= CCW
+//#define FB_ROTATE_UD      2 <= UR
+//#define FB_ROTATE_CCW     3 <= CW
+
+ if (rotate_phj==1 || rotate_phj==3) {	//portrait
+  switch_res_phj(1080,1440);
+ } else {
+  switch_res_phj(1440,1080);
+ }
+
+ printk(" touch rotated to:%d %dx%d\n",rotate_phj,ZFORCE_TS_WIDTH,ZFORCE_TS_HIGHT);
+ zForce_ir_touch_data.rotated = rotate_phj;
+}
 	while (packets--) {
 		if(8==gptHWCFG->m_val.bTouchCtrl) {    //neonode v2
 			state = packet[4] & 0x03;
@@ -281,14 +331,35 @@
 		}
 		
 		if (2 != state) {
-			x = packet[2] | (packet[3] << 8);
-			y = ZFORCE_TS_HIGHT -(packet[0] | (packet[1] << 8)) -1;
+//phj: swap x<>y and x dir
+			x = (packet[2] | (packet[3] << 8))&0x7ff;
+			y = (/*ZFORCE_TS_HIGHT -*/(packet[0] | (packet[1] << 8)) /*-1*/)&0x7ff;
+if (rotate_phj==1 || rotate_phj==3) {	//portrait
+ int tmp=x;
+ x=y*ZFORCE_TS_WIDTH/ZFORCE_TS_HIGHT; y=tmp*ZFORCE_TS_HIGHT/ZFORCE_TS_WIDTH;	// swap x,y
+}
+/*
+switch (rotate_phj) {
+case 1: break;		// portrait,normal
+case 2:			//landscape 0,0=xmax,0
+ x=ZFORCE_TS_WIDTH-x-1;
+ break;
+case 3:			//portrait,down 0,0=xmax,ymax
+ x=ZFORCE_TS_WIDTH-x-1;
+ y=ZFORCE_TS_HIGHT-y-1;
+ break;
+case 0:			//landscape, 0,0=0,ymax
+ y=ZFORCE_TS_HIGHT-y-1;
+ break;
+}
+*/
+//x=x*768/1080; y=y*1024/1440;
 			input_report_abs(zForce_ir_touch_data.input, ABS_MT_TRACKING_ID, id);
 			input_report_abs(zForce_ir_touch_data.input, ABS_MT_TOUCH_MAJOR, 1);
 			input_report_abs(zForce_ir_touch_data.input, ABS_MT_WIDTH_MAJOR, 1);
 			input_report_abs(zForce_ir_touch_data.input, ABS_MT_POSITION_X, x);
 			input_report_abs(zForce_ir_touch_data.input, ABS_MT_POSITION_Y, y);
-	//		printk ("[%s-%d] touch %d (%d, %d)\n",__func__,__LINE__, (packet[6]>>2)&0x0F,x,y);
+if ((touched++ & 0xff) == 0) printk ("touch %d (%d/%d, %d/%d) id:%d,%d\n", (packet[6]>>2)&0x0F,x,ZFORCE_TS_WIDTH,y,ZFORCE_TS_HIGHT,id,rotate_phj);
 			last_x[id] = x;
 			last_y[id] = y;
 			g_touch_pressed |= (1<<id);
@@ -436,7 +507,7 @@
 		return -1;
 	}
 	else if (g_touch_pressed || g_touch_triggered) {
-		printk("[%s-%d] zForce still handling touch data\n");
+		printk(" zForce still handling touch data\n");
 		return -EBUSY;
 	}
 	return 0;
@@ -542,7 +613,7 @@
 	set_bit(ABS_HAT0X, zForce_ir_touch_data.input->absbit);
 	set_bit(ABS_HAT0Y, zForce_ir_touch_data.input->absbit);
 
-	{
+//	{
 		if(1==gptHWCFG->m_val.bDisplayResolution) {
 			// 1024x758 .
 			ZFORCE_TS_WIDTH=1024;
@@ -553,11 +624,11 @@
 			ZFORCE_TS_WIDTH=1024;
 			ZFORCE_TS_HIGHT=768;
 		}
-		else if(3==gptHWCFG->m_val.bDisplayResolution) {
+//		else if(3==gptHWCFG->m_val.bDisplayResolution) {
 			// 1440x1080
-			ZFORCE_TS_WIDTH=1440;
-			ZFORCE_TS_HIGHT=1080;
-		}
+//			ZFORCE_TS_WIDTH=1440;
+//			ZFORCE_TS_HIGHT=1080;
+//		}
 		else if(3==gptHWCFG->m_val.bDisplayResolution) {
 			// 1440x1080
 			ZFORCE_TS_WIDTH=1080;
@@ -568,8 +639,8 @@
 			ZFORCE_TS_WIDTH=800;
 			ZFORCE_TS_HIGHT=600;
 		}
-
-		ZFORCE_TS_X_MAX=ZFORCE_TS_WIDTH;
+switch_res_phj( ZFORCE_TS_WIDTH, ZFORCE_TS_HIGHT);
+/*		ZFORCE_TS_X_MAX=ZFORCE_TS_WIDTH;
 		ZFORCE_TS_Y_MAX=ZFORCE_TS_HIGHT;
 		
 		printk ("[%s-%d] Set touch resolution %dx%d\n",__func__,__LINE__,ZFORCE_TS_WIDTH,ZFORCE_TS_HIGHT);
@@ -594,7 +665,7 @@
 	input_set_abs_params(zForce_ir_touch_data.input, ABS_MT_TRACKING_ID, 1, 2, 0, 0);
 	input_set_abs_params(zForce_ir_touch_data.input, ABS_PRESSURE, 0, 2048, 0, 0);
 
-
+*/
 	err = input_register_device(zForce_ir_touch_data.input);
 	if (err < 0) {
 		pr_debug("Register device file!\n");
@@ -611,6 +682,8 @@
 		g_touch_triggered = 1;
 		schedule_delayed_work(&zForce_ir_touch_data.work, 0);
 	}
+print_ntx_phj(gptHWCFG);
+
 	return 0;
 
 fail:
diff -urN -x '*.o' -x '*.ko' -x '*.cmd' -x '*.cmd.c' -x '*.map' -x '*.builtin' -x '*.mod.c' -x '*.order' -x '*.symvers' -x '*.S' -x '*.d' -x '*.tmp' kernel_imx/drivers/video/mxc/mxc_epdc_fb.c kernel_shine/drivers/video/mxc/mxc_epdc_fb.c
--- kernel_imx/drivers/video/mxc/mxc_epdc_fb.c	2013-08-09 15:55:11.000000000 +0200
+++ kernel_shine/drivers/video/mxc/mxc_epdc_fb.c	2014-01-04 16:43:18.259682298 +0100
@@ -1773,6 +1773,8 @@
 	return 0;
 }
 
+extern int rotate_phj;
+
 static int mxc_epdc_fb_check_var(struct fb_var_screeninfo *var,
 				 struct fb_info *info)
 {
@@ -1926,6 +1928,8 @@
 		return -EINVAL;
 	}
 
+rotate_phj=var->rotate;
+printk("screen rotate=%d  %dx%d\n",rotate_phj,var->xres,var->yres);
 	var->xres_virtual = ALIGN(var->xres, 32);
 	var->yres_virtual = ALIGN(var->yres, 128) * fb_data->num_screens;
 
@@ -3259,9 +3263,9 @@
 			upd_data->waveform_mode,upd_data->update_mode,upd_data->update_marker,
 			upd_data->flags,upd_data->temp);
 
-	if(TEMP_USE_AMBIENT!=upd_data->temp) {
-		WARNING_MSG(KERN_ERR"use custom temperature %d\n",upd_data->temp);
-	}
+//	if(TEMP_USE_AMBIENT!=upd_data->temp) {
+//		WARNING_MSG(KERN_ERR"use custom temperature %d\n",upd_data->temp);
+//	}
 
 
 	/* Has EPDC HW been initialized? */
