sm8350-common: vibrator: Add logic to detect QTI haptics device
Check input device name to make sure a real QTI vibrator device is detected instead of other input FF device with the same capability being recognized wrongly as a QTI vibrator. Change-Id: I54f00e777212b3bd19088faa183b0ff41019dfcc
This commit is contained in:
parent
298c65026f
commit
226203e348
1 changed files with 17 additions and 1 deletions
|
@ -54,6 +54,7 @@ namespace vibrator {
|
|||
#define LIGHT_MAGNITUDE 0x3fff
|
||||
#define INVALID_VALUE -1
|
||||
#define CUSTOM_DATA_LEN 3
|
||||
#define NAME_BUF_SIZE 32
|
||||
|
||||
#define MSM_CPU_LAHAINA 415
|
||||
#define APQ_CPU_LAHAINA 439
|
||||
|
@ -121,6 +122,7 @@ InputFFDevice::InputFFDevice()
|
|||
uint8_t ffBitmask[FF_CNT / 8];
|
||||
char devicename[PATH_MAX];
|
||||
const char *INPUT_DIR = "/dev/input/";
|
||||
char name[NAME_BUF_SIZE];
|
||||
int fd, ret;
|
||||
int soc = property_get_int32("ro.vendor.qti.soc_id", -1);
|
||||
|
||||
|
@ -152,6 +154,20 @@ InputFFDevice::InputFFDevice()
|
|||
continue;
|
||||
}
|
||||
|
||||
ret = TEMP_FAILURE_RETRY(ioctl(fd, EVIOCGNAME(sizeof(name)), name));
|
||||
if (ret == -1) {
|
||||
ALOGE("get input device name %s failed, errno = %d\n", devicename, errno);
|
||||
close(fd);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (strcmp(name, "qcom-hv-haptics") && strcmp(name, "qti-haptics")) {
|
||||
ALOGD("not a qcom/qti haptics device\n");
|
||||
close(fd);
|
||||
continue;
|
||||
}
|
||||
|
||||
ALOGI("%s is detected at %s\n", name, devicename);
|
||||
ret = TEMP_FAILURE_RETRY(ioctl(fd, EVIOCGBIT(EV_FF, sizeof(ffBitmask)), ffBitmask));
|
||||
if (ret == -1) {
|
||||
ALOGE("ioctl failed, errno = %d", errno);
|
||||
|
|
Loading…
Reference in a new issue