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;
}