mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 16:46:15 -04:00
genevn: optimize ili7807s gesture mode
tp: Receive gesture type through extended API and remove redundant codes. Change-Id: Ie528231b236cbd313c46bcc7fd5d2a49334a3f08 Reviewed-on: https://gerrit.mot.com/2426459 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Yeqing Wang <wangyq13@motorola.com> Reviewed-by: <zhuwg1@motorola.com> Reviewed-by: Jianqi Yang <yangj@motorola.com> Submit-Approved: Jira Key
This commit is contained in:
parent
bf0c03f708
commit
210d3a0a6f
4 changed files with 41 additions and 14 deletions
|
|
@ -67,6 +67,10 @@ ifeq ($(GTP_ENABLE_DDA_STYLUS),true)
|
|||
KBUILD_OPTIONS += CONFIG_GTP_DDA_STYLUS=y
|
||||
endif
|
||||
|
||||
ifeq ($(BOARD_USES_DOUBLE_TAP_CTRL),true)
|
||||
KBUILD_OPTIONS += CONFIG_BOARD_USES_DOUBLE_TAP_CTRL=y
|
||||
endif
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
ifneq ($(BOARD_USES_DOUBLE_TAP),)
|
||||
LOCAL_ADDITIONAL_DEPENDENCIES += $(KERNEL_MODULES_OUT)/sensors_class.ko
|
||||
|
|
|
|||
|
|
@ -17,6 +17,10 @@ ifneq ($(filter m y,$(CONFIG_INPUT_ILI_0FLASH_MMI_NOTIFY_TOUCH_STATE)),)
|
|||
EXTRA_CFLAGS += -DILI_SET_TOUCH_STATE
|
||||
endif
|
||||
|
||||
ifneq ($(filter m y, $(CONFIG_BOARD_USES_DOUBLE_TAP_CTRL)),)
|
||||
EXTRA_CFLAGS += -DCONFIG_BOARD_USES_DOUBLE_TAP_CTRL
|
||||
endif
|
||||
|
||||
ifneq ($(filter m y,$(CONFIG_INPUT_ILI_PANEL_NOTIFICATIONS)),)
|
||||
EXTRA_CFLAGS += -DILI_CONFIG_PANEL_NOTIFICATIONS
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -220,6 +220,14 @@ do { \
|
|||
pr_info("ILITEK: (%s, %d): " fmt, __func__, __LINE__, ##arg); \
|
||||
} while (0)
|
||||
|
||||
#define GET_TS_DATA(dev) { \
|
||||
ts_data = dev_get_drvdata(dev); \
|
||||
if (!ts_data) { \
|
||||
ILI_ERR("Failed to get driver data"); \
|
||||
return -ENODEV; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define ERR_ALLOC_MEM(X) ((IS_ERR(X) || X == NULL) ? 1 : 0)
|
||||
#define K (1024)
|
||||
#define M (K * K)
|
||||
|
|
|
|||
|
|
@ -184,6 +184,12 @@ static int ili_mmi_firmware_update(struct device *dev, char *fwname)
|
|||
static int ili_mmi_panel_state(struct device *dev,
|
||||
enum ts_mmi_pm_mode from, enum ts_mmi_pm_mode to)
|
||||
{
|
||||
struct ilitek_ts_data __maybe_unused *ts_data;
|
||||
#if defined(CONFIG_BOARD_USES_DOUBLE_TAP_CTRL)
|
||||
unsigned char gesture_type = 0;
|
||||
#endif
|
||||
GET_TS_DATA(dev);
|
||||
|
||||
ILI_INFO("%s: panel state change: %d->%d\n", __func__, from, to);
|
||||
ILI_INFO("panel state change: %d->%d\n", from, to);
|
||||
switch (to) {
|
||||
|
|
@ -191,27 +197,32 @@ static int ili_mmi_panel_state(struct device *dev,
|
|||
#ifdef ILI_SET_TOUCH_STATE
|
||||
ilits->should_enable_gesture = true;
|
||||
touch_set_state(TS_MMI_PM_GESTURE, TOUCH_PANEL_IDX_PRIMARY);
|
||||
#else
|
||||
ilits->should_enable_gesture = false;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case TS_MMI_PM_GESTURE_SINGLE:
|
||||
ilits->ges_sym.single_tap = SINGLE_TAP;
|
||||
ILI_INFO("enable single gesture mode\n");
|
||||
break;
|
||||
case TS_MMI_PM_GESTURE_DOUBLE:
|
||||
ilits->ges_sym.double_tap = DOUBLE_TAP;
|
||||
ILI_INFO("enable double gesture mode\n");
|
||||
break;
|
||||
case TS_MMI_PM_GESTURE_SWITCH:
|
||||
#ifdef ILI_SET_TOUCH_STATE
|
||||
ilits->should_enable_gesture = true;
|
||||
touch_set_state(TS_MMI_PM_GESTURE, TOUCH_PANEL_IDX_PRIMARY);
|
||||
#endif
|
||||
#if defined(CONFIG_BOARD_USES_DOUBLE_TAP_CTRL)
|
||||
if (ts_data->imports && ts_data->imports->get_gesture_type) {
|
||||
ts_data->imports->get_gesture_type(ts_data->dev, &gesture_type);
|
||||
}
|
||||
|
||||
if (gesture_type & TS_MMI_GESTURE_SINGLE) {
|
||||
ilits->ges_sym.single_tap = SINGLE_TAP;
|
||||
ILI_INFO("enable single gesture mode\n");
|
||||
}
|
||||
|
||||
if (gesture_type & TS_MMI_GESTURE_DOUBLE) {
|
||||
ilits->ges_sym.double_tap = DOUBLE_TAP;
|
||||
ILI_INFO("enable double gesture mode\n");
|
||||
}
|
||||
|
||||
/*---write command to enter "wakeup gesture mode"---*/
|
||||
ili_sleep_handler(TP_SUSPEND);
|
||||
ilits->ges_sym.single_tap = OFF;
|
||||
ilits->ges_sym.double_tap = OFF;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case TS_MMI_PM_DEEPSLEEP:
|
||||
ilits->should_enable_gesture = false;
|
||||
#ifdef ILI_SET_TOUCH_STATE
|
||||
|
|
|
|||
Loading…
Reference in a new issue