mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-23 22:24:39 +02:00
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. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34381 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
75a6204e74
commit
804a5ec71b
32
package/broadcom-wl/patches/100-fix_nvram_two_devices.patch
Normal file
32
package/broadcom-wl/patches/100-fix_nvram_two_devices.patch
Normal file
@ -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) {
|
11
package/broadcom-wl/patches/110-add_number_to_dev_name.patch
Normal file
11
package/broadcom-wl/patches/110-add_number_to_dev_name.patch
Normal file
@ -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;
|
Loading…
Reference in New Issue
Block a user