diff options
author | Iliyan Malchev <malchev@google.com> | 2012-10-20 14:17:29 -0700 |
---|---|---|
committer | Iliyan Malchev <malchev@google.com> | 2012-10-20 14:17:29 -0700 |
commit | b59998fa25f217ba651f6f5a4f1ddcdb0d24b42d (patch) | |
tree | ef70b25682a85ea9e8957af76ce5c87fd9694700 | |
parent | 868f7635b2b57d883a3978b3837a58aecc0d7131 (diff) | |
download | power-b59998fa25f217ba651f6f5a4f1ddcdb0d24b42d.tar.gz |
clean up and pass touch boost on interactive-on
1. Clean up:
-- only open the comm socket with mpdecision on power-HAL init, not on every touch hint call
-- put ALOGE on error cases
-- make LOG_TAG handle PowerHAL, not "Qualcomm PowerHAL"
-- fix up indendation
2. Call touch_boost when interactive mode is enabled.
Bug: 7382919
Change-Id: Ifbafc8d192f5b0dbed570e60b9d9b843c82a0c55
Signed-off-by: Iliyan Malchev <malchev@google.com>
-rwxr-xr-x | power.c | 57 |
1 files changed, 32 insertions, 25 deletions
@@ -22,56 +22,63 @@ #include <fcntl.h> #include <dlfcn.h> -#define LOG_TAG "Qualcomm PowerHAL" +#define LOG_TAG "PowerHAL" #include <utils/Log.h> #include <hardware/hardware.h> #include <hardware/power.h> #define TOUCHBOOST_SOCKET "/dev/socket/mpdecision/touchboost" -static void power_init(struct power_module *module) -{ -} +static int client_sockfd; +static struct sockaddr_un client_addr; -static void power_set_interactive(struct power_module *module, int on) -{ -} - -static void touch_boost() +static void power_init(struct power_module *module) { - static int client_comsoc = -1; - static struct sockaddr_un client_addr; - int rc = 0; - - client_comsoc = socket(PF_UNIX, SOCK_DGRAM, 0); - - if (client_comsoc < 0) { + ALOGI("%s", __func__); + client_sockfd = socket(PF_UNIX, SOCK_DGRAM, 0); + if (client_sockfd < 0) { + ALOGE("%s: failed to open: %s", __func__, strerror(errno)); return; } - memset(&client_addr, 0, sizeof(struct sockaddr_un)); client_addr.sun_family = AF_UNIX; snprintf(client_addr.sun_path, UNIX_PATH_MAX, TOUCHBOOST_SOCKET); +} - rc = sendto(client_comsoc, "1", 1, 0, (const struct sockaddr *)&client_addr, sizeof(struct sockaddr_un)); +static void touch_boost() +{ + int rc; - if (rc == -1) { - ALOGE("Failed to send rc=%d", rc); + if (client_sockfd < 0) { + ALOGE("%s: touchboost socket not created", __func__); + return; } - if (client_comsoc >= 0) { - close(client_comsoc); - client_comsoc = -1; + rc = sendto(client_sockfd, "1", 1, 0, (const struct sockaddr *)&client_addr, sizeof(struct sockaddr_un)); + if (rc < 0) { + ALOGE("%s: failed to send: %s", __func__, strerror(errno)); } } +static void power_set_interactive(struct power_module *module, int on) +{ + ALOGV("%s %s", __func__, (on ? "ON" : "OFF")); + if (on) + touch_boost(); +} + static void power_hint(struct power_module *module, power_hint_t hint, void *data) { switch (hint) { - case POWER_HINT_INTERACTION: + ALOGV("POWER_HINT_INTERACTION"); touch_boost(); - break; + break; +#if 0 + case POWER_HINT_VSYNC: + ALOGV("POWER_HINT_VSYNC %s", (data ? "ON" : "OFF")); + break; +#endif default: break; } |