diff options
author | Hauke Mehrtens <hauke@hauke-m.de> | 2012-11-25 20:11:15 +0000 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2012-11-25 20:11:15 +0000 |
commit | e9b6c999f54476d531f10d3eff1f41b145cf589d (patch) | |
tree | 75bad9b7cf094cb2bc8e1550bd08324997fd1161 | |
parent | 38fced86eeed50fc6e841f5b8f3abd285a286117 (diff) | |
download | master-31e0f0ae-e9b6c999f54476d531f10d3eff1f41b145cf589d.tar.gz master-31e0f0ae-e9b6c999f54476d531f10d3eff1f41b145cf589d.tar.bz2 master-31e0f0ae-e9b6c999f54476d531f10d3eff1f41b145cf589d.zip |
broadcom-wl: fix two problems when more then one wifi card is available.
* The device should get a unique name at the beginning and not wl%d.
* load the nvram just one time into the own buffer, also when there is
more than one device.
SVN-Revision: 34381
-rw-r--r-- | package/broadcom-wl/patches/100-fix_nvram_two_devices.patch | 32 | ||||
-rw-r--r-- | package/broadcom-wl/patches/110-add_number_to_dev_name.patch | 11 |
2 files changed, 43 insertions, 0 deletions
diff --git a/package/broadcom-wl/patches/100-fix_nvram_two_devices.patch b/package/broadcom-wl/patches/100-fix_nvram_two_devices.patch new file mode 100644 index 0000000000..5650862f83 --- /dev/null +++ b/package/broadcom-wl/patches/100-fix_nvram_two_devices.patch @@ -0,0 +1,32 @@ +--- a/driver/nvram_stub.c ++++ b/driver/nvram_stub.c +@@ -22,6 +22,7 @@ typedef struct _vars { + #define VARS_T_OH sizeof(vars_t) + + static vars_t *vars = NULL; ++static int nvram_init_done = 0; + extern char *nvram_buf[]; + + int +@@ -33,6 +34,10 @@ BCMATTACHFN(nvram_init)(void *si) + uint nvs, bufsz; + vars_t *new; + ++ nvram_init_done++; ++ if (nvram_init_done != 1) ++ return 0; ++ + osh = si_osh(sih); + + nvs = R_REG(osh, &nvh->len) - sizeof(struct nvram_header); +@@ -79,6 +84,10 @@ BCMATTACHFN(nvram_exit)(void *si) + vars_t *this, *next; + si_t *sih; + ++ nvram_init_done--; ++ if (nvram_init_done != 0) ++ return 0; ++ + sih = (si_t *)si; + this = vars; + while (this) { diff --git a/package/broadcom-wl/patches/110-add_number_to_dev_name.patch b/package/broadcom-wl/patches/110-add_number_to_dev_name.patch new file mode 100644 index 0000000000..13ce72741e --- /dev/null +++ b/package/broadcom-wl/patches/110-add_number_to_dev_name.patch @@ -0,0 +1,11 @@ +--- a/driver/wl_linux.c ++++ b/driver/wl_linux.c +@@ -1412,7 +1412,7 @@ wl_alloc_if(wl_info_t *wl, int iftype, u + dev = alloc_etherdev(sizeof(wl_if_t)); + wlif = netdev_priv(dev); + bzero(wlif, sizeof(wl_if_t)); +- strncpy(dev->name, name, IFNAMSIZ); ++ snprintf(dev->name, IFNAMSIZ, name, subunit); + + wlif->type = iftype; + wlif->dev = dev; |