aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuchi Kandoi <kandoiruchi@google.com>2016-10-07 19:29:28 -0700
committerMister Oyster <oysterized@gmail.com>2017-09-10 17:55:57 +0200
commit9d2250042334b62d052bcda06fcffd685ae7827e (patch)
treeb17d3815d9f33ea14ddb8afda709fa62538eea75
parentc50b03a964f4a275a670c1a3dde599ba1223d9c7 (diff)
Make powerHAL compatible for passthrough HIDL design
Needed for O, ported to cm mtk powerhal Bug: 31177288 Change-Id: Ia65f6b50d091a02199565af1d8855ec7473e7323 Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com> Signed-off-by: jhenrique09 <jhenrique09.mcz@hotmail.com> Signed-off-by: Mister Oyster <oysterized@gmail.com>
-rw-r--r--mtk/power/power.c34
1 files changed, 33 insertions, 1 deletions
diff --git a/mtk/power/power.c b/mtk/power/power.c
index 2a45aff..3932866 100644
--- a/mtk/power/power.c
+++ b/mtk/power/power.c
@@ -19,6 +19,8 @@
#include <sys/stat.h>
#include <fcntl.h>
+#include <stdlib.h>
+
#define LOG_TAG "MTK PowerHAL"
#include <utils/Log.h>
@@ -100,8 +102,38 @@ void set_feature(struct power_module *module, feature_t feature, int state)
#endif
}
+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_2;
+ dev->common.module_api_version = HARDWARE_HAL_API_VERSION;
+
+ dev->init = power_init;
+ dev->powerHint = power_hint;
+
+ *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 = NULL,
+ .open = power_open,
};
struct power_module HAL_MODULE_INFO_SYM = {