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)
|
||||
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
|
||||
LOCAL_SHARED_LIBRARIES += android.hardware.power-V1-ndk_platform
|
||||
endif
|
||||
|
||||
LOCAL_HEADER_LIBRARIES += libutils_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 \
|
||||
external/icu/icu4c/source/common
|
||||
|
||||
@@ -105,7 +108,11 @@ LOCAL_INIT_RC := android.hardware.power-service.rc
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_CFLAGS += -Wno-unused-parameter -Wno-unused-variable
|
||||
LOCAL_VENDOR_MODULE := true
|
||||
ifeq ($(PLATFORM_SDK_VERSION), 34)
|
||||
LOCAL_VINTF_FRAGMENTS := /vintf/sdk34/power.xml
|
||||
else
|
||||
LOCAL_VINTF_FRAGMENTS := power.xml
|
||||
endif
|
||||
include $(BUILD_EXECUTABLE)
|
||||
endif
|
||||
|
||||
|
||||
22
Power.cpp
22
Power.cpp
@@ -25,11 +25,16 @@
|
||||
* 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) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* SPDX-License-Identifier: BSD-3-Clause-Clear
|
||||
*/
|
||||
|
||||
#define LOG_TAG "QTI PowerHAL"
|
||||
|
||||
#include "Power.h"
|
||||
#include "PowerHintSession.h"
|
||||
|
||||
#include <android-base/logging.h>
|
||||
|
||||
@@ -125,15 +130,22 @@ ndk::ScopedAStatus Power::isBoostSupported(Boost type, bool* _aidl_return) {
|
||||
*_aidl_return = false;
|
||||
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) {
|
||||
*_aidl_return = nullptr;
|
||||
return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
|
||||
LOG(INFO) << "Power createHintSession";
|
||||
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) {
|
||||
*outNanoseconds = -1;
|
||||
return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
|
||||
LOG(INFO) << "Power getHintSessionPreferredRate";
|
||||
*outNanoseconds = getSessionPreferredRate();
|
||||
return ndk::ScopedAStatus::ok();
|
||||
}
|
||||
|
||||
} // 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
|
||||
else ifeq ($(TARGET_BOARD_PLATFORM),pineapple)
|
||||
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
|
||||
|
||||
@@ -24,6 +24,10 @@ 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) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
SPDX-License-Identifier: BSD-3-Clause-Clear
|
||||
-->
|
||||
<manifest version="1.0" type="device">
|
||||
<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