summaryrefslogtreecommitdiff
path: root/power
diff options
context:
space:
mode:
authorRuchi Kandoi <kandoiruchi@google.com>2016-10-07 19:29:28 -0700
committerRuchi Kandoi <kandoiruchi@google.com>2016-10-14 18:24:02 +0000
commit6a6d854458eded4cbdaf27d02e5fd5589469f0f0 (patch)
tree2508cc08c61baf44451356b1af282a48644062d3 /power
parente59a7dcb08bd6213596fe71c33292bfda761211f (diff)
downloadbullhead-6a6d854458eded4cbdaf27d02e5fd5589469f0f0.tar.gz
power: Make powerHAL compatible for passthrough HIDL design
Test: Power hint is received Bug: 31177288 Bug: 32158500 Change-Id: Ia65f6b50d091a02199565af1d8855ec7473e7323 Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
Diffstat (limited to 'power')
-rw-r--r--power/power.c42
1 files changed, 38 insertions, 4 deletions
diff --git a/power/power.c b/power/power.c
index 25a5d60..857c58c 100644
--- a/power/power.c
+++ b/power/power.c
@@ -94,10 +94,6 @@ static int slack_node_rw_failed = 0;
static int display_hint_sent;
int display_boost;
-static struct hw_module_methods_t power_module_methods = {
- .open = NULL,
-};
-
static void power_init(struct power_module *module)
{
ALOGI("QCOM power HAL initing.");
@@ -669,6 +665,44 @@ static int get_platform_low_power_stats(struct power_module *module,
return 0;
}
+static int power_open(const hw_module_t* module, const char* name,
+ hw_device_t** device)
+{
+ ALOGD("%s: enter; name=%s", __FUNCTION__, name);
+ int retval = 0; /* 0 is ok; -1 is error */
+
+ if (strcmp(name, POWER_HARDWARE_MODULE_ID) == 0) {
+ power_module_t *dev = (power_module_t *)calloc(1,
+ sizeof(power_module_t));
+
+ if (dev) {
+ /* Common hw_device_t fields */
+ dev->common.tag = HARDWARE_MODULE_TAG;
+ dev->common.module_api_version = POWER_MODULE_API_VERSION_0_5;
+ dev->common.module_api_version = HARDWARE_HAL_API_VERSION;
+
+ dev->init = power_init;
+ dev->powerHint = power_hint;
+ dev->setInteractive = set_interactive;
+ dev->get_number_of_platform_modes = get_number_of_platform_modes;
+ dev->get_platform_low_power_stats = get_platform_low_power_stats;
+ dev->get_voter_list = get_voter_list;
+
+ *device = (hw_device_t*)dev;
+ } else
+ retval = -ENOMEM;
+ } else {
+ retval = -EINVAL;
+ }
+
+ ALOGD("%s: exit %d", __FUNCTION__, retval);
+ return retval;
+}
+
+static struct hw_module_methods_t power_module_methods = {
+ .open = power_open,
+};
+
struct power_module HAL_MODULE_INFO_SYM = {
.common = {
.tag = HARDWARE_MODULE_TAG,