diff options
| author | dianlujitao <dianlujitao@lineageos.org> | 2018-01-18 21:34:00 +0800 |
|---|---|---|
| committer | Luca Stefani <luca.stefani.ge1@gmail.com> | 2018-02-07 19:40:42 +0100 |
| commit | c169bd0be01bde3425e6eefb9e5e093b6995955b (patch) | |
| tree | 788fc42bb4dc1770a469405e0a8e03486e201e25 | |
| parent | c94981d5d288cad2222e40f10a5893f93002f839 (diff) | |
| download | android_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.bp | 89 | ||||
| -rw-r--r-- | power/1.0/Android.mk | 156 | ||||
| -rw-r--r-- | power/1.0/ILineagePower.hal | 27 | ||||
| -rw-r--r-- | power/1.0/types.hal | 32 | ||||
| -rw-r--r-- | power/Android.bp | 4 |
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", +] |
