tp翻转180度
kernel-3.18\drivers\input\touchscreen\mediatek\ft6x36\focaltech_core.c 打开宏:
#define CONFIG_TPD_ROTATE_180
驱动中有:(没有可以自己实现)
#if defined(CONFIG_TPD_ROTATE_90) || defined(CONFIG_TPD_ROTATE_270) || defined(CONFIG_TPD_ROTATE_180)
static void tpd_rotate_180(int *x, int *y)
{
*y = TPD_RES_Y + 1 - *y; // TPD_RES_Y -- mtk_tpd.c从defconfig的CONFIG_LCM_HEIGT获得
*x = TPD_RES_X + 1 - *x;
}
#endif
static void tpd_down(int x, int y, int p, int id)
{
#if defined(CONFIG_TPD_ROTATE_180)
tpd_rotate_180(&x, &y);
#endif
...
input_report_abs(tpd->dev, ABS_MT_POSITION_X, x);
}
或者再直接一点,在上报之前:
+ events[i].x = 720 + 1 - events[i].x;
+ events[i].y = 1440 + 1 - events[i].y;
input_report_abs(tpd->dev, ABS_MT_TOUCH_MAJOR, events[i].area);
input_report_abs(tpd->dev, ABS_MT_POSITION_X, events[i].x);
input_report_abs(tpd->dev, ABS_MT_POSITION_Y, events[i].y);
kernel-3.18\drivers\input\touchscreen\mediatek\ft6x36\focaltech_core.c 打开宏:
#define CONFIG_TPD_ROTATE_180
驱动中有:(没有可以自己实现)
#if defined(CONFIG_TPD_ROTATE_90) || defined(CONFIG_TPD_ROTATE_270) || defined(CONFIG_TPD_ROTATE_180)
static void tpd_rotate_180(int *x, int *y)
{
*y = TPD_RES_Y + 1 - *y; // TPD_RES_Y -- mtk_tpd.c从defconfig的CONFIG_LCM_HEIGT获得
*x = TPD_RES_X + 1 - *x;
}
#endif
static void tpd_down(int x, int y, int p, int id)
{
#if defined(CONFIG_TPD_ROTATE_180)
tpd_rotate_180(&x, &y);
#endif
...
input_report_abs(tpd->dev, ABS_MT_POSITION_X, x);
}
或者再直接一点,在上报之前:
+ events[i].x = 720 + 1 - events[i].x;
+ events[i].y = 1440 + 1 - events[i].y;
input_report_abs(tpd->dev, ABS_MT_TOUCH_MAJOR, events[i].area);
input_report_abs(tpd->dev, ABS_MT_POSITION_X, events[i].x);
input_report_abs(tpd->dev, ABS_MT_POSITION_Y, events[i].y);