/bin/wifi: use qcsapi symlink.

Change-Id: I9ed5e91a00cb0f3b54120c1cd76161c6a77a418e
diff --git a/wifi/quantenna.py b/wifi/quantenna.py
index a32c23b..10af967 100755
--- a/wifi/quantenna.py
+++ b/wifi/quantenna.py
@@ -14,32 +14,20 @@
 NOT_MEMBER_FMT = 'device %s is not a slave of %s'
 
 
-# pylint: disable=protected-access
 def _get_interface():
-  if not hasattr(_get_interface, '_interface'):
-    _get_interface._interface = subprocess.check_output(
-        ['get-quantenna-interface']).strip()
-  return _get_interface._interface
+  return subprocess.check_output(['get-quantenna-interface']).strip()
 
 
-# pylint: disable=protected-access
-def _get_qcsapi():
-  # qcsapi_pcie_static runs on PCIe hosts, e.g. GFRG250.
-  # call_qcsapi runs on the LHOST, e.g. GFEX250.
-  if not hasattr(_get_qcsapi, '_qcsapi'):
-    _get_qcsapi._qcsapi = next(
-        (qcsapi for qcsapi in ['qcsapi_pcie_static', 'call_qcsapi']
-         if utils.subprocess_quiet(['runnable', qcsapi]) == 0), None)
-  return _get_qcsapi._qcsapi
-
-
-def _get_mac_address():
-  var = {'wlan0': 'MAC_ADDR_WIFI', 'wlan1': 'MAC_ADDR_WIFI2'}[_get_interface()]
+def _get_mac_address(interface):
+  try:
+    var = {'wlan0': 'MAC_ADDR_WIFI', 'wlan1': 'MAC_ADDR_WIFI2'}[interface]
+  except KeyError:
+    raise utils.BinWifiException('no MAC address for %s in hnvram' % interface)
   return subprocess.check_output(['hnvram', '-rq', var]).strip()
 
 
 def _qcsapi(*args):
-  return subprocess.check_output([_get_qcsapi()] + list(args)).strip()
+  return subprocess.check_output(['qcsapi'] + list(args)).strip()
 
 
 def _brctl(*args):
@@ -47,7 +35,7 @@
                                  stderr=subprocess.STDOUT).strip()
 
 
-def _set_interface_in_bridge(bridge, want_in_bridge):
+def _set_interface_in_bridge(bridge, interface, want_in_bridge):
   """Add/remove Quantenna interface from/to the bridge."""
   if want_in_bridge:
     command = 'addif'
@@ -57,15 +45,16 @@
     error_fmt = NOT_MEMBER_FMT
 
   try:
-    _brctl(command, bridge, _get_interface())
+    _brctl(command, bridge, interface)
   except subprocess.CalledProcessError as e:
-    if error_fmt % (_get_interface(), bridge) not in e.output:
+    if error_fmt % (interface, bridge) not in e.output:
       raise utils.BinWifiException(e.output)
 
 
 def _set(mode, opt):
   """Enable wifi."""
-  if not _get_interface() or not _get_qcsapi():
+  interface = _get_interface()
+  if not interface:
     return False
 
   _qcsapi('rfenable', '0')
@@ -81,7 +70,7 @@
   for param, value in config.iteritems():
     _qcsapi('update_config_param', 'wifi0', param, value)
 
-  _qcsapi('set_mac_addr', 'wifi0', _get_mac_address())
+  _qcsapi('set_mac_addr', 'wifi0', _get_mac_address(interface))
 
   if int(_qcsapi('is_startprod_done')):
     _qcsapi('reload_in_mode', 'wifi0', mode)
@@ -95,14 +84,14 @@
       raise utils.BinWifiException('startprod timed out')
 
   if mode == 'ap':
-    _set_interface_in_bridge(opt.bridge, True)
+    _set_interface_in_bridge(opt.bridge, interface, True)
     _qcsapi('set_ssid', 'wifi0', opt.ssid)
     _qcsapi('set_passphrase', 'wifi0', '0', os.environ['WIFI_PSK'])
     _qcsapi('set_option', 'wifi0', 'ssid_broadcast',
             '0' if opt.hidden_mode else '1')
     _qcsapi('rfenable', '1')
   elif mode == 'sta':
-    _set_interface_in_bridge(opt.bridge, False)
+    _set_interface_in_bridge(opt.bridge, interface, False)
     _qcsapi('create_ssid', 'wifi0', opt.ssid)
     _qcsapi('ssid_set_passphrase', 'wifi0', opt.ssid, '0',
             os.environ['WIFI_CLIENT_PSK'])
@@ -115,7 +104,7 @@
 
 def _stop(_):
   """Disable wifi."""
-  if not _get_interface() or not _get_qcsapi():
+  if not _get_interface():
     return False
 
   _qcsapi('rfenable', '0')
diff --git a/wifi/quantenna_test.py b/wifi/quantenna_test.py
index 9bea3f7..72f0333 100755
--- a/wifi/quantenna_test.py
+++ b/wifi/quantenna_test.py
@@ -43,14 +43,13 @@
     return
 
 
-def set_fakes(interface='wlan1', qcsapi='qcsapi_pcie_static'):
+def set_fakes(interface='wlan1'):
   del calls[:]
   bridge_interfaces.clear()
   os.environ['WIFI_PSK'] = 'wifi_psk'
   os.environ['WIFI_CLIENT_PSK'] = 'wifi_client_psk'
   quantenna._get_interface = lambda: interface
-  quantenna._get_qcsapi = lambda: qcsapi
-  quantenna._get_mac_address = lambda: '00:11:22:33:44:55'
+  quantenna._get_mac_address = lambda _: '00:11:22:33:44:55'
   quantenna._qcsapi = fake_qcsapi
   quantenna._brctl = fake_brctl
 
@@ -68,13 +67,12 @@
   wvtest.WVFAIL(quantenna.stop_ap_wifi(opt))
   wvtest.WVFAIL(quantenna.stop_client_wifi(opt))
   wvtest.WVPASSEQ(calls, [])
-  set_fakes(qcsapi='')
   wvtest.WVFAIL(quantenna.set_wifi(opt))
   wvtest.WVFAIL(quantenna.set_client_wifi(opt))
   wvtest.WVFAIL(quantenna.stop_ap_wifi(opt))
   wvtest.WVFAIL(quantenna.stop_client_wifi(opt))
   wvtest.WVPASSEQ(calls, [])
-  set_fakes(interface='', qcsapi='')
+  set_fakes(interface='')
   wvtest.WVFAIL(quantenna.set_wifi(opt))
   wvtest.WVFAIL(quantenna.set_client_wifi(opt))
   wvtest.WVFAIL(quantenna.stop_ap_wifi(opt))