power: Pass NULL parameter in powerHint if data is zero

 * This restores the behavior in AOSP and CAF power HAL to avoid
   confusion.

Change-Id: I72f5bb9286e2f57121e39eea82d2fe8854989393
diff --git a/Power.cpp b/Power.cpp
index 2b7101e..53a1c1f 100644
--- a/Power.cpp
+++ b/Power.cpp
@@ -55,7 +55,7 @@
 }
 
 Return<void> Power::powerHint(PowerHint hint, int32_t data) {
-    power_hint(static_cast<power_hint_t>(hint), &data);
+    power_hint(static_cast<power_hint_t>(hint), data ? (&data) : NULL);
     return Void();
 }
 
diff --git a/power-660.c b/power-660.c
index 0a297e2..8a816eb 100644
--- a/power-660.c
+++ b/power-660.c
@@ -97,8 +97,9 @@
 }
 #endif
 
-static int set_power_profile(int profile)
+static int set_power_profile(void *data)
 {
+    int profile = data ? *((int*)data) : 0;
     int ret = -EINVAL;
     const char *profile_name = NULL;
 
@@ -291,7 +292,7 @@
 int power_hint_override(power_hint_t hint, void *data)
 {
     if (hint == POWER_HINT_SET_PROFILE) {
-        if (set_power_profile(*(int32_t *)data) < 0)
+        if (set_power_profile(data) < 0)
             ALOGE("Setting power profile failed. perf HAL not started?");
         return HINT_HANDLED;
     }
diff --git a/power-8084.c b/power-8084.c
index 7d4bbe4..52d80c3 100644
--- a/power-8084.c
+++ b/power-8084.c
@@ -100,8 +100,9 @@
 }
 #endif
 
-static int set_power_profile(int profile)
+static int set_power_profile(void *data)
 {
+    int profile = data ? *((int*)data) : 0;
     int ret = -EINVAL;
     const char *profile_name = NULL;
 
@@ -188,7 +189,7 @@
     int duration;
 
     if (hint == POWER_HINT_SET_PROFILE) {
-        if (set_power_profile(*(int32_t *)data) < 0)
+        if (set_power_profile(data) < 0)
             ALOGE("Setting power profile failed. mpdecision not started?");
         return HINT_HANDLED;
     }
diff --git a/power-8226.c b/power-8226.c
index 573433a..8a0e0e7 100644
--- a/power-8226.c
+++ b/power-8226.c
@@ -75,8 +75,9 @@
 }
 #endif
 
-static int set_power_profile(int profile)
+static int set_power_profile(void *data)
 {
+    int profile = data ? *((int*)data) : 0;
     int ret = -EINVAL;
     const char *profile_name = NULL;
 
@@ -128,7 +129,7 @@
     int duration;
 
     if (hint == POWER_HINT_SET_PROFILE) {
-        if (set_power_profile(*(int32_t *)data) < 0)
+        if (set_power_profile(data) < 0)
             ALOGE("Setting power profile failed. mpdecision not started?");
         return HINT_HANDLED;
     }
diff --git a/power-845.c b/power-845.c
index 235ab81..1a7db58 100644
--- a/power-845.c
+++ b/power-845.c
@@ -119,7 +119,7 @@
 
 static int process_perf_hint(void *data, perf_mode_type_t mode) {
     // enable
-    if (*(int32_t *)data) {
+    if (data) {
         ALOGI("Enable request for mode: 0x%x", mode);
         // check if mode is current mode
         if (current_mode & mode) {
diff --git a/power-8610.c b/power-8610.c
index 80a1f49..e4f6a6c 100644
--- a/power-8610.c
+++ b/power-8610.c
@@ -71,8 +71,9 @@
 }
 #endif
 
-static int set_power_profile(int profile)
+static int set_power_profile(void *data)
 {
+    int profile = data ? *((int*)data) : 0;
     int ret = -EINVAL;
     const char *profile_name = NULL;
 
@@ -124,7 +125,7 @@
     int duration;
 
     if (hint == POWER_HINT_SET_PROFILE) {
-        if (set_power_profile(*(int32_t *)data) < 0)
+        if (set_power_profile(data) < 0)
             ALOGE("Setting power profile failed. mpdecision not started?");
         return HINT_HANDLED;
     }
diff --git a/power-8916.c b/power-8916.c
index 204d016..c355290 100644
--- a/power-8916.c
+++ b/power-8916.c
@@ -108,8 +108,9 @@
 }
 #endif
 
-static int set_power_profile(int profile)
+static int set_power_profile(void *data)
 {
+    int profile = data ? *((int*)data) : 0;
     int ret = -EINVAL;
     const char *profile_name = NULL;
 
@@ -185,7 +186,7 @@
     int duration;
 
     if (hint == POWER_HINT_SET_PROFILE) {
-        if (set_power_profile(*(int32_t *)data) < 0)
+        if (set_power_profile(data) < 0)
             ALOGE("Setting power profile failed. perfd not started?");
         return HINT_HANDLED;
     }
diff --git a/power-8937.c b/power-8937.c
index abf0f8e..26a83c6 100644
--- a/power-8937.c
+++ b/power-8937.c
@@ -94,8 +94,9 @@
 }
 #endif
 
-static int set_power_profile(int profile)
+static int set_power_profile(void *data)
 {
+    int profile = data ? *((int*)data) : 0;
     int ret = -EINVAL;
     const char *profile_name = NULL;
 
@@ -239,7 +240,7 @@
 int power_hint_override(power_hint_t hint, void *data)
 {
     if (hint == POWER_HINT_SET_PROFILE) {
-        if (set_power_profile(*(int32_t *)data) < 0)
+        if (set_power_profile(data) < 0)
             ALOGE("Setting power profile failed. perfd not started?");
         return HINT_HANDLED;
     }
diff --git a/power-8952.c b/power-8952.c
index c0f3a67..a49c361 100644
--- a/power-8952.c
+++ b/power-8952.c
@@ -83,8 +83,9 @@
 }
 #endif
 
-static int set_power_profile(int profile)
+static int set_power_profile(void *data)
 {
+    int profile = data ? *((int*)data) : 0;
     int ret = -EINVAL;
     const char *profile_name = NULL;
 
@@ -188,7 +189,7 @@
 int power_hint_override(power_hint_t hint, void *data)
 {
     if (hint == POWER_HINT_SET_PROFILE) {
-        if (set_power_profile(*(int32_t *)data) < 0)
+        if (set_power_profile(data) < 0)
             ALOGE("Setting power profile failed. perfd not started?");
         return HINT_HANDLED;
     }
diff --git a/power-8953.c b/power-8953.c
index 5dacc03..7c00a75 100644
--- a/power-8953.c
+++ b/power-8953.c
@@ -95,8 +95,9 @@
 }
 #endif
 
-static int set_power_profile(int profile)
+static int set_power_profile(void *data)
 {
+    int profile = data ? *((int*)data) : 0;
     int ret = -EINVAL;
     const char *profile_name = NULL;
 
@@ -200,7 +201,7 @@
 
 static int process_perf_hint(void *data, perf_mode_type_t mode) {
     // enable
-    if (*(int32_t *)data) {
+    if (data) {
         ALOGI("Enable request for mode: 0x%x", mode);
         // check if mode is current mode
         if (current_mode & mode) {
@@ -336,7 +337,7 @@
     int ret_val = HINT_NONE;
 
     if (hint == POWER_HINT_SET_PROFILE) {
-        if (set_power_profile(*(int32_t *)data) < 0)
+        if (set_power_profile(data) < 0)
             ALOGE("Setting power profile failed. perf HAL not started?");
         return HINT_HANDLED;
     }
diff --git a/power-8960.c b/power-8960.c
index 495e196..0076cbb 100644
--- a/power-8960.c
+++ b/power-8960.c
@@ -91,8 +91,9 @@
 }
 #endif
 
-static int set_power_profile(int profile)
+static int set_power_profile(void *data)
 {
+    int profile = data ? *((int*)data) : 0;
     int ret = -EINVAL;
     const char *profile_name = NULL;
 
@@ -138,7 +139,7 @@
 int power_hint_override(power_hint_t hint, void *data)
 {
     if (hint == POWER_HINT_SET_PROFILE) {
-        if (set_power_profile(*(int32_t *)data) < 0)
+        if (set_power_profile(data) < 0)
             ALOGE("Setting power profile failed. perfd not started?");
         return HINT_HANDLED;
     }
diff --git a/power-8974.c b/power-8974.c
index 94d4125..50df288 100644
--- a/power-8974.c
+++ b/power-8974.c
@@ -111,8 +111,9 @@
 }
 #endif
 
-static int set_power_profile(int profile)
+static int set_power_profile(void *data)
 {
+    int profile = data ? *((int*)data) : 0;
     int ret = -EINVAL;
     const char *profile_name = NULL;
 
@@ -191,7 +192,7 @@
     int duration;
 
     if (hint == POWER_HINT_SET_PROFILE) {
-        if (set_power_profile(*(int32_t *)data) < 0)
+        if (set_power_profile(data) < 0)
             ALOGE("Setting power profile failed. mpdecision not started?");
         return HINT_HANDLED;
     }
diff --git a/power-8992.c b/power-8992.c
index b6c3413..c267628 100644
--- a/power-8992.c
+++ b/power-8992.c
@@ -96,8 +96,9 @@
 }
 #endif
 
-static int set_power_profile(int profile)
+static int set_power_profile(void *data)
 {
+    int profile = data ? *((int*)data) : 0;
     int ret = -EINVAL;
     const char *profile_name = NULL;
 
@@ -214,7 +215,7 @@
     int duration;
 
     if (hint == POWER_HINT_SET_PROFILE) {
-        if (set_power_profile(*(int32_t *)data) < 0)
+        if (set_power_profile(data) < 0)
             ALOGE("Setting power profile failed. perfd not started?");
         return HINT_HANDLED;
     }
diff --git a/power-8994.c b/power-8994.c
index f56a873..96f96f7 100644
--- a/power-8994.c
+++ b/power-8994.c
@@ -104,8 +104,9 @@
 }
 #endif
 
-static int set_power_profile(int profile)
+static int set_power_profile(void *data)
 {
+    int profile = data ? *((int*)data) : 0;
     int ret = -EINVAL;
     const char *profile_name = NULL;
 
@@ -222,7 +223,7 @@
     int duration;
 
     if (hint == POWER_HINT_SET_PROFILE) {
-        if (set_power_profile(*(int32_t *)data) < 0)
+        if (set_power_profile(data) < 0)
             ALOGE("Setting power profile failed. perfd not started?");
         return HINT_HANDLED;
     }
diff --git a/power-8996.c b/power-8996.c
index c3acab8..b6a832e 100644
--- a/power-8996.c
+++ b/power-8996.c
@@ -92,8 +92,9 @@
 }
 #endif
 
-static int set_power_profile(int profile)
+static int set_power_profile(void *data)
 {
+    int profile = data ? *((int*)data) : 0;
     int ret = -EINVAL;
     const char *profile_name = NULL;
 
@@ -197,7 +198,7 @@
 
 static int process_perf_hint(void *data, perf_mode_type_t mode) {
     // enable
-    if (*(int32_t *)data) {
+    if (data) {
         ALOGI("Enable request for mode: 0x%x", mode);
         // check if mode is current mode
         if (current_mode & mode) {
@@ -327,7 +328,7 @@
     int ret_val = HINT_NONE;
 
     if (hint == POWER_HINT_SET_PROFILE) {
-        if (set_power_profile(*(int32_t *)data) < 0)
+        if (set_power_profile(data) < 0)
             ALOGE("Setting power profile failed. perf HAL not started?");
         return HINT_HANDLED;
     }
diff --git a/power-8998.c b/power-8998.c
index 20804ab..0f5a89b 100644
--- a/power-8998.c
+++ b/power-8998.c
@@ -88,8 +88,9 @@
 }
 #endif
 
-static int set_power_profile(int profile)
+static int set_power_profile(void *data)
 {
+    int profile = data ? *((int*)data) : 0;
     int ret = -EINVAL;
     const char *profile_name = NULL;
 
@@ -193,7 +194,7 @@
 
 static int process_perf_hint(void *data, perf_mode_type_t mode) {
     // enable
-    if (*(int32_t *)data) {
+    if (data) {
         ALOGI("Enable request for mode: 0x%x", mode);
         // check if mode is current mode
         if (current_mode & mode) {
@@ -322,7 +323,7 @@
     int ret_val = HINT_NONE;
 
     if (hint == POWER_HINT_SET_PROFILE) {
-        if (set_power_profile(*(int32_t *)data) < 0)
+        if (set_power_profile(data) < 0)
             ALOGE("Setting power profile failed. perf HAL not started?");
         return HINT_HANDLED;
     }