[Android Q&A, Help & Troubleshooting] cyclon1978:
diff --git a/mediatek/custom/common/kernel/touchpanel/focaltech/tpd_custom_fts.h b/mediatek/custom/common/kernel/touchpanel/focaltech/tpd_custom_fts.h

index 7cbdbd0..e97aec3 100644

--- a/mediatek/custom/common/kernel/touchpanel/focaltech/tpd_custom_fts.h

+++ b/mediatek/custom/common/kernel/touchpanel/focaltech/tpd_custom_fts.h

@@ -42,11 +42,16 @@

#define TPD_POWER_SOURCE_CUSTOM MT65XX_POWER_LDO_VGP4

#define TPD_I2C_NUMBER 0

#define TPD_RES_X 720

-#define TPD_RES_Y 1280

+#define TPD_RES_Y 1260

-#define TPD_WARP_Y(y) y

+// y goes from 80 to 1259 -> 1180 is "resolution", original touchpad has 1280 resolution;

+#define TPD_WARP_Y(y) (((((1260-y)) * 1280) / 1180)-1)

#define TPD_WARP_X(x) x

+// y is always 1 for buttons but should be 1400

+// #define TPD_WARP_Y_BUTTONS(y) (y+1399)

+#define TPD_WARP_Y_BUTTONS(y) 1400

+

/**************************step 2:virtual key*********************/

#define TPD_HAVE_BUTTON // if have virtual key,need define the MACRO

@@ -56,7 +61,8 @@

//#define TPD_KEYS_DIM_QHD {{66,1000,60,TPD_BUTTON_HEIGH}, {418,1000,60,TPD_BUTTON_HEIGH}, {200,1000,60,TPD_BUTTON_HEIGH}, {300,1000,60,TPD_BUTTON_HEIGH}}

//#define TPD_KEYS_DIM_FWVGA {{66,880,60,TPD_BUTTON_HEIGH}, {418,880,60,TPD_BUTTON_HEIGH}, {200,880,60,TPD_BUTTON_HEIGH}, {300,880,60,TPD_BUTTON_HEIGH}}

#define TPD_KEYS { KEY_BACK, KEY_HOMEPAGE, KEY_MENU}

-#define TPD_KEYS_DIM {{150,1400,20,10},{400,1400,20,10},{580,1400,20,10}}

+#define TPD_KEYS_DIM {{89,1400,20,10},{328,1400,20,10},{627,1400,20,10}}

/**************************step3: define func****************************************************/

---- SNIP -----

diff --git a/mediatek/custom/common/kernel/touchpanel/focaltech/focaltech_driver.c b/mediatek/custom/common/kernel/touchpanel/focaltech/focaltech_driver.c

index 0e8117c..66cad1d 100644

--- a/mediatek/custom/common/kernel/touchpanel/focaltech/focaltech_driver.c

+++ b/mediatek/custom/common/kernel/touchpanel/focaltech/focaltech_driver.c

@@ -1131,8 +1134,8 @@ void tpd_enable_hallsensor_dov(u8 enable)

for(i =0; i<point_num; i++)//only support 3 point

{

// tpd_down(cinfo.x, cinfo.y, cinfo.id);

- if(cinfo.y>TPD_RES_Y) //button area

- tpd_down(cinfo.x, cinfo.y, cinfo.id);

+ if(cinfo.y<80) //button area

+ tpd_down(cinfo.x, TPD_WARP_Y_BUTTONS(cinfo.y), cinfo.id);

else //lcd area

tpd_down(TPD_WARP_X(cinfo.x), TPD_WARP_Y(cinfo.y), cinfo.id);

}

@@ -1142,8 +1145,8 @@ void tpd_enable_hallsensor_dov(u8 enable)

else

{

//tpd_up(cinfo.x[0], cinfo.y[0]);

- if(cinfo.y[0]>TPD_RES_Y) //button area

- tpd_up(cinfo.x[0], cinfo.y[0]);

+ if(cinfo.y[0]<80) //button area

+ tpd_up(cinfo.x[0], TPD_WARP_Y_BUTTONS(cinfo.y[0]));

else //lcd area

tpd_up(TPD_WARP_X(cinfo.x[0]), TPD_WARP_Y(cinfo.y[0]));

//TPD_DEBUG("release --->\n");

---------- Post added at 03:48 PM ---------- Previous post was at 03:45 PM ----------

So for other's: i just changed the driver to map the "wrong" readings from new touchpanel to the readings from original touchpanel (swap y; remap range and button position)

it would also be possible to try to find the right chip id for the touchpanel and change it in the focaltech driver, but maybe it is not even a focaltech.... and without that info it would require several builds with all variants (and you can still miss the correct chip if it's not in acer kernel source)

---------- Post added at 03:50 PM ---------- Previous post was at 03:48 PM ----------

This kernel is this one:

https://github.com/cyclon1978/e380_kk_kernel/commits/master

So you're the only one with the new features (a little bit gpu overclock, some debugging removed, optimizations) but these features give no really big performance increase.

---------- Post added at 04:07 PM ---------- Previous post was at 03:50 PM ----------

The chip version is only known by the manufacturer of the touch screen, so you can ask them (i doubt they'll forward your question to the factory)

but i could build 10 kernels to test the right version assuming it is focaltech and one of these:

/*Chip Device Type*/

#define IC_FT5X06	0	/*x=2,3,4*/

#define IC_FT5606	1	/*ft5506/FT5606/FT5816*/

#define IC_FT5316	2	/*ft5x16*/

#define IC_FT6208	3	/*ft6208*/

#define IC_FT6x06	4	/*ft6206/FT6306*/

#define IC_FT5x06i	5	/*ft5306i*/

#define IC_FT5x36	6	/*ft5336/ft5436/FT5436i*/

oh, you can test in the device test (manufacturer menu) if you still have 5 multi touch points like in original screen. that would rule out 2 of the chips...