Revert "/bin/wifi: use get-quantenna-interface script."

This reverts commit 4868067a565ab1dd503c6d01d51b09c529824786.

Change-Id: I7412e639a74b67cbdc4957dad7276892981dac92
diff --git a/wifi/quantenna.py b/wifi/quantenna.py
index a0bebd5..d3200c1 100755
--- a/wifi/quantenna.py
+++ b/wifi/quantenna.py
@@ -9,20 +9,23 @@
 import utils
 
 
-_INTERFACE = subprocess.check_output(['get-quantenna-interface']).strip()
-_QCSAPI = None
-
-
-# qcsapi_pcie_static runs on PCIe hosts, e.g. GFRG250.
-# call_qcsapi runs on the LHOST, e.g. GFEX250.
-for qcsapi in ['qcsapi_pcie_static', 'call_qcsapi']:
-  if utils.subprocess_quiet(['runnable', qcsapi]) == 0:
-    _QCSAPI = qcsapi
-    break
+def _get_qcsapi():
+  """Detect Quantenna device."""
+  if not hasattr(_get_qcsapi, 'qcsapi'):
+    _get_qcsapi.qcsapi = None
+    if (utils.subprocess_quiet(['runnable', 'qcsapi_pcie_static']) == 0 and
+        utils.subprocess_quiet(['modinfo', 'qdpc-host'], no_stdout=True) == 0):
+      # qcsapi_pcie_static runs on PCIe hosts, e.g. GFRG250. qdpc-host is only
+      # loaded if a Quantenna device is present.
+      _get_qcsapi.qcsapi = 'qcsapi_pcie_static'
+    elif utils.subprocess_quiet(['runnable', 'call_qcsapi']) == 0:
+      # call_qcsapi runs on the LHOST, e.g. GFEX250.
+      _get_qcsapi.qcsapi = 'call_qcsapi'
+  return _get_qcsapi.qcsapi
 
 
 def _qcsapi(*args):
-  return subprocess.check_output([_QCSAPI] + list(args))
+  return subprocess.check_output([_get_qcsapi()] + list(args))
 
 
 def _set(mode, opt):
@@ -41,8 +44,11 @@
     _qcsapi('update_config_param', 'wifi0', param, value)
 
   macs = {'wlan0': 'MAC_ADDR_WIFI', 'wlan1': 'MAC_ADDR_WIFI2'}
-  mac = subprocess.check_output(['hnvram', '-rq', macs[_INTERFACE]]).strip()
-  _qcsapi('set_mac_addr', 'wifi0', mac)
+  for dev, var in macs.iteritems():
+    if utils.read_or_empty('/sys/class/net/%s/device/vendor' % dev) == '0x1bb5':
+      mac = subprocess.check_output(['hnvram', '-rq', var]).strip()
+      _qcsapi('set_mac_addr', 'wifi0', mac)
+      break
 
   if int(_qcsapi('is_startprod_done')):
     _qcsapi('reload_in_mode', 'wifi0', mode)
@@ -79,7 +85,7 @@
 
 
 def has_quantenna():
-  return _INTERFACE and _QCSAPI
+  return _get_qcsapi() is not None
 
 
 def set_wifi(opt):