|
@@ -798,6 +798,20 @@ static int ieee80211_ioctl_giwrate(struct net_device *dev,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+static int ieee80211_ioctl_giwtxpower(struct net_device *dev,
|
|
|
+ struct iw_request_info *info,
|
|
|
+ union iwreq_data *data, char *extra)
|
|
|
+{
|
|
|
+ struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
|
|
|
+
|
|
|
+ data->txpower.fixed = 1;
|
|
|
+ data->txpower.disabled = !(local->hw.conf.radio_enabled);
|
|
|
+ data->txpower.value = local->hw.conf.power_level;
|
|
|
+ data->txpower.flags = IW_TXPOW_DBM;
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
static int ieee80211_ioctl_siwrts(struct net_device *dev,
|
|
|
struct iw_request_info *info,
|
|
|
struct iw_param *rts, char *extra)
|
|
@@ -1587,7 +1601,7 @@ static const iw_handler ieee80211_handler[] =
|
|
|
(iw_handler) ieee80211_ioctl_siwfrag, /* SIOCSIWFRAG */
|
|
|
(iw_handler) ieee80211_ioctl_giwfrag, /* SIOCGIWFRAG */
|
|
|
(iw_handler) NULL, /* SIOCSIWTXPOW */
|
|
|
- (iw_handler) NULL, /* SIOCGIWTXPOW */
|
|
|
+ (iw_handler) ieee80211_ioctl_giwtxpower, /* SIOCGIWTXPOW */
|
|
|
(iw_handler) ieee80211_ioctl_siwretry, /* SIOCSIWRETRY */
|
|
|
(iw_handler) ieee80211_ioctl_giwretry, /* SIOCGIWRETRY */
|
|
|
(iw_handler) ieee80211_ioctl_siwencode, /* SIOCSIWENCODE */
|