make wlcompat display 19 dBm max. when regulatory override is disabled

SVN-Revision: 2530
This commit is contained in:
Felix Fietkau 2005-11-19 01:07:50 +00:00
parent 894e2f118e
commit 9a8a69c0b8

View file

@ -494,14 +494,17 @@ static int wlcompat_ioctl(struct net_device *dev,
} }
case SIOCGIWTXPOW: case SIOCGIWTXPOW:
{ {
int radio; int radio, override;
wl_ioctl(dev, WLC_GET_RADIO, &radio, sizeof(int)); wl_ioctl(dev, WLC_GET_RADIO, &radio, sizeof(int));
if (wl_get_val(dev, "qtxpower", &(wrqu->txpower.value), sizeof(int)) < 0) if (wl_get_val(dev, "qtxpower", &(wrqu->txpower.value), sizeof(int)) < 0)
return -EINVAL; return -EINVAL;
override = (wrqu->txpower.value & WL_TXPWR_OVERRIDE) == WL_TXPWR_OVERRIDE;
wrqu->txpower.value &= ~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.value /= 4;
wrqu->txpower.fixed = 0; wrqu->txpower.fixed = 0;