summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIliyan Malchev <malchev@google.com>2012-10-20 14:17:29 -0700
committerIliyan Malchev <malchev@google.com>2012-10-20 14:17:29 -0700
commitb59998fa25f217ba651f6f5a4f1ddcdb0d24b42d (patch)
treeef70b25682a85ea9e8957af76ce5c87fd9694700
parent868f7635b2b57d883a3978b3837a58aecc0d7131 (diff)
downloadpower-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-xpower.c57
1 files changed, 32 insertions, 25 deletions
diff --git a/power.c b/power.c
index fb556e9..a4569a5 100755
--- a/power.c
+++ b/power.c
@@ -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;
}