Wifi: Optionally avoid interface down/up when doing setMacAddress

Some vendors implementation will reset wifi chip when doing interface
down.
Accordingly, We need to avoid the interface down/up when doing
setMacAddress to avoid loss of sync between framework and firmware.

This commit uses a BOARD_WIFI_AVOID_IFACE_RESET_MAC_CHANGE macro to
check if it is needed to avoid interface down/up at setMacAddress.

Bug: 153771961
Test: VTS Test
Test: atest VtsHalWifiV1_2TargetTest
Change-Id: I971764f1c272ebfd245959974fa0d1b10ba7c39b
diff --git a/wifi/1.4/default/wifi_iface_util.cpp b/wifi/1.4/default/wifi_iface_util.cpp
index 036c97b..13ba022 100644
--- a/wifi/1.4/default/wifi_iface_util.cpp
+++ b/wifi/1.4/default/wifi_iface_util.cpp
@@ -52,18 +52,22 @@
 
 bool WifiIfaceUtil::setMacAddress(const std::string& iface_name,
                                   const std::array<uint8_t, 6>& mac) {
+#ifndef WIFI_AVOID_IFACE_RESET_MAC_CHANGE
     if (!iface_tool_.lock()->SetUpState(iface_name.c_str(), false)) {
         LOG(ERROR) << "SetUpState(false) failed.";
         return false;
     }
+#endif
     if (!iface_tool_.lock()->SetMacAddress(iface_name.c_str(), mac)) {
         LOG(ERROR) << "SetMacAddress failed.";
         return false;
     }
+#ifndef WIFI_AVOID_IFACE_RESET_MAC_CHANGE
     if (!iface_tool_.lock()->SetUpState(iface_name.c_str(), true)) {
         LOG(ERROR) << "SetUpState(true) failed.";
         return false;
     }
+#endif
     IfaceEventHandlers event_handlers = {};
     const auto it = event_handlers_map_.find(iface_name);
     if (it != event_handlers_map_.end()) {