wifi(implementation): Load wifi driver on IWifi.start()

The current implementation loads the wifi driver only when the chip is
configured, but the HAL is initialized on IWifi.start(). This seems to
be wrong semantically. The driver needs to be loaded before the HAL is
initialized.

This may have worked previously because the driver was loaded in
init.rc, but may stop working when we move to proper DLKM model in 2018.

Bug: 65671875
Test: Device boots up and connects to wifi networks.
Change-Id: I017d3528bf0b42a6a59af43203ecc9d0d027f60d
diff --git a/wifi/1.2/default/wifi_mode_controller.cpp b/wifi/1.2/default/wifi_mode_controller.cpp
index 8a89e81..c286d24 100644
--- a/wifi/1.2/default/wifi_mode_controller.cpp
+++ b/wifi/1.2/default/wifi_mode_controller.cpp
@@ -59,11 +59,15 @@
         convertIfaceTypeToFirmwareMode(type));
 }
 
-bool WifiModeController::changeFirmwareMode(IfaceType type) {
+bool WifiModeController::initialize() {
     if (!driver_tool_->LoadDriver()) {
         LOG(ERROR) << "Failed to load WiFi driver";
         return false;
     }
+    return true;
+}
+
+bool WifiModeController::changeFirmwareMode(IfaceType type) {
     if (!driver_tool_->ChangeFirmwareMode(
             convertIfaceTypeToFirmwareMode(type))) {
         LOG(ERROR) << "Failed to change firmware mode";