Commit 09adf284 authored by Christian Lamparter's avatar Christian Lamparter Committed by John W. Linville

p54: control output power levels

I hope this patch is enough to cover at least the basic requirements of IEEE 802.11h's TPC.
Signed-off-by: default avatarChristian Lamparter <chunkeey@web.de>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent cc6de669
...@@ -88,6 +88,7 @@ struct p54_common { ...@@ -88,6 +88,7 @@ struct p54_common {
void *cached_vdcf; void *cached_vdcf;
unsigned int fw_var; unsigned int fw_var;
unsigned int fw_interface; unsigned int fw_interface;
unsigned int output_power;
u32 tsf_low32; u32 tsf_low32;
u32 tsf_high32; u32 tsf_high32;
struct ieee80211_tx_queue_stats tx_stats[8]; struct ieee80211_tx_queue_stats tx_stats[8];
......
...@@ -800,7 +800,7 @@ static int p54_tx(struct ieee80211_hw *dev, struct sk_buff *skb) ...@@ -800,7 +800,7 @@ static int p54_tx(struct ieee80211_hw *dev, struct sk_buff *skb)
txhdr->hw_queue = skb_get_queue_mapping(skb) + 4; txhdr->hw_queue = skb_get_queue_mapping(skb) + 4;
txhdr->tx_antenna = (info->antenna_sel_tx == 0) ? txhdr->tx_antenna = (info->antenna_sel_tx == 0) ?
2 : info->antenna_sel_tx - 1; 2 : info->antenna_sel_tx - 1;
txhdr->output_power = 0x7f; // HW Maximum txhdr->output_power = priv->output_power;
txhdr->cts_rate = (info->flags & IEEE80211_TX_CTL_NO_ACK) ? txhdr->cts_rate = (info->flags & IEEE80211_TX_CTL_NO_ACK) ?
0 : cts_rate; 0 : cts_rate;
if (padding) if (padding)
...@@ -1154,6 +1154,7 @@ static int p54_config(struct ieee80211_hw *dev, struct ieee80211_conf *conf) ...@@ -1154,6 +1154,7 @@ static int p54_config(struct ieee80211_hw *dev, struct ieee80211_conf *conf)
mutex_lock(&priv->conf_mutex); mutex_lock(&priv->conf_mutex);
priv->rx_antenna = (conf->antenna_sel_rx == 0) ? priv->rx_antenna = (conf->antenna_sel_rx == 0) ?
2 : conf->antenna_sel_tx - 1; 2 : conf->antenna_sel_tx - 1;
priv->output_power = conf->power_level << 2;
ret = p54_set_freq(dev, cpu_to_le16(conf->channel->center_freq)); ret = p54_set_freq(dev, cpu_to_le16(conf->channel->center_freq));
p54_set_vdcf(dev); p54_set_vdcf(dev);
mutex_unlock(&priv->conf_mutex); mutex_unlock(&priv->conf_mutex);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment