diff options
author | Michael Wright <michaelwr@google.com> | 2018-06-21 02:42:31 +0100 |
---|---|---|
committer | Xin Li <delphij@google.com> | 2018-08-10 18:37:07 -0700 |
commit | 795990cca6f0979ec9cd397e345bd87a247ff97f (patch) | |
tree | b3a8418f54d63f02de5e76437f63c01be097783c /power | |
parent | 841940be1cebd7a650001725d900d04648bc5bc9 (diff) | |
download | android_hardware_interfaces-795990cca6f0979ec9cd397e345bd87a247ff97f.tar.gz android_hardware_interfaces-795990cca6f0979ec9cd397e345bd87a247ff97f.tar.bz2 android_hardware_interfaces-795990cca6f0979ec9cd397e345bd87a247ff97f.zip |
Update power HAL to version 1.3.
Adds new EXPENSIVE_RENDERING power hint.
This adds a new library which does not affect any pre-existing
targets unless they create and add a new binary which uses this.
BUG: 110112323
Test: adb shell /data/nativetest/VtsHalPowerV1_3TargetTest/VtsHalPowerV1_3TargetTest
Change-Id: I5fb33abbbe4c4958882a106dfa400ad74013e40d
Diffstat (limited to 'power')
-rw-r--r-- | power/1.3/Android.bp | 21 | ||||
-rw-r--r-- | power/1.3/IPower.hal | 33 | ||||
-rw-r--r-- | power/1.3/types.hal | 28 | ||||
-rw-r--r-- | power/1.3/vts/functional/Android.bp | 27 | ||||
-rw-r--r-- | power/1.3/vts/functional/VtsHalPowerV1_3TargetTest.cpp | 64 |
5 files changed, 173 insertions, 0 deletions
diff --git a/power/1.3/Android.bp b/power/1.3/Android.bp new file mode 100644 index 000000000..65b75977f --- /dev/null +++ b/power/1.3/Android.bp @@ -0,0 +1,21 @@ +// This file is autogenerated by hidl-gen -Landroidbp. + +hidl_interface { + name: "android.hardware.power@1.3", + root: "android.hardware", + srcs: [ + "types.hal", + "IPower.hal", + ], + interfaces: [ + "android.hardware.power@1.0", + "android.hardware.power@1.1", + "android.hardware.power@1.2", + "android.hidl.base@1.0", + ], + types: [ + "PowerHint", + ], + gen_java: true, +} + diff --git a/power/1.3/IPower.hal b/power/1.3/IPower.hal new file mode 100644 index 000000000..18b00a30c --- /dev/null +++ b/power/1.3/IPower.hal @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2018 The Android Open Source 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 android.hardware.power@1.3; + +import @1.2::IPower; + +interface IPower extends @1.2::IPower { + /** + * Called to pass hints on power requirements which + * may result in adjustment of power/performance parameters of the + * cpufreq governor and other controls. + * + * A particular platform may choose to ignore any hint. + * + * @param hint PowerHint which is passed + * @param data contains additional information about the hint + * and is described along with the comments for each of the hints. + */ + oneway powerHintAsync_1_3(PowerHint hint, int32_t data); +}; diff --git a/power/1.3/types.hal b/power/1.3/types.hal new file mode 100644 index 000000000..658495cf6 --- /dev/null +++ b/power/1.3/types.hal @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2018 The Android Open Source 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 android.hardware.power@1.3; + +import @1.2::PowerHint; + +/** Power hint identifiers passed to powerHintAsync_1_3() */ +enum PowerHint : @1.2::PowerHint { + /** + * This hint indicates that the device is about to enter a period of expensive rendering, and + * the GPU should be configured accordingly. The data parameter is always 1 when entering this + * state and 0 when leaving it. + */ + EXPENSIVE_RENDERING, +}; diff --git a/power/1.3/vts/functional/Android.bp b/power/1.3/vts/functional/Android.bp new file mode 100644 index 000000000..34cdb6079 --- /dev/null +++ b/power/1.3/vts/functional/Android.bp @@ -0,0 +1,27 @@ +// +// Copyright (C) 2018 The Android Open Source 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. +// + +cc_test { + name: "VtsHalPowerV1_3TargetTest", + defaults: ["VtsHalTargetTestDefaults"], + srcs: ["VtsHalPowerV1_3TargetTest.cpp"], + static_libs: [ + "android.hardware.power@1.0", + "android.hardware.power@1.1", + "android.hardware.power@1.2", + "android.hardware.power@1.3", + ], +} diff --git a/power/1.3/vts/functional/VtsHalPowerV1_3TargetTest.cpp b/power/1.3/vts/functional/VtsHalPowerV1_3TargetTest.cpp new file mode 100644 index 000000000..af1a1d86a --- /dev/null +++ b/power/1.3/vts/functional/VtsHalPowerV1_3TargetTest.cpp @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2018 The Android Open Source 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. + */ + +#define LOG_TAG "power_hidl_hal_test" +#include <android-base/logging.h> +#include <android/hardware/power/1.3/IPower.h> + +#include <VtsHalHidlTargetTestBase.h> +#include <VtsHalHidlTargetTestEnvBase.h> + +using ::android::sp; +using ::android::hardware::hidl_vec; +using ::android::hardware::Return; +using ::android::hardware::power::V1_3::IPower; +using ::android::hardware::power::V1_3::PowerHint; + +// Test environment for Power HIDL HAL. +class PowerHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase { + public: + // get the test environment singleton + static PowerHidlEnvironment* Instance() { + static PowerHidlEnvironment* instance = new PowerHidlEnvironment; + return instance; + } + + virtual void registerTestServices() override { registerTestService<IPower>(); } +}; + +class PowerHidlTest : public ::testing::VtsHalHidlTargetTestBase { + public: + virtual void SetUp() override { + power = ::testing::VtsHalHidlTargetTestBase::getService<IPower>( + PowerHidlEnvironment::Instance()->getServiceName<IPower>()); + ASSERT_NE(power, nullptr); + } + + sp<IPower> power; +}; + +TEST_F(PowerHidlTest, PowerHintAsync_1_3) { + ASSERT_TRUE(power->powerHintAsync_1_3(PowerHint::EXPENSIVE_RENDERING, 0).isOk()); +} + +int main(int argc, char** argv) { + ::testing::AddGlobalTestEnvironment(PowerHidlEnvironment::Instance()); + ::testing::InitGoogleTest(&argc, argv); + PowerHidlEnvironment::Instance()->init(&argc, argv); + int status = RUN_ALL_TESTS(); + LOG(INFO) << "Test result = " << status; + return status; +} |