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
diff --git a/hal/audio_perf.cpp b/hal/audio_perf.cpp
index 4623f19..e2620a1 100644
--- a/hal/audio_perf.cpp
+++ b/hal/audio_perf.cpp
@@ -54,6 +54,21 @@
         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 @@
         }
     }
 
-    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;
 }