X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/2c36723de1929dbcdd4fb86752717e23e397a438..c8737aef24173486eea70bb50df02a2ed2ad0b52:/openwrt/target/linux/package/wlcompat/wlcompat.c?ds=sidebyside diff --git a/openwrt/target/linux/package/wlcompat/wlcompat.c b/openwrt/target/linux/package/wlcompat/wlcompat.c index d86a9bda9..7063c809a 100644 --- a/openwrt/target/linux/package/wlcompat/wlcompat.c +++ b/openwrt/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;