summaryrefslogtreecommitdiffstats
path: root/package/iwinfo/src/iwinfo_nl80211.c
diff options
context:
space:
mode:
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-02-17 00:36:25 +0000
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-02-17 00:36:25 +0000
commite01799a285e34c65d41ac315dd29544fc40acf19 (patch)
treea247c0e9b27457a948071fc9a6cb9ca99a6cd672 /package/iwinfo/src/iwinfo_nl80211.c
parentc2da468a0c461a602b5ff66b857e548a8254be8e (diff)
[package] iwinfo: implement proper hardware detection for ar23xx SoC devices like the NanoStation 2
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30605 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/iwinfo/src/iwinfo_nl80211.c')
-rw-r--r--package/iwinfo/src/iwinfo_nl80211.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/package/iwinfo/src/iwinfo_nl80211.c b/package/iwinfo/src/iwinfo_nl80211.c
index e8cfb902f..5c6f7a8ef 100644
--- a/package/iwinfo/src/iwinfo_nl80211.c
+++ b/package/iwinfo/src/iwinfo_nl80211.c
@@ -1646,7 +1646,7 @@ int nl80211_get_hardware_id(const char *ifname, char *buf)
/* Reuse existing interface */
if ((res = nl80211_phy2ifname(ifname)) != NULL)
{
- return wext_get_hardware_id(res, buf);
+ rv = wext_get_hardware_id(res, buf);
}
/* Need to spawn a temporary iface for finding IDs */
@@ -1654,11 +1654,20 @@ int nl80211_get_hardware_id(const char *ifname, char *buf)
{
rv = wext_get_hardware_id(res, buf);
nl80211_ifdel(res);
- return rv;
}
}
+ else
+ {
+ rv = wext_get_hardware_id(ifname, buf);
+ }
- return wext_get_hardware_id(ifname, buf);
+ /* Failed to obtain hardware IDs, search board config */
+ if (rv)
+ {
+ rv = iwinfo_hardware_id_from_mtd(buf);
+ }
+
+ return rv;
}
static const struct iwinfo_hardware_entry *