diff options
Diffstat (limited to 'aidl/Vibrator.cpp')
-rw-r--r-- | aidl/Vibrator.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/aidl/Vibrator.cpp b/aidl/Vibrator.cpp index fab0415..4b0d649 100644 --- a/aidl/Vibrator.cpp +++ b/aidl/Vibrator.cpp @@ -29,6 +29,7 @@ #define LOG_TAG "vendor.qti.vibrator" +#include <cutils/properties.h> #include <dirent.h> #include <inttypes.h> #include <linux/input.h> @@ -42,9 +43,6 @@ #include "effect.h" #endif -extern "C" { -#include "libsoc_helper.h" -} namespace aidl { namespace android { namespace hardware { @@ -57,6 +55,13 @@ namespace vibrator { #define CUSTOM_DATA_LEN 3 #define NAME_BUF_SIZE 32 +#define MSM_CPU_LAHAINA 415 +#define APQ_CPU_LAHAINA 439 +#define MSM_CPU_SHIMA 450 +#define MSM_CPU_SM8325 501 +#define APQ_CPU_SM8325P 502 +#define MSM_CPU_YUPIK 475 + #define test_bit(bit, array) ((array)[(bit)/8] & (1<<((bit)%8))) static const char LED_DEVICE[] = "/sys/class/leds/vibrator"; @@ -64,13 +69,14 @@ static const char LED_DEVICE[] = "/sys/class/leds/vibrator"; InputFFDevice::InputFFDevice() { DIR *dp; + FILE *fp = NULL; struct dirent *dir; uint8_t ffBitmask[FF_CNT / 8]; char devicename[PATH_MAX]; const char *INPUT_DIR = "/dev/input/"; char name[NAME_BUF_SIZE]; int fd, ret; - soc_info_v0_1_t soc = {MSM_CPU_UNKNOWN}; + int soc = property_get_int32("ro.vendor.qti.soc_id", -1); mVibraFd = INVALID_VALUE; mSupportGain = false; @@ -129,9 +135,11 @@ InputFFDevice::InputFFDevice() if (test_bit(FF_GAIN, ffBitmask)) mSupportGain = true; - get_soc_info(&soc); - ALOGD("msm CPU SoC ID: %d\n", soc.msm_cpu); - switch (soc.msm_cpu) { + if (soc <= 0 && (fp = fopen("/sys/devices/soc0/soc_id", "r")) != NULL) { + fscanf(fp, "%u", &soc); + fclose(fp); + } + switch (soc) { case MSM_CPU_LAHAINA: case APQ_CPU_LAHAINA: case MSM_CPU_SHIMA: |