aboutsummaryrefslogtreecommitdiffstats
path: root/package/iwinfo
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2012-02-20 21:17:59 +0000
committerJo-Philipp Wich <jow@openwrt.org>2012-02-20 21:17:59 +0000
commitbbf5ddc6ffcb38b4e96c4053697b7b1570d1e7d0 (patch)
tree6a3755d06e70c1eee049befbcf94f456f9847e48 /package/iwinfo
parent32a69747812d72bb93bd3a71090d5db58b9a5602 (diff)
downloadupstream-bbf5ddc6ffcb38b4e96c4053697b7b1570d1e7d0.tar.gz
upstream-bbf5ddc6ffcb38b4e96c4053697b7b1570d1e7d0.tar.bz2
upstream-bbf5ddc6ffcb38b4e96c4053697b7b1570d1e7d0.zip
[package] iwinfo: recognize AR5416 EEPROMs as seen on the Ubiquiti Picostation M2
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30663 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/iwinfo')
-rw-r--r--package/iwinfo/Makefile2
-rw-r--r--package/iwinfo/src/iwinfo_utils.c13
2 files changed, 13 insertions, 2 deletions
diff --git a/package/iwinfo/Makefile b/package/iwinfo/Makefile
index 721de49543..d58d62d469 100644
--- a/package/iwinfo/Makefile
+++ b/package/iwinfo/Makefile
@@ -7,7 +7,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libiwinfo
-PKG_RELEASE:=27
+PKG_RELEASE:=28
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
PKG_CONFIG_DEPENDS := \
diff --git a/package/iwinfo/src/iwinfo_utils.c b/package/iwinfo/src/iwinfo_utils.c
index ec6aa2233f..78ea52b4ab 100644
--- a/package/iwinfo/src/iwinfo_utils.c
+++ b/package/iwinfo/src/iwinfo_utils.c
@@ -165,7 +165,7 @@ int iwinfo_hardware_id_from_mtd(struct iwinfo_hardware_id *id)
while (fgets(buf, sizeof(buf), mtd) > 0)
{
if (fscanf(mtd, "mtd%d: %*x %x %127s", &off, &len, buf) < 3 ||
- strcmp(buf, "\"boardconfig\""))
+ strcmp(buf, "\"boardconfig\"") || strcmp(buf, "\"EEPROM\""))
{
off = -1;
continue;
@@ -193,6 +193,7 @@ int iwinfo_hardware_id_from_mtd(struct iwinfo_hardware_id *id)
for (off = len / 2 - 0x800; off >= 0; off -= 0x800)
{
+ /* AR531X board data magic */
if ((bc[off] == 0x3533) && (bc[off + 1] == 0x3131))
{
id->vendor_id = bc[off + 0x7d];
@@ -201,6 +202,16 @@ int iwinfo_hardware_id_from_mtd(struct iwinfo_hardware_id *id)
id->subsystem_device_id = bc[off + 0x83];
break;
}
+
+ /* AR5416 EEPROM magic */
+ else if ((bc[off] == 0xA55A) || (bc[off] == 0x5AA5))
+ {
+ id->vendor_id = bc[off + 0x0D];
+ id->device_id = bc[off + 0x0E];
+ id->subsystem_vendor_id = bc[off + 0x13];
+ id->subsystem_device_id = bc[off + 0x14];
+ break;
+ }
}
munmap(bc, len);