disable speedbooster if wds is enabled

SVN-Revision: 2016
This commit is contained in:
Felix Fietkau 2005-10-01 17:39:57 +00:00
parent 79f644ff81
commit 33e3b1d09f

View file

@ -172,6 +172,7 @@ void setup_bcom(int skfd, char *ifname)
char buf[8192]; char buf[8192];
char wbuf[80]; char wbuf[80];
char *v; char *v;
int wds_enabled = 0;
if (bcom_ioctl(skfd, ifname, WLC_GET_MAGIC, &val, sizeof(val)) < 0) if (bcom_ioctl(skfd, ifname, WLC_GET_MAGIC, &val, sizeof(val)) < 0)
return; return;
@ -185,16 +186,9 @@ void setup_bcom(int skfd, char *ifname)
buf[3] = 0; buf[3] = 0;
bcom_ioctl(skfd, ifname, WLC_SET_COUNTRY, buf, 4); bcom_ioctl(skfd, ifname, WLC_SET_COUNTRY, buf, 4);
/* Set up afterburner */
val = ABO_AUTO;
if (nvram_enabled(wl_var("afterburner")))
val = ABO_ON;
if (nvram_disabled(wl_var("afterburner")))
val = ABO_OFF;
bcom_set_val(skfd, ifname, "afterburner_override", &val, sizeof(val));
/* Set other options */ /* Set other options */
val = nvram_enabled(wl_var("lazywds")); val = nvram_enabled(wl_var("lazywds"));
wds_enabled = val;
bcom_ioctl(skfd, ifname, WLC_SET_LAZYWDS, &val, sizeof(val)); bcom_ioctl(skfd, ifname, WLC_SET_LAZYWDS, &val, sizeof(val));
if (v = nvram_get(wl_var("frag"))) { if (v = nvram_get(wl_var("frag"))) {
@ -270,11 +264,25 @@ void setup_bcom(int skfd, char *ifname)
if (ether_atoe(wbuf, addr->ether_addr_octet)) { if (ether_atoe(wbuf, addr->ether_addr_octet)) {
wdslist->count++; wdslist->count++;
addr++; addr++;
wds_enabled = 1;
} }
} }
bcom_ioctl(skfd, ifname, WLC_SET_WDSLIST, buf, sizeof(buf)); bcom_ioctl(skfd, ifname, WLC_SET_WDSLIST, buf, sizeof(buf));
} }
/* Set up afterburner, disabled it if WDS is enabled */
if (wds_enabled) {
val = ABO_OFF;
} else {
val = ABO_AUTO;
if (nvram_enabled(wl_var("afterburner")))
val = ABO_ON;
if (nvram_disabled(wl_var("afterburner")))
val = ABO_OFF;
}
bcom_set_val(skfd, ifname, "afterburner_override", &val, sizeof(val));
/* Set up G mode */ /* Set up G mode */
bcom_ioctl(skfd, ifname, WLC_GET_PHYTYPE, &val, sizeof(val)); bcom_ioctl(skfd, ifname, WLC_GET_PHYTYPE, &val, sizeof(val));
if (val == 2) { if (val == 2) {