Merge 137edfcf33 on remote branch
Change-Id: I59cf61ca72850dce6c65bcedf626faf328eed9ec
This commit is contained in:
@@ -12,13 +12,16 @@ LOCAL_SHARED_LIBRARIES := liblog libcutils libdl libxml2 libbase libutils libbin
|
|||||||
|
|
||||||
ifeq ($(call math_gt_or_eq, 33, $(PLATFORM_SDK_VERSION)), true)
|
ifeq ($(call math_gt_or_eq, 33, $(PLATFORM_SDK_VERSION)), true)
|
||||||
LOCAL_SHARED_LIBRARIES += android.hardware.power-V3-ndk
|
LOCAL_SHARED_LIBRARIES += android.hardware.power-V3-ndk
|
||||||
|
endif
|
||||||
|
ifeq ($(call math_gt_or_eq, 34, $(PLATFORM_SDK_VERSION)), true)
|
||||||
|
LOCAL_SHARED_LIBRARIES += android.hardware.power-V4-ndk
|
||||||
else
|
else
|
||||||
LOCAL_SHARED_LIBRARIES += android.hardware.power-V1-ndk_platform
|
LOCAL_SHARED_LIBRARIES += android.hardware.power-V1-ndk_platform
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LOCAL_HEADER_LIBRARIES += libutils_headers
|
LOCAL_HEADER_LIBRARIES += libutils_headers
|
||||||
LOCAL_HEADER_LIBRARIES += libhardware_headers
|
LOCAL_HEADER_LIBRARIES += libhardware_headers
|
||||||
LOCAL_SRC_FILES := power-common.c metadata-parser.c utils.c list.c hint-data.c powerhintparser.c Power.cpp main.cpp
|
LOCAL_SRC_FILES := power-common.c metadata-parser.c utils.c list.c hint-data.c powerhintparser.c Power.cpp main.cpp PowerHintSession.cpp
|
||||||
LOCAL_C_INCLUDES := external/libxml2/include \
|
LOCAL_C_INCLUDES := external/libxml2/include \
|
||||||
external/icu/icu4c/source/common
|
external/icu/icu4c/source/common
|
||||||
|
|
||||||
@@ -105,7 +108,11 @@ LOCAL_INIT_RC := android.hardware.power-service.rc
|
|||||||
LOCAL_MODULE_TAGS := optional
|
LOCAL_MODULE_TAGS := optional
|
||||||
LOCAL_CFLAGS += -Wno-unused-parameter -Wno-unused-variable
|
LOCAL_CFLAGS += -Wno-unused-parameter -Wno-unused-variable
|
||||||
LOCAL_VENDOR_MODULE := true
|
LOCAL_VENDOR_MODULE := true
|
||||||
|
ifeq ($(PLATFORM_SDK_VERSION), 34)
|
||||||
|
LOCAL_VINTF_FRAGMENTS := /vintf/sdk34/power.xml
|
||||||
|
else
|
||||||
LOCAL_VINTF_FRAGMENTS := power.xml
|
LOCAL_VINTF_FRAGMENTS := power.xml
|
||||||
|
endif
|
||||||
include $(BUILD_EXECUTABLE)
|
include $(BUILD_EXECUTABLE)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
22
Power.cpp
22
Power.cpp
@@ -25,11 +25,16 @@
|
|||||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||||
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* Changes from Qualcomm Innovation Center are provided under the following license:
|
||||||
|
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
|
* SPDX-License-Identifier: BSD-3-Clause-Clear
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define LOG_TAG "QTI PowerHAL"
|
#define LOG_TAG "QTI PowerHAL"
|
||||||
|
|
||||||
#include "Power.h"
|
#include "Power.h"
|
||||||
|
#include "PowerHintSession.h"
|
||||||
|
|
||||||
#include <android-base/logging.h>
|
#include <android-base/logging.h>
|
||||||
|
|
||||||
@@ -125,15 +130,22 @@ ndk::ScopedAStatus Power::isBoostSupported(Boost type, bool* _aidl_return) {
|
|||||||
*_aidl_return = false;
|
*_aidl_return = false;
|
||||||
return ndk::ScopedAStatus::ok();
|
return ndk::ScopedAStatus::ok();
|
||||||
}
|
}
|
||||||
ndk::ScopedAStatus Power::createHintSession(int32_t, int32_t, const std::vector<int32_t>&, int64_t,
|
ndk::ScopedAStatus Power::createHintSession(int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos,
|
||||||
std::shared_ptr<IPowerHintSession>* _aidl_return) {
|
std::shared_ptr<IPowerHintSession>* _aidl_return) {
|
||||||
*_aidl_return = nullptr;
|
LOG(INFO) << "Power createHintSession";
|
||||||
return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
|
if (threadIds.size() == 0) {
|
||||||
|
LOG(ERROR) << "Error: threadIds.size() shouldn't be " << threadIds.size();
|
||||||
|
*_aidl_return = nullptr;
|
||||||
|
return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
|
||||||
|
}
|
||||||
|
*_aidl_return = setPowerHintSession();
|
||||||
|
return ndk::ScopedAStatus::ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
ndk::ScopedAStatus Power::getHintSessionPreferredRate(int64_t* outNanoseconds) {
|
ndk::ScopedAStatus Power::getHintSessionPreferredRate(int64_t* outNanoseconds) {
|
||||||
*outNanoseconds = -1;
|
LOG(INFO) << "Power getHintSessionPreferredRate";
|
||||||
return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
|
*outNanoseconds = getSessionPreferredRate();
|
||||||
|
return ndk::ScopedAStatus::ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace impl
|
} // namespace impl
|
||||||
|
|||||||
45
PowerHintSession.cpp
Normal file
45
PowerHintSession.cpp
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
|
* SPDX-License-Identifier: BSD-3-Clause-Clear
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "PowerHintSession.h"
|
||||||
|
#include <android-base/logging.h>
|
||||||
|
#define LOG_TAG "QTI PowerHAL"
|
||||||
|
|
||||||
|
std::shared_ptr<aidl::android::hardware::power::IPowerHintSession> setPowerHintSession(){
|
||||||
|
std::shared_ptr<aidl::android::hardware::power::IPowerHintSession> mPowerSession = ndk::SharedRefBase::make<PowerHintSessionImpl>();
|
||||||
|
return mPowerSession;
|
||||||
|
}
|
||||||
|
|
||||||
|
int64_t getSessionPreferredRate(){
|
||||||
|
return 16666666L;
|
||||||
|
}
|
||||||
|
|
||||||
|
ndk::ScopedAStatus PowerHintSessionImpl::updateTargetWorkDuration(int64_t in_targetDurationNanos){
|
||||||
|
return ndk::ScopedAStatus::ok();
|
||||||
|
}
|
||||||
|
ndk::ScopedAStatus PowerHintSessionImpl::reportActualWorkDuration(const std::vector<::aidl::android::hardware::power::WorkDuration>& in_durations){
|
||||||
|
return ndk::ScopedAStatus::ok();
|
||||||
|
}
|
||||||
|
ndk::ScopedAStatus PowerHintSessionImpl::pause(){
|
||||||
|
return ndk::ScopedAStatus::ok();
|
||||||
|
}
|
||||||
|
ndk::ScopedAStatus PowerHintSessionImpl::resume(){
|
||||||
|
return ndk::ScopedAStatus::ok();
|
||||||
|
}
|
||||||
|
ndk::ScopedAStatus PowerHintSessionImpl::close(){
|
||||||
|
return ndk::ScopedAStatus::ok();
|
||||||
|
}
|
||||||
|
#if (PLATFORM_SDK_VERSION >= 34)
|
||||||
|
ndk::ScopedAStatus PowerHintSessionImpl::sendHint(aidl::android::hardware::power::SessionHint hint){
|
||||||
|
return ndk::ScopedAStatus::ok();
|
||||||
|
}
|
||||||
|
ndk::ScopedAStatus PowerHintSessionImpl::setThreads(const std::vector<int32_t>& threadIds){
|
||||||
|
if (threadIds.size() == 0) {
|
||||||
|
LOG(ERROR) << "Error: threadIds.size() shouldn't be " << threadIds.size();
|
||||||
|
return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
|
||||||
|
}
|
||||||
|
return ndk::ScopedAStatus::ok();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
31
PowerHintSession.h
Normal file
31
PowerHintSession.h
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
|
* SPDX-License-Identifier: BSD-3-Clause-Clear
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __POWERHINTSESSION__
|
||||||
|
#define __POWERHINTSESSION__
|
||||||
|
|
||||||
|
#include <aidl/android/hardware/power/WorkDuration.h>
|
||||||
|
#include <aidl/android/hardware/power/BnPowerHintSession.h>
|
||||||
|
#if (PLATFORM_SDK_VERSION >= 34)
|
||||||
|
#include <aidl/android/hardware/power/SessionHint.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
std::shared_ptr<aidl::android::hardware::power::IPowerHintSession> setPowerHintSession();
|
||||||
|
int64_t getSessionPreferredRate();
|
||||||
|
|
||||||
|
class PowerHintSessionImpl : public aidl::android::hardware::power::BnPowerHintSession{
|
||||||
|
public:
|
||||||
|
ndk::ScopedAStatus updateTargetWorkDuration(int64_t targetDurationNanos) override;
|
||||||
|
ndk::ScopedAStatus reportActualWorkDuration(
|
||||||
|
const std::vector<aidl::android::hardware::power::WorkDuration>& durations) override;
|
||||||
|
ndk::ScopedAStatus pause() override;
|
||||||
|
ndk::ScopedAStatus resume() override;
|
||||||
|
ndk::ScopedAStatus close() override;
|
||||||
|
#if (PLATFORM_SDK_VERSION >= 34)
|
||||||
|
ndk::ScopedAStatus sendHint(aidl::android::hardware::power::SessionHint hint) override;
|
||||||
|
ndk::ScopedAStatus setThreads(const std::vector<int32_t>& threadIds) override;
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
#endif /* __POWERHINTSESSION__ */
|
||||||
400
config/crow/powerhint.xml
Normal file
400
config/crow/powerhint.xml
Normal file
@@ -0,0 +1,400 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
/*Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are
|
||||||
|
* met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above
|
||||||
|
* copyright notice, this list of conditions and the following
|
||||||
|
* disclaimer in the documentation and/or other materials provided
|
||||||
|
* with the distribution.
|
||||||
|
* * Neither the name of The Linux Foundation nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived
|
||||||
|
* from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||||
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||||
|
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||||
|
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* Changes from Qualcomm Innovation Center are provided under the following license
|
||||||
|
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
|
* SPDX-License-Identifier: BSD-3-Clause-Clear
|
||||||
|
*/
|
||||||
|
-->
|
||||||
|
<HintConfigs>
|
||||||
|
<Powerhint>
|
||||||
|
<!-- video decode 30 fps non secure content tunings-->
|
||||||
|
<!-- MPCTLV3_MIN_FREQ_CLUSTER_BIG_CORE_0, 0XA -->
|
||||||
|
<Config
|
||||||
|
Id="0X00001502" Enable="true" Timeout="0" Target="crow"
|
||||||
|
Resources="0x40800000, 0XA"/>
|
||||||
|
|
||||||
|
<!-- video decode 30 fps secure content tunings-->
|
||||||
|
<!-- MPCTLV3_MIN_FREQ_CLUSTER_BIG_CORE_0, 0XA -->
|
||||||
|
<Config
|
||||||
|
Id="0X00001504" Enable="true" Timeout="0" Target="crow"
|
||||||
|
Resources="0x40800000, 0XA"/>
|
||||||
|
|
||||||
|
<!--camera ZSLPreview-->
|
||||||
|
<!--CPU-LLC BWMON - Set sample_ms 33-->
|
||||||
|
<!--CPU-LLC BWMON - Set io_percent 100 -->
|
||||||
|
<!--CPU-LLC BWMON - Set hyst_length hist memory 0 -->
|
||||||
|
<!--CPU-LLC BWMON - Set max freq 933mhz -->
|
||||||
|
<!--CPU-LLC-DDR BWMON - Set sample_ms 33 -->
|
||||||
|
<!--CPU-LLC-DDR BWMON - Set io_percent 100 -->
|
||||||
|
<!--CPU-LLC-DDR BWMON - Set hyst_length hist memory 0 -->
|
||||||
|
<!--L CPU - Disable schedutil PL -->
|
||||||
|
<!--L CPU - Set hispeed load 99 -->
|
||||||
|
<!--L CPU - max freq 9020000 -->
|
||||||
|
<!--B CPU - Disable Core Control -->
|
||||||
|
<!--GROUP UPMIGRATE - 35 -->
|
||||||
|
<!--GROUP DOWNMIGRATE - 30 -->
|
||||||
|
<!--UPMIGRATE - 35 85-->
|
||||||
|
<!--DOWNMIGRATE - 30 80-->
|
||||||
|
<!--AB_SCALE - 50-->
|
||||||
|
<Config
|
||||||
|
Id="0x00001330" Enable="true" Timeout="0" Target="crow"
|
||||||
|
Resources="0x4183C000, 0x21, 0x41834000, 0x64, 0x41838000, 0, 0x41848000, 0xE3C88, 0x43034000, 0x21,
|
||||||
|
0x43020000, 0x64, 0x43024000, 0, 0x41444100, 0, 0x41440100, 0x63, 0x40804100, 0x386, 0x41008000, 0, 0x40CF4000, 0x0023001E, 0x40CE0000, 0x0023001E, 0x40CE0200, 0x00550050, 0x43048000, 0x32"/>
|
||||||
|
|
||||||
|
<!--camera 30fps-->
|
||||||
|
<!--CPU-LLC BWMON - Set sample_ms 33 -->
|
||||||
|
<!--CPU-LLC BWMON - Set io_percent 100 -->
|
||||||
|
<!--CPU-LLC BWMON - Set hyst_length hist memory 0 -->
|
||||||
|
<!--CPU-LLC BWMON - Set max freq 933mhz -->
|
||||||
|
<!--CPU-LLC-DDR BWMON - Set sample_ms 33 -->
|
||||||
|
<!--CPU-LLC-DDR BWMON - Set io_percent 100 -->
|
||||||
|
<!--CPU-LLC-DDR BWMON - Set hyst_length hist memory 0 -->
|
||||||
|
<!--CPU-LLC-DDR BWMON - Set min_freq 547 -->
|
||||||
|
<!--L CPU max freq 9020000 -->
|
||||||
|
<!--L CPU - Disable schedutil PL -->
|
||||||
|
<!--B CPU - Disable schedutil PL -->
|
||||||
|
<!--B CPU - Set hispeed load 99 -->
|
||||||
|
<!--UPMIGRATE - 45 85 -->
|
||||||
|
<!--DOWNMIGRATE - 40 85 -->
|
||||||
|
<!--B CPU - Disable Core Control -->
|
||||||
|
<!--AB_SCALE - 50-->
|
||||||
|
<Config
|
||||||
|
Id="0x00001331" Enable="true" Timeout="0" Target="crow"
|
||||||
|
Resources="0x4183C000, 0x21, 0x41834000, 0x64, 0x41838000, 0, 0x41848000, 0xE3C88, 0x43034000, 0x21,
|
||||||
|
0x43020000, 0x64, 0x43024000, 0, 0x4303C000, 0x858B8 ,0x40804100, 0x386, 0x41444100, 0, 0x41444000, 0, 0x41440000, 0x63,
|
||||||
|
0x40CE0000, 0x002D0028, 0x40CE0200, 0x00550055, 0x41008000, 0, 0x43048000, 0x32"/>
|
||||||
|
|
||||||
|
<!--camera 60fps-->
|
||||||
|
<!--CPU-LLC BWMON - Set sample_ms 16 -->
|
||||||
|
<!--CPU-LLC BWMON - Set io_percent 100 -->
|
||||||
|
<!--CPU-LLC BWMON - Set hyst_length hist memory 0 -->
|
||||||
|
<!--CPU-LLC BWMON - Set max freq 933mhz -->
|
||||||
|
<!--CPU-LLC-DDR BWMON - Set sample_ms 16 -->
|
||||||
|
<!--CPU-LLC-DDR BWMON - Set io_percent 100 -->
|
||||||
|
<!--CPU-LLC-DDR BWMON - Set hyst_length hist memory 0 -->
|
||||||
|
<!--CPU-LLC-DDR BWMON - Set min_freq 1555 -->
|
||||||
|
<!--L CPU max freq 1094000 -->
|
||||||
|
<!--L CPU - Disable schedutil PL -->
|
||||||
|
<!--B CPU - Disable schedutil PL -->
|
||||||
|
<!--B CPU - Set hispeed load 99 -->
|
||||||
|
<!--UPMIGRATE - 35 85-->
|
||||||
|
<!--DOWNMIGRATE - 30 85-->
|
||||||
|
<!--B CPU - Disable Core Control -->
|
||||||
|
<!--AB_SCALE - 50-->
|
||||||
|
<Config
|
||||||
|
Id="0x00001332" Enable="true" Timeout="0" Target="crow"
|
||||||
|
Resources="0x4183C000, 0x10, 0x41834000, 0x64, 0x41838000, 0, 0x41848000, 0xE3C88, 0x43034000, 0x10,
|
||||||
|
0x43020000, 0x64, 0x43024000, 0, 0x4303C000, 0x17BA38, 0x40804100, 0x446, 0x41444100, 0, 0x41444000, 0, 0x41440000, 0x63,
|
||||||
|
0x40CE0000, 0x0023001E, 0x40CE0200, 0x00550055, 0x41008000, 0, 0x43048000, 0x32"/>
|
||||||
|
|
||||||
|
<!-- camera HFR -->
|
||||||
|
<!--CPU-LLC BWMON - Set sample_ms 16 -->
|
||||||
|
<!--CPU-LLC BWMON - Set io_percent 100 -->
|
||||||
|
<!--CPU-LLC BWMON - Set hyst_length hist memory 0 -->
|
||||||
|
<!--CPU-LLC BWMON - Set max freq 933mhz -->
|
||||||
|
<!--CPU-LLC-DDR BWMON - Set sample_ms 16 -->
|
||||||
|
<!--CPU-LLC-DDR BWMON - Set io_percent 100 -->
|
||||||
|
<!--CPU-LLC-DDR BWMON - Set hyst_length hist memory 0 -->
|
||||||
|
<!--CPU-LLC-DDR BWMON - Set min_freq 1555 -->
|
||||||
|
<!--L CPU max freq 1094000 -->
|
||||||
|
<!--L CPU - Disable schedutil PL -->
|
||||||
|
<!--B CPU - Disable schedutil PL -->
|
||||||
|
<!--B CPU - Set hispeed load 99 -->
|
||||||
|
<!--UPMIGRATE - 35 85-->
|
||||||
|
<!--DOWNMIGRATE - 30 85-->
|
||||||
|
<!--B CPU - Disable Core Control -->
|
||||||
|
<Config
|
||||||
|
Id="0x00001333" Enable="true" Timeout="0" Target="crow"
|
||||||
|
Resources="0x4183C000, 0x10, 0x41834000, 0x64, 0x41838000, 0, 0x41848000, 0xE3C88, 0x43034000, 0x10,
|
||||||
|
0x43020000, 0x64, 0x43024000, 0, 0x4303C000, 0x17BA38, 0x40804100, 0x446, 0x41444100, 0, 0x41444000, 0, 0x41440000, 0x63,
|
||||||
|
0x40CE0000, 0x0023001E, 0x40CE0200, 0x00550055, 0x41008000, 0"/>
|
||||||
|
|
||||||
|
<!--video encode HFR 480 fps-->
|
||||||
|
<!-- MPCTLV3_ALL_CPUS_PWR_CLPS_DIS, 0x1 -->
|
||||||
|
<!-- MPCTLV3_SCHED_BOOST, 0x1 -->
|
||||||
|
<!-- MPCTLV3_MAX_FREQ_CLUSTER_BIG_CORE_0, 0xFFF -->
|
||||||
|
<!-- MPCTLV3_MIN_FREQ_CLUSTER_BIG_CORE_0, 0xFFF -->
|
||||||
|
<!-- MPCTLV3_MAX_FREQ_CLUSTER_LITTLE_CORE_0, 0xFFF -->
|
||||||
|
<!-- MPCTLV3_MIN_FREQ_CLUSTER_LITTLE_CORE_0, 0xFFF -->
|
||||||
|
<!-- MPCTLV3_MIN_FREQ_CLUSTER_PLUS_CORE_0, 0xFFF -->
|
||||||
|
<!-- MPCTLV3_MAX_FREQ_CLUSTER_PLUS_CORE_0, 0xFFF -->
|
||||||
|
<Config
|
||||||
|
Id="0x00001334" Enable="true" Timeout="0" Target="crow"
|
||||||
|
Resources="0x40400000, 0x1, 0x40800100, 0x40C, 0x40800000, 0x4CC, 0x40C20000, 0x14,
|
||||||
|
0x40C1C000, 0x1E, 0x41820000, 0x0A, 0x41808000, 0x50, 0x4180C000, 0"/>
|
||||||
|
|
||||||
|
<!-- same settings for all the qvr power levels intentionally -->
|
||||||
|
<!-- qvr level cpu1 gpu1 -->
|
||||||
|
<!-- Prime CPU - Cluster min freq ~.768 Ghz -->
|
||||||
|
<!-- Prime CPU - Cluster max freq ~.2.4 Ghz -->
|
||||||
|
<!-- B CPU - Cluster min freq ~.652 Ghz -->
|
||||||
|
<!-- B CPU - Cluster max freq ~.2.208 Ghz -->
|
||||||
|
<!-- L CPU - Cluster min freq ~.614 Ghz -->
|
||||||
|
<!-- L CPU - Cluster max freq ~1.094 Ghz -->
|
||||||
|
<!-- GPU - min pwrlevel 4 (freq 285 Mhz) -->
|
||||||
|
<!-- GPU - max pwrlevel 0 (freq 540 Mhz) -->
|
||||||
|
<!-- Min Big CPUs 2 -->
|
||||||
|
<!-- Idefinite Duration -->
|
||||||
|
<Config
|
||||||
|
Id="0x0000130A" Enable="true" Target="crow" Timeout="0"
|
||||||
|
Resources="0x40800200, 0x300, 0x40804200, 0x960, 0x40800000, 0x28C,
|
||||||
|
0x40804000, 0x8A0, 0x40800100, 0x266, 0x40804100, 0x446,
|
||||||
|
0x42804000, 0x4, 0x42808000, 0x0, 0x41000000, 0x2"/>
|
||||||
|
|
||||||
|
<!-- qvr level cpu1 gpu2 -->
|
||||||
|
<!-- Prime CPU - Cluster min freq ~.768 Ghz -->
|
||||||
|
<!-- Prime CPU - Cluster max freq ~.2.4 Ghz -->
|
||||||
|
<!-- B CPU - Cluster min freq ~.652 Ghz -->
|
||||||
|
<!-- B CPU - Cluster max freq ~.2.208 Ghz -->
|
||||||
|
<!-- L CPU - Cluster min freq ~.614 Ghz -->
|
||||||
|
<!-- L CPU - Cluster max freq ~1.094 Ghz -->
|
||||||
|
<!-- GPU - min pwrlevel 4 (freq 285 Mhz) -->
|
||||||
|
<!-- GPU - max pwrlevel 0 (freq 540 Mhz) -->
|
||||||
|
<!-- Min Big CPUs 2 -->
|
||||||
|
<!-- Idefinite Duration -->
|
||||||
|
<Config
|
||||||
|
Id="0x0000130B" Enable="true" Target="crow" Timeout="0"
|
||||||
|
Resources="0x40800200, 0x300, 0x40804200, 0x960, 0x40800000, 0x28C,
|
||||||
|
0x40804000, 0x8A0, 0x40800100, 0x266, 0x40804100, 0x446,
|
||||||
|
0x42804000, 0x4, 0x42808000, 0x0, 0x41000000, 0x2"/>
|
||||||
|
|
||||||
|
<!-- qvr level cpu1 gpu3 -->
|
||||||
|
<!-- Prime CPU - Cluster min freq ~.768 Ghz -->
|
||||||
|
<!-- Prime CPU - Cluster max freq ~.2.4 Ghz -->
|
||||||
|
<!-- B CPU - Cluster min freq ~.652 Ghz -->
|
||||||
|
<!-- B CPU - Cluster max freq ~2.208 Ghz -->
|
||||||
|
<!-- L CPU - Cluster min freq ~.614 Ghz -->
|
||||||
|
<!-- L CPU - Cluster max freq ~1.094 Ghz -->
|
||||||
|
<!-- GPU - min pwrlevel 4 (freq 285 Mhz) -->
|
||||||
|
<!-- GPU - max pwrlevel 0 (freq 540 Mhz) -->
|
||||||
|
<!-- Min Big CPUs 2 -->
|
||||||
|
<!-- Idefinite Duration -->
|
||||||
|
<Config
|
||||||
|
Id="0x0000130C" Enable="true" Target="crow" Timeout="0"
|
||||||
|
Resources="0x40800200, 0x300, 0x40804200, 0x960, 0x40800000, 0x28C,
|
||||||
|
0x40804000, 0x8A0, 0x40800100, 0x266, 0x40804100, 0x446,
|
||||||
|
0x42804000, 0x4, 0x42808000, 0x0, 0x41000000, 0x2"/>
|
||||||
|
|
||||||
|
<!-- qvr level cpu2 gpu1 -->
|
||||||
|
<!-- Prime CPU - Cluster min freq ~.768 Ghz -->
|
||||||
|
<!-- Prime CPU - Cluster max freq ~.2.4 Ghz -->
|
||||||
|
<!-- B CPU - Cluster min freq ~.652 Ghz -->
|
||||||
|
<!-- B CPU - Cluster max freq ~.2.208 Ghz -->
|
||||||
|
<!-- L CPU - Cluster min freq ~.614 Ghz -->
|
||||||
|
<!-- L CPU - Cluster max freq ~1.094 Ghz -->
|
||||||
|
<!-- GPU - min pwrlevel 4 (freq 285 Mhz) -->
|
||||||
|
<!-- GPU - max pwrlevel 0 (freq 540 Mhz) -->
|
||||||
|
<!-- Min Big CPUs 2 -->
|
||||||
|
<!-- Idefinite Duration -->
|
||||||
|
<Config
|
||||||
|
Id="0x0000130D" Enable="true" Target="crow" Timeout="0"
|
||||||
|
Resources="0x40800200, 0x300, 0x40804200, 0x960, 0x40800000, 0x28C,
|
||||||
|
0x40804000, 0x8A0, 0x40800100, 0x266, 0x40804100, 0x446,
|
||||||
|
0x42804000, 0x4, 0x42808000, 0x0, 0x41000000, 0x2"/>
|
||||||
|
|
||||||
|
<!-- qvr level cpu2 gpu2 -->
|
||||||
|
<!-- Prime CPU - Cluster min freq ~.768 Ghz -->
|
||||||
|
<!-- Prime CPU - Cluster max freq ~.2.4 Ghz -->
|
||||||
|
<!-- B CPU - Cluster min freq ~.652 Ghz -->
|
||||||
|
<!-- B CPU - Cluster max freq ~.2.208 Ghz -->
|
||||||
|
<!-- L CPU - Cluster min freq ~.614 Ghz -->
|
||||||
|
<!-- L CPU - Cluster max freq ~1.094 Ghz -->
|
||||||
|
<!-- GPU - min pwrlevel 4 (freq 285 Mhz) -->
|
||||||
|
<!-- GPU - max pwrlevel 0 (freq 540 Mhz) -->
|
||||||
|
<!-- Min Big CPUs 2 -->
|
||||||
|
<!-- Idefinite Duration -->
|
||||||
|
<Config
|
||||||
|
Id="0x0000130E" Enable="true" Target="crow" Timeout="0"
|
||||||
|
Resources="0x40800200, 0x300, 0x40804200, 0x960, 0x40800000, 0x28C,
|
||||||
|
0x40804000, 0x8A0, 0x40800100, 0x266, 0x40804100, 0x446,
|
||||||
|
0x42804000, 0x4, 0x42808000, 0x0, 0x41000000, 0x2"/>
|
||||||
|
|
||||||
|
<!-- qvr level cpu2 gpu3 -->
|
||||||
|
<!-- Prime CPU - Cluster min freq ~.768 Ghz -->
|
||||||
|
<!-- Prime CPU - Cluster max freq ~.2.4 Ghz -->
|
||||||
|
<!-- B CPU - Cluster min freq ~.652 Ghz -->
|
||||||
|
<!-- B CPU - Cluster max freq ~.2.208 Ghz -->
|
||||||
|
<!-- L CPU - Cluster min freq ~.614 Ghz -->
|
||||||
|
<!-- L CPU - Cluster max freq ~1.094 Ghz -->
|
||||||
|
<!-- GPU - min pwrlevel 4 (freq 285 Mhz) -->
|
||||||
|
<!-- GPU - max pwrlevel 0 (freq 540 Mhz) -->
|
||||||
|
<!-- Min Big CPUs 2 -->
|
||||||
|
<!-- Idefinite Duration -->
|
||||||
|
<Config
|
||||||
|
Id="0x0000130F" Enable="true" Target="crow" Timeout="0"
|
||||||
|
Resources="0x40800200, 0x300, 0x40804200, 0x960, 0x40800000, 0x28C,
|
||||||
|
0x40804000, 0x8A0, 0x40800100, 0x266, 0x40804100, 0x446,
|
||||||
|
0x42804000, 0x4, 0x42808000, 0x0, 0x41000000, 0x2"/>
|
||||||
|
|
||||||
|
<!-- qvr level cpu3 gpu1 -->
|
||||||
|
<!-- Prime CPU - Cluster min freq ~.768 Ghz -->
|
||||||
|
<!-- Prime CPU - Cluster max freq ~.2.4 Ghz -->
|
||||||
|
<!-- B CPU - Cluster min freq ~.652 Ghz -->
|
||||||
|
<!-- B CPU - Cluster max freq ~.2.208 Ghz -->
|
||||||
|
<!-- L CPU - Cluster min freq ~.614 Ghz -->
|
||||||
|
<!-- L CPU - Cluster max freq ~1.094 Ghz -->
|
||||||
|
<!-- GPU - min pwrlevel 4 (freq 285 Mhz) -->
|
||||||
|
<!-- GPU - max pwrlevel 0 (freq 540 Mhz) -->
|
||||||
|
<!-- Min Big CPUs 2 -->
|
||||||
|
<!-- Idefinite Duration -->
|
||||||
|
<Config
|
||||||
|
Id="0x00001310" Enable="true" Target="crow" Timeout="0"
|
||||||
|
Resources="0x40800200, 0x300, 0x40804200, 0x960, 0x40800000, 0x28C,
|
||||||
|
0x40804000, 0x8A0, 0x40800100, 0x266, 0x40804100, 0x446,
|
||||||
|
0x42804000, 0x4, 0x42808000, 0x0, 0x41000000, 0x2"/>
|
||||||
|
|
||||||
|
<!-- qvr level cpu3 gpu2 -->
|
||||||
|
<!-- Prime CPU - Cluster min freq ~.768 Ghz -->
|
||||||
|
<!-- Prime CPU - Cluster max freq ~.2.4 Ghz -->
|
||||||
|
<!-- B CPU - Cluster min freq ~.652 Ghz -->
|
||||||
|
<!-- B CPU - Cluster max freq ~.2.208 Ghz -->
|
||||||
|
<!-- L CPU - Cluster min freq ~.614 Ghz -->
|
||||||
|
<!-- L CPU - Cluster max freq ~1.094 Ghz -->
|
||||||
|
<!-- GPU - min pwrlevel 4 (freq 285 Mhz) -->
|
||||||
|
<!-- GPU - max pwrlevel 0 (freq 540 Mhz) -->
|
||||||
|
<!-- Min Big CPUs 2 -->
|
||||||
|
<!-- Idefinite Duration -->
|
||||||
|
<Config
|
||||||
|
Id="0x00001311" Enable="true" Target="crow" Timeout="0"
|
||||||
|
Resources="0x40800200, 0x300, 0x40804200, 0x960, 0x40800000, 0x28C,
|
||||||
|
0x40804000, 0x8A0, 0x40800100, 0x266, 0x40804100, 0x446,
|
||||||
|
0x42804000, 0x4, 0x42808000, 0x0, 0x41000000, 0x2"/>
|
||||||
|
|
||||||
|
<!-- qvr level cpu3 gpu3 -->
|
||||||
|
<!-- Prime CPU - Cluster min freq ~.768 Ghz -->
|
||||||
|
<!-- Prime CPU - Cluster max freq ~.2.4 Ghz -->
|
||||||
|
<!-- B CPU - Cluster min freq ~.652 Ghz -->
|
||||||
|
<!-- B CPU - Cluster max freq ~.2.208 Ghz -->
|
||||||
|
<!-- L CPU - Cluster min freq ~.614 Ghz -->
|
||||||
|
<!-- L CPU - Cluster max freq ~1.094 Ghz -->
|
||||||
|
<!-- GPU - min pwrlevel 4 (freq 285 Mhz) -->
|
||||||
|
<!-- GPU - max pwrlevel 0 (freq 540 Mhz) -->
|
||||||
|
<!-- Min Big CPUs 2 -->
|
||||||
|
<!-- Idefinite Duration -->
|
||||||
|
<Config
|
||||||
|
Id="0x00001312" Enable="true" Target="crow" Timeout="0"
|
||||||
|
Resources="0x40800200, 0x300, 0x40804200, 0x960, 0x40800000, 0x28C,
|
||||||
|
0x40804000, 0x8A0, 0x40800100, 0x266, 0x40804100, 0x446,
|
||||||
|
0x42804000, 0x4, 0x42808000, 0x0, 0x41000000, 0x2"/>
|
||||||
|
|
||||||
|
<!-- sustained performance -->
|
||||||
|
<!-- Prime CPU - Cluster min freq uncapped -->
|
||||||
|
<!-- B CPU - Cluster min freq uncapped -->
|
||||||
|
<!-- L CPU - Cluster min freq uncapped -->
|
||||||
|
<!-- Prime CPU - Cluster max freq ~1.094 Ghz -->
|
||||||
|
<!-- B CPU - Cluster max freq ~1.382 GHz -->
|
||||||
|
<!-- L CPU - Cluster max freq ~1.094 Ghz -->
|
||||||
|
<!-- GPU - min freq 285Mhz -->
|
||||||
|
<!-- GPU - max freq 443Mhz -->
|
||||||
|
<!-- GPUBW freq uncapped -->
|
||||||
|
<Config
|
||||||
|
Id="0x00001206" Enable="true" Timeout="0" Target="crow"
|
||||||
|
Resources="0x40800200, 0x0, 0x40800000, 0x0, 0x40800100, 0x0, 0x40804200, 0x446,
|
||||||
|
0x40804000, 0x566, 0x40804100, 0x446, 0X4280C000, 0x11D, 0X42810000, 0x1BB,
|
||||||
|
0x42814000, 0x0"/>
|
||||||
|
|
||||||
|
<!-- vr mode -->
|
||||||
|
<!-- Prime CPU - Cluster min freq ~1.094 Ghz -->
|
||||||
|
<!-- B CPU - Cluster min freq ~1.132 Ghz -->
|
||||||
|
<!-- L CPU - Cluster min freq ~0.902 Ghz -->
|
||||||
|
<!-- Prime CPU - Cluster max freq ~2.169 Ghz -->
|
||||||
|
<!-- B CPU - Cluster max freq ~1.804 Ghz -->
|
||||||
|
<!-- L CPU - Cluster max freq ~1.651 Ghz -->
|
||||||
|
<!-- GPU - min freq 285Mhz -->
|
||||||
|
<!-- GPU - max freq 540Mhz -->
|
||||||
|
<!-- GPUBW uncapped -->
|
||||||
|
<Config
|
||||||
|
Id="0x00001207" Enable="true" Timeout="0" Target="crow"
|
||||||
|
Resources="0x40800200, 0x446, 0x40800000, 0x46C, 0x40800100, 0x386, 0x40804200, 0x879,
|
||||||
|
0x40804000, 0x70C, 0x40804100, 0x673, 0X4280C000, 0x11D, 0X4280C000, 0x21C,
|
||||||
|
0x42814000, 0x0"/>
|
||||||
|
|
||||||
|
<!-- vr mode sustained performance -->
|
||||||
|
<!-- Prime CPU - Cluster min freq ~1.094 Ghz -->
|
||||||
|
<!-- B CPU - Cluster min freq ~1.132 Ghz -->
|
||||||
|
<!-- L CPU - Cluster min freq ~1.094 Ghz -->
|
||||||
|
<!-- Prime CPU - Cluster max freq ~1.094 Ghz -->
|
||||||
|
<!-- B CPU - Cluster max freq ~1.132 Ghz -->
|
||||||
|
<!-- L CPU - Cluster max freq ~1.094 Ghz -->
|
||||||
|
<!-- GPU - min freq 443Mhz -->
|
||||||
|
<!-- GPU - max freq 443Mhz -->
|
||||||
|
<!-- GPUBW uncapped -->
|
||||||
|
<Config
|
||||||
|
Id="0x00001301" Enable="true" Timeout="0" Target="crow"
|
||||||
|
Resources="0x40800200, 0x446, 0x40800000, 0x46C, 0x40800100, 0x446, 0x40804200, 0x446,
|
||||||
|
0x40804000, 0x46C, 0x40804100, 0x446, 0X4280C000, 0x1BB, 0X42810000, 0x1BB,
|
||||||
|
0x42814000, 0x0"/>
|
||||||
|
|
||||||
|
<!-- camera open tunings-->
|
||||||
|
<!-- MPCTLV3_ALL_CPUS_PWR_CLPS_DIS, 0x1 -->
|
||||||
|
<!-- MPCTLV3_SCHED_BOOST, 0x1 -->
|
||||||
|
<!-- MPCTLV3_MAX_FREQ_CLUSTER_BIG_CORE_0, ~1.804 Ghz -->
|
||||||
|
<!-- MPCTLV3_MIN_FREQ_CLUSTER_BIG_CORE_0, ~1.804 Ghz -->
|
||||||
|
<!-- MPCTLV3_MAX_FREQ_CLUSTER_LITTLE_CORE_0, ~1.651 Ghz -->
|
||||||
|
<!-- MPCTLV3_MIN_FREQ_CLUSTER_LITTLE_CORE_0, ~1.651 Ghz -->
|
||||||
|
<!-- MPCTLV3_MIN_FREQ_CLUSTER_PLUS_CORE_0, ~2.169 Ghz -->
|
||||||
|
<!-- MPCTLV3_MAX_FREQ_CLUSTER_PLUS_CORE_0, ~2.169 Ghz-->
|
||||||
|
<!-- CPU-LLC BWMON - Set max freq 933mhz -->
|
||||||
|
<Config
|
||||||
|
Id="0x00001337" Enable="true" Timeout="0" Target="crow"
|
||||||
|
Resources="0x40400000, 0x1, 0x40C00000, 0x1, 0x40804000, 0X70C, 0x40800000, 0X70C,
|
||||||
|
0x40804100, 0X673, 0x40800100, 0X673, 0x40800200, 0X879, 0x40804200, 0X879,
|
||||||
|
0x41848000, 0xE3C88"/>
|
||||||
|
|
||||||
|
<!-- camera close tunings-->
|
||||||
|
<!-- MPCTLV3_ALL_CPUS_PWR_CLPS_DIS, 0x1 -->
|
||||||
|
<!-- MPCTLV3_SCHED_BOOST, 0x1 -->
|
||||||
|
<!-- MPCTLV3_MAX_FREQ_CLUSTER_BIG_CORE_0, ~1.804 Ghz -->
|
||||||
|
<!-- MPCTLV3_MIN_FREQ_CLUSTER_BIG_CORE_0, ~1.804 Ghz -->
|
||||||
|
<!-- MPCTLV3_MAX_FREQ_CLUSTER_LITTLE_CORE_0, ~1.651 Ghz -->
|
||||||
|
<!-- MPCTLV3_MIN_FREQ_CLUSTER_LITTLE_CORE_0, ~1.651 Ghz -->
|
||||||
|
<!-- MPCTLV3_MIN_FREQ_CLUSTER_PLUS_CORE_0, ~2.169 Ghz -->
|
||||||
|
<!-- MPCTLV3_MAX_FREQ_CLUSTER_PLUS_CORE_0, ~2.169 Ghz -->
|
||||||
|
<!-- CPU-LLC BWMON - Set max freq 933mhz -->
|
||||||
|
<Config
|
||||||
|
Id="0x00001338" Enable="true" Timeout="0" Target="crow"
|
||||||
|
Resources="0x40400000, 0x1, 0x40C00000, 0x1, 0x40804000, 0X70C, 0x40800000, 0X70C,
|
||||||
|
0x40804100, 0X673, 0x40800100, 0X673, 0x40800200, 0X879, 0x40804200, 0X879,
|
||||||
|
0x41848000, 0xE3C88"/>
|
||||||
|
|
||||||
|
<!-- camera snapshot tunings-->
|
||||||
|
<!-- MPCTLV3_ALL_CPUS_PWR_CLPS_DIS, 0x1 -->
|
||||||
|
<!-- Silver cluster min freq to ~1.094 GHz -->
|
||||||
|
<!-- Gold cluster min freq to 1.132 GHz -->
|
||||||
|
<!-- MPCTLV3_SCHED_DOWNMIGRATE, 0x14 -->
|
||||||
|
<!-- MPCTLV3_SCHED_UPMIGRATE, 0x1E -->
|
||||||
|
<!-- CPU-LLC BWMON - Set max freq 933mhz -->
|
||||||
|
<Config
|
||||||
|
Id="0x00001339" Enable="true" Timeout="0" Target="crow"
|
||||||
|
Resources="0x40400000, 0x1, 0x40800100, 0x446, 0x40800000, 0x46C, 0x40CE0000, 0x001E0014,
|
||||||
|
0x41848000, 0xE3C88"/>
|
||||||
|
</Powerhint>
|
||||||
|
</HintConfigs>
|
||||||
@@ -21,4 +21,6 @@ else ifeq ($(TARGET_BOARD_PLATFORM),kalama)
|
|||||||
PRODUCT_COPY_FILES += vendor/qcom/opensource/power/config/kalama/powerhint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.xml
|
PRODUCT_COPY_FILES += vendor/qcom/opensource/power/config/kalama/powerhint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.xml
|
||||||
else ifeq ($(TARGET_BOARD_PLATFORM),pineapple)
|
else ifeq ($(TARGET_BOARD_PLATFORM),pineapple)
|
||||||
PRODUCT_COPY_FILES += vendor/qcom/opensource/power/config/pineapple/powerhint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.xml
|
PRODUCT_COPY_FILES += vendor/qcom/opensource/power/config/pineapple/powerhint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.xml
|
||||||
|
else ifeq ($(TARGET_BOARD_PLATFORM),crow)
|
||||||
|
PRODUCT_COPY_FILES += vendor/qcom/opensource/power/config/crow/powerhint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.xml
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -24,6 +24,10 @@ BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|||||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||||
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
Changes from Qualcomm Innovation Center are provided under the following license:
|
||||||
|
Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
|
SPDX-License-Identifier: BSD-3-Clause-Clear
|
||||||
-->
|
-->
|
||||||
<manifest version="1.0" type="device">
|
<manifest version="1.0" type="device">
|
||||||
<hal format="aidl">
|
<hal format="aidl">
|
||||||
|
|||||||
11
vintf/sdk34/power.xml
Normal file
11
vintf/sdk34/power.xml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<!--
|
||||||
|
Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
|
SPDX-License-Identifier: BSD-3-Clause-Clear
|
||||||
|
-->
|
||||||
|
<manifest version="1.0" type="device">
|
||||||
|
<hal format="aidl">
|
||||||
|
<name>android.hardware.power</name>
|
||||||
|
<version>4</version>
|
||||||
|
<fqname>IPower/default</fqname>
|
||||||
|
</hal>
|
||||||
|
</manifest>
|
||||||
Reference in New Issue
Block a user