summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordianlujitao <dianlujitao@lineageos.org>2018-01-18 21:34:00 +0800
committerLuca Stefani <luca.stefani.ge1@gmail.com>2018-02-07 19:40:42 +0100
commitc169bd0be01bde3425e6eefb9e5e093b6995955b (patch)
tree788fc42bb4dc1770a469405e0a8e03486e201e25
parentc94981d5d288cad2222e40f10a5893f93002f839 (diff)
downloadandroid_hardware_lineage_interfaces-c169bd0be01bde3425e6eefb9e5e093b6995955b.tar.gz
android_hardware_lineage_interfaces-c169bd0be01bde3425e6eefb9e5e093b6995955b.tar.bz2
android_hardware_lineage_interfaces-c169bd0be01bde3425e6eefb9e5e093b6995955b.zip
lineage/interfaces: power: Add HIDL HAL interface
* Introduce necessary API and hint IDs for power profile support. Change-Id: Ie50f36e6019dc4dfd7fc6314e3dfd2977c05d718
-rw-r--r--power/1.0/Android.bp89
-rw-r--r--power/1.0/Android.mk156
-rw-r--r--power/1.0/ILineagePower.hal27
-rw-r--r--power/1.0/types.hal32
-rw-r--r--power/Android.bp4
5 files changed, 308 insertions, 0 deletions
diff --git a/power/1.0/Android.bp b/power/1.0/Android.bp
new file mode 100644
index 0000000..3741342
--- /dev/null
+++ b/power/1.0/Android.bp
@@ -0,0 +1,89 @@
+// This file is autogenerated by hidl-gen. Do not edit manually.
+
+filegroup {
+ name: "vendor.lineage.power@1.0_hal",
+ srcs: [
+ "types.hal",
+ "ILineagePower.hal",
+ ],
+}
+
+genrule {
+ name: "vendor.lineage.power@1.0_genc++",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++-sources -randroid.hidl:system/libhidl/transport -rvendor.lineage:hardware/lineage/interfaces vendor.lineage.power@1.0",
+ srcs: [
+ ":vendor.lineage.power@1.0_hal",
+ ],
+ out: [
+ "vendor/lineage/power/1.0/types.cpp",
+ "vendor/lineage/power/1.0/LineagePowerAll.cpp",
+ ],
+}
+
+genrule {
+ name: "vendor.lineage.power@1.0_genc++_headers",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++-headers -randroid.hidl:system/libhidl/transport -rvendor.lineage:hardware/lineage/interfaces vendor.lineage.power@1.0",
+ srcs: [
+ ":vendor.lineage.power@1.0_hal",
+ ],
+ out: [
+ "vendor/lineage/power/1.0/types.h",
+ "vendor/lineage/power/1.0/hwtypes.h",
+ "vendor/lineage/power/1.0/ILineagePower.h",
+ "vendor/lineage/power/1.0/IHwLineagePower.h",
+ "vendor/lineage/power/1.0/BnHwLineagePower.h",
+ "vendor/lineage/power/1.0/BpHwLineagePower.h",
+ "vendor/lineage/power/1.0/BsLineagePower.h",
+ ],
+}
+
+cc_library {
+ name: "vendor.lineage.power@1.0",
+ defaults: ["hidl-module-defaults"],
+ generated_sources: ["vendor.lineage.power@1.0_genc++"],
+ generated_headers: ["vendor.lineage.power@1.0_genc++_headers"],
+ export_generated_headers: ["vendor.lineage.power@1.0_genc++_headers"],
+ vendor_available: true,
+ vndk: {
+ enabled: true,
+ },
+ shared_libs: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "liblog",
+ "libutils",
+ "libcutils",
+ ],
+ export_shared_lib_headers: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "libutils",
+ ],
+}
+
+cc_library {
+ name: "vendor.lineage.power@1.0_vendor",
+ defaults: ["hidl-module-defaults"],
+ generated_sources: ["vendor.lineage.power@1.0_genc++"],
+ generated_headers: ["vendor.lineage.power@1.0_genc++_headers"],
+ export_generated_headers: ["vendor.lineage.power@1.0_genc++_headers"],
+ vendor: true,
+ shared_libs: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "liblog",
+ "libutils",
+ "libcutils",
+ ],
+ export_shared_lib_headers: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "libutils",
+ ],
+}
diff --git a/power/1.0/Android.mk b/power/1.0/Android.mk
new file mode 100644
index 0000000..3947f67
--- /dev/null
+++ b/power/1.0/Android.mk
@@ -0,0 +1,156 @@
+# This file is autogenerated by hidl-gen. Do not edit manually.
+
+LOCAL_PATH := $(call my-dir)
+
+################################################################################
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := vendor.lineage.power-V1.0-java
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+
+intermediates := $(call local-generated-sources-dir, COMMON)
+
+HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
+
+LOCAL_JAVA_LIBRARIES := \
+ android.hidl.base-V1.0-java \
+
+
+#
+# Build types.hal (LineageFeature)
+#
+GEN := $(intermediates)/vendor/lineage/power/V1_0/LineageFeature.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava \
+ -randroid.hidl:system/libhidl/transport \
+ -rvendor.lineage:hardware/lineage/interfaces \
+ vendor.lineage.power@1.0::types.LineageFeature
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (LineagePowerHint)
+#
+GEN := $(intermediates)/vendor/lineage/power/V1_0/LineagePowerHint.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava \
+ -randroid.hidl:system/libhidl/transport \
+ -rvendor.lineage:hardware/lineage/interfaces \
+ vendor.lineage.power@1.0::types.LineagePowerHint
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build ILineagePower.hal
+#
+GEN := $(intermediates)/vendor/lineage/power/V1_0/ILineagePower.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ILineagePower.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
+$(GEN): $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava \
+ -randroid.hidl:system/libhidl/transport \
+ -rvendor.lineage:hardware/lineage/interfaces \
+ vendor.lineage.power@1.0::ILineagePower
+
+$(GEN): $(LOCAL_PATH)/ILineagePower.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+include $(BUILD_JAVA_LIBRARY)
+
+
+################################################################################
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := vendor.lineage.power-V1.0-java-static
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+
+intermediates := $(call local-generated-sources-dir, COMMON)
+
+HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
+
+LOCAL_STATIC_JAVA_LIBRARIES := \
+ android.hidl.base-V1.0-java-static \
+
+
+#
+# Build types.hal (LineageFeature)
+#
+GEN := $(intermediates)/vendor/lineage/power/V1_0/LineageFeature.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava \
+ -randroid.hidl:system/libhidl/transport \
+ -rvendor.lineage:hardware/lineage/interfaces \
+ vendor.lineage.power@1.0::types.LineageFeature
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (LineagePowerHint)
+#
+GEN := $(intermediates)/vendor/lineage/power/V1_0/LineagePowerHint.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava \
+ -randroid.hidl:system/libhidl/transport \
+ -rvendor.lineage:hardware/lineage/interfaces \
+ vendor.lineage.power@1.0::types.LineagePowerHint
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build ILineagePower.hal
+#
+GEN := $(intermediates)/vendor/lineage/power/V1_0/ILineagePower.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ILineagePower.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
+$(GEN): $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava \
+ -randroid.hidl:system/libhidl/transport \
+ -rvendor.lineage:hardware/lineage/interfaces \
+ vendor.lineage.power@1.0::ILineagePower
+
+$(GEN): $(LOCAL_PATH)/ILineagePower.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/power/1.0/ILineagePower.hal b/power/1.0/ILineagePower.hal
new file mode 100644
index 0000000..8396b46
--- /dev/null
+++ b/power/1.0/ILineagePower.hal
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2018 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package vendor.lineage.power@1.0;
+
+interface ILineagePower {
+ /**
+ * getFeature() is called to get the current value of a particular
+ * feature or capability from the hardware or PowerHAL
+ *
+ * @param feature Feature which needs to get
+ * @return the state of power states the device supports
+ */
+ getFeature(LineageFeature feature) generates (int32_t value);
+};
diff --git a/power/1.0/types.hal b/power/1.0/types.hal
new file mode 100644
index 0000000..d9e98ee
--- /dev/null
+++ b/power/1.0/types.hal
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2018 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package vendor.lineage.power@1.0;
+
+/** Power hint identifiers passed to powerHint() */
+enum LineagePowerHint : uint32_t {
+ /**
+ * An operation is happening where it would be ideal for the CPU to
+ * be boosted for a specific duration. The data parameter is an
+ * integer value of the boost duration in microseconds.
+ */
+ CPU_BOOST = 0x00000110,
+
+ SET_PROFILE = 0x00000111
+};
+
+enum LineageFeature : uint32_t {
+ SUPPORTED_PROFILES = 0x00001000
+};
diff --git a/power/Android.bp b/power/Android.bp
new file mode 100644
index 0000000..bbb3e4b
--- /dev/null
+++ b/power/Android.bp
@@ -0,0 +1,4 @@
+// This is an autogenerated file, do not edit.
+subdirs = [
+ "1.0",
+]