aboutsummaryrefslogtreecommitdiffstats
path: root/package/iwinfo/src/iwinfo_wl.c
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2011-12-04 03:42:17 +0000
committerJo-Philipp Wich <jow@openwrt.org>2011-12-04 03:42:17 +0000
commit0d587a173c3ab39ea95719110d8e6791bd3dfbb1 (patch)
tree96b02527f41c9a14ec51ec7d631e3785930d9e8f /package/iwinfo/src/iwinfo_wl.c
parent83e6c14f82f6c2d9028f4ec9f4da943c0e524345 (diff)
downloadupstream-0d587a173c3ab39ea95719110d8e6791bd3dfbb1.tar.gz
upstream-0d587a173c3ab39ea95719110d8e6791bd3dfbb1.tar.bz2
upstream-0d587a173c3ab39ea95719110d8e6791bd3dfbb1.zip
iwinfo: add initial hardware detection capabilities
SVN-Revision: 29421
Diffstat (limited to 'package/iwinfo/src/iwinfo_wl.c')
-rw-r--r--package/iwinfo/src/iwinfo_wl.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/package/iwinfo/src/iwinfo_wl.c b/package/iwinfo/src/iwinfo_wl.c
index b3227918d4..76984de336 100644
--- a/package/iwinfo/src/iwinfo_wl.c
+++ b/package/iwinfo/src/iwinfo_wl.c
@@ -135,6 +135,7 @@ int wl_get_frequency(const char *ifname, int *buf)
int wl_get_txpower(const char *ifname, int *buf)
{
+ /* WLC_GET_VAR "qtxpower" */
return wext_get_txpower(ifname, buf);
}
@@ -556,3 +557,31 @@ int wl_get_mbssid_support(const char *ifname, int *buf)
return -1;
}
+
+int wl_get_hardware_id(const char *ifname, char *buf)
+{
+ wlc_rev_info_t revinfo;
+ struct iwinfo_hardware_id *ids = (struct iwinfo_hardware_id *)buf;
+
+ if (wl_ioctl(ifname, WLC_GET_REVINFO, &revinfo, sizeof(revinfo)))
+ return -1;
+
+ ids->vendor_id = revinfo.vendorid;
+ ids->device_id = revinfo.deviceid;
+ ids->subsystem_vendor_id = revinfo.boardvendor;
+ ids->subsystem_device_id = revinfo.boardid;
+
+ return 0;
+}
+
+int wl_get_hardware_name(const char *ifname, char *buf)
+{
+ struct iwinfo_hardware_id ids;
+
+ if (wl_get_hardware_id(ifname, (char *)&ids))
+ return -1;
+
+ sprintf(buf, "Broadcom BCM%04X", ids.device_id);
+
+ return 0;
+}