From 52d52f8d6fa550d94ee4c77b7fc2a4a509961666 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Wed, 4 Mar 2020 11:44:58 -0800 Subject: Probe PowerHAL HIDL first Right now AIDL doesn't provide an API for vendor code to query if the AIDL HAL declared. This will lead to 1) long blocking call for device doesn't have the AIDL HAL and also 2) potential problem if the service starts late after 5s timeout. This is a workaround for addressing 1) on devices having HIDL, but still affects device that doesn't have HIDL service. Bug: 149797408 Test: build Change-Id: I60aada1ab1a044db965987bca5f6eee5b6262b20 --- hal/audio_perf.cpp | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/hal/audio_perf.cpp b/hal/audio_perf.cpp index 4623f192..e2620a1b 100644 --- a/hal/audio_perf.cpp +++ b/hal/audio_perf.cpp @@ -54,6 +54,21 @@ static hal_version connectPowerHalLocked() { return NONE; } + if (gPowerHalHidlExists) { + // (re)connect if handle is null + if (!gPowerHal_1_2_) { + gPowerHal_1_2_ = + android::hardware::power::V1_2::IPower::getService(); + } + if (gPowerHal_1_2_) { + ALOGI("Successfully connected to Power Hal Hidl service."); + return HIDL_1_2; + } else { + // no more try on this handle + gPowerHalHidlExists = false; + } + } + if (gPowerHalAidlExists) { // (re)connect if handle is null if (!gPowerHal_Aidl_) { @@ -70,21 +85,6 @@ static hal_version connectPowerHalLocked() { } } - if (gPowerHalHidlExists) { - // (re)connect if handle is null - if (!gPowerHal_1_2_) { - gPowerHal_1_2_ = - android::hardware::power::V1_2::IPower::getService(); - } - if (gPowerHal_1_2_) { - ALOGI("Successfully connected to Power Hal Hidl service."); - return HIDL_1_2; - } else { - // no more try on this handle - gPowerHalHidlExists = false; - } - } - return NONE; } -- cgit v1.2.3