X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/f090d08794a075e61cb3912e1f15eaee55c1ba55..be8ad0190d689eb7f797bdc0618d7e87892a831d:/target/linux/package/wlcompat/wlcompat.c diff --git a/target/linux/package/wlcompat/wlcompat.c b/target/linux/package/wlcompat/wlcompat.c index d86a9bda9..1540a2116 100644 --- a/target/linux/package/wlcompat/wlcompat.c +++ b/target/linux/package/wlcompat/wlcompat.c @@ -494,14 +494,17 @@ static int wlcompat_ioctl(struct net_device *dev, } case SIOCGIWTXPOW: { - int radio; + int radio, override; wl_ioctl(dev, WLC_GET_RADIO, &radio, sizeof(int)); if (wl_get_val(dev, "qtxpower", &(wrqu->txpower.value), sizeof(int)) < 0) return -EINVAL; + override = (wrqu->txpower.value & WL_TXPWR_OVERRIDE) == WL_TXPWR_OVERRIDE; wrqu->txpower.value &= ~WL_TXPWR_OVERRIDE; + if (!override && (wrqu->txpower.value > 76)) + wrqu->txpower.value = 76; wrqu->txpower.value /= 4; wrqu->txpower.fixed = 0; @@ -977,13 +980,13 @@ static int new_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) { static int __init wlcompat_init() { int found = 0, i; - char *devname = "eth0"; + char devname[4] = "wl0"; bss_force = 0; while (!found && (dev = dev_get_by_name(devname))) { if ((dev->wireless_handlers == NULL) && ((wl_ioctl(dev, WLC_GET_MAGIC, &i, sizeof(i)) == 0) && i == WLC_IOCTL_MAGIC)) found = 1; - devname[3]++; + devname[2]++; } if (!found) {