power: Add global debug property for override config path properly

An init trigger would restart powerhal as early as the property was
loaded and it is hopefully early than any clients would try to connect.

Also remove the obsolete restart hook with audio.

Bug: 218872105
Test: boot
Signed-off-by: Wei Wang <wvw@google.com>
Change-Id: Ib55897f65709a963016b729f213718aae5af8e8c
This commit is contained in:
Wei Wang 2022-02-15 21:49:11 -08:00 committed by Bruno Martins
parent 3978399d16
commit 1fbcb7d62e
2 changed files with 22 additions and 23 deletions

View File

@ -7,18 +7,13 @@ service vendor.power-hal-aidl /vendor/bin/hw/android.hardware.power-service.xiao
on late-fs
start vendor.power-hal-aidl
# restart powerHAL when framework died
# Restart powerHAL when framework died
on property:init.svc.zygote=restarting && property:vendor.powerhal.state=*
setprop vendor.powerhal.state ""
setprop vendor.powerhal.audio ""
setprop vendor.powerhal.rendering ""
restart vendor.power-hal-aidl
# restart powerHAL when audioHAL died
on property:init.svc.vendor.audio-hal-2-0=restarting && property:vendor.powerhal.audio=AUDIO_STREAMING_LOW_LATENCY
setprop vendor.powerhal.audio ""
restart vendor.power-hal-aidl
# Clean up after b/163539793 resolved
on property:vendor.powerhal.dalvik.vm.dex2oat-threads=*
setprop dalvik.vm.dex2oat-threads ${vendor.powerhal.dalvik.vm.dex2oat-threads}
@ -27,3 +22,11 @@ on property:vendor.powerhal.dalvik.vm.dex2oat-threads=*
on property:vendor.powerhal.dalvik.vm.dex2oat-cpu-set=*
setprop dalvik.vm.dex2oat-cpu-set ${vendor.powerhal.dalvik.vm.dex2oat-cpu-set}
setprop dalvik.vm.restore-dex2oat-cpu-set ${vendor.powerhal.dalvik.vm.dex2oat-cpu-set}
# Restart powerHAL when debug property set
on property:ro.debuggable=1 && property:vendor.powerhal.config.debug=*
restart vendor.power-hal-aidl
on property:persist.vendor.powerhal.config.debug=*
setprop vendor.powerhal.config.debug ${persist.vendor.powerhal.config.debug}

View File

@ -39,9 +39,14 @@ constexpr std::string_view kConfigProperty("vendor.powerhal.config");
constexpr std::string_view kConfigDefaultFileName("powerhint.json");
int main() {
const std::string config_path =
"/vendor/etc/" +
android::base::GetProperty(kConfigProperty.data(), kConfigDefaultFileName.data());
std::string config_path = "/vendor/etc/";
if (android::base::GetBoolProperty(kConfigDebugPathProperty.data(), false)) {
config_path = "/data/vendor/etc/";
LOG(WARNING) << "Xiaomi Power HAL AIDL Service is using debug config from: " << config_path;
}
config_path.append(
android::base::GetProperty(kConfigProperty.data(), kConfigDefaultFileName.data()));
LOG(INFO) << "Xiaomi Power HAL AIDL Service with Extension is starting with config: "
<< config_path;
@ -69,23 +74,14 @@ int main() {
CHECK(status == STATUS_OK);
LOG(INFO) << "Xiaomi Power HAL AIDL Service with Extension is started.";
if (::android::base::GetIntProperty("vendor.powerhal.adpf.rate", -1) != -1) {
PowerHintMonitor::getInstance()->start();
PowerSessionManager::getInstance()->setHintManager(hm);
}
std::thread initThread([&]() {
::android::base::WaitForProperty(kPowerHalInitProp.data(), "1");
hm->Start();
// use debug config for ADPF tuning.
if (android::base::GetBoolProperty(kConfigDebugPathProperty.data(), false)) {
const std::string debug_config_path =
"/data/vendor/etc/" + android::base::GetProperty(kConfigProperty.data(),
kConfigDefaultFileName.data());
hm = HintManager::GetFromJSON(debug_config_path, false);
LOG(WARNING) << "Xiaomi Power HAL AIDL Service with Extension is reloading with config: "
<< debug_config_path;
}
if (::android::base::GetIntProperty("vendor.powerhal.adpf.rate", -1) != -1) {
PowerHintMonitor::getInstance()->start();
PowerSessionManager::getInstance()->setHintManager(hm);
}
});
initThread.detach();