Merge cherrypicks of [2623053, 2623054, 2623055, 2624136, 2623000, 2623001, 2623007, 2623009, 2624211, 2624212, 2624214, 2624215, 2623057, 2623847, 2623058, 2623059, 2622925, 2623060, 2623061, 2623848, 2623849, 2623062, 2622927, 2622928] into oc-dr1-release

Change-Id: Ifb1f1c4745609be9e09c09cdb83a04823535e8ef
diff --git a/include/hardware_legacy/wifi_hal.h b/include/hardware_legacy/wifi_hal.h
index 4e85aac..572390f 100644
--- a/include/hardware_legacy/wifi_hal.h
+++ b/include/hardware_legacy/wifi_hal.h
@@ -36,6 +36,11 @@
     WIFI_CHAN_WIDTH_INVALID = -1
 } wifi_channel_width;
 
+/* Pre selected Power scenarios to be applied from BDF file */
+typedef enum {
+    WIFI_POWER_SCENARIO_VOICE_CALL    = 0,
+} wifi_power_scenario;
+
 typedef int wifi_radio;
 typedef int wifi_channel;
 
@@ -161,8 +166,8 @@
 wifi_error wifi_reset_iface_event_handler(wifi_request_id id, wifi_interface_handle iface);
 
 wifi_error wifi_set_nodfs_flag(wifi_interface_handle handle, u32 nodfs);
-wifi_error wifi_set_tx_power_limit(wifi_interface_handle handle, u32 tx_level_dbm);
-wifi_error wifi_reset_tx_power_limit(wifi_interface_handle handle);
+wifi_error wifi_select_tx_power_scenario(wifi_interface_handle handle, wifi_power_scenario scenario);
+wifi_error wifi_reset_tx_power_scenario(wifi_interface_handle handle);
 
 typedef struct rx_data_cnt_details_t {
     int rx_unicast_cnt;     /*Total rx unicast packet which woke up host */
@@ -380,8 +385,9 @@
     wifi_error (*wifi_nan_data_end)(transaction_id id,
                                     wifi_interface_handle iface,
                                     NanDataPathEndRequest *msg);
-    wifi_error (*wifi_set_tx_power_limit)(wifi_interface_handle iface, u32 tx_level_dbm);
-    wifi_error (*wifi_reset_tx_power_limit)(wifi_interface_handle iface);
+    wifi_error (*wifi_select_tx_power_scenario)(wifi_interface_handle iface,
+                                                wifi_power_scenario scenario);
+    wifi_error (*wifi_reset_tx_power_scenario)(wifi_interface_handle iface);
 
     /**
      * Returns the chipset's hardware filtering capabilities: