diff --git a/power/power-mode.cpp b/power/power-mode.cpp index 5a2674a..81b238a 100644 --- a/power/power-mode.cpp +++ b/power/power-mode.cpp @@ -8,13 +8,16 @@ #include #include #include +#include #define SET_CUR_VALUE 0 #define TOUCH_DOUBLETAP_MODE 14 #define TOUCH_MAGIC 't' #define TOUCH_IOC_SETMODE _IO(TOUCH_MAGIC, SET_CUR_VALUE) #define TOUCH_DEV_PATH "/dev/xiaomi-touch" -#define TOUCH_ID 0 +#define TOUCH_ID_PRIMARY 0 +#define TOUCH_ID_SECONDARY 1 +#define MI_DISP_SECONDARY "/sys/devices/virtual/mi_display/disp_feature/disp-DSI-1" namespace aidl { namespace android { @@ -38,8 +41,15 @@ bool setDeviceSpecificMode(Mode type, bool enabled) { switch (type) { case Mode::DOUBLE_TAP_TO_WAKE: { int fd = open(TOUCH_DEV_PATH, O_RDWR); - int arg[3] = {TOUCH_ID, TOUCH_DOUBLETAP_MODE, enabled ? 1 : 0}; - ioctl(fd, TOUCH_IOC_SETMODE, &arg); + int arg_primary[3] = {TOUCH_ID_PRIMARY, TOUCH_DOUBLETAP_MODE, enabled ? 1 : 0}; + ioctl(fd, TOUCH_IOC_SETMODE, &arg_primary); + + struct stat buffer; + if (stat(MI_DISP_SECONDARY, &buffer) == 0) { + int arg_secondary[3] = {TOUCH_ID_SECONDARY, TOUCH_DOUBLETAP_MODE, enabled ? 1 : 0}; + ioctl(fd, TOUCH_IOC_SETMODE, &arg_secondary); + } + close(fd); return true; }