wl12xx: add power_level field to wlvif
move power_level into the per-interface data. mac80211 configures some values (e.g. band, channel) globally, while we configure them per-interface. In order to make it easier to keep track of the configured value for each value while keeping sync with mac80211, save these values both globally and per-vif. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
This commit is contained in:
parent
61f845f4f4
commit
6bd6502990
|
@ -554,7 +554,7 @@ static int wl12xx_init_ap_role(struct wl1271 *wl, struct wl12xx_vif *wlvif)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
/* initialize Tx power */
|
/* initialize Tx power */
|
||||||
ret = wl1271_acx_tx_power(wl, wlvif, wl->power_level);
|
ret = wl1271_acx_tx_power(wl, wlvif, wlvif->power_level);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
|
|
@ -1974,6 +1974,7 @@ static int wl12xx_init_vif_data(struct wl1271 *wl, struct ieee80211_vif *vif)
|
||||||
*/
|
*/
|
||||||
wlvif->band = wl->band;
|
wlvif->band = wl->band;
|
||||||
wlvif->channel = wl->channel;
|
wlvif->channel = wl->channel;
|
||||||
|
wlvif->power_level = wl->power_level;
|
||||||
|
|
||||||
INIT_WORK(&wlvif->rx_streaming_enable_work,
|
INIT_WORK(&wlvif->rx_streaming_enable_work,
|
||||||
wl1271_rx_streaming_enable_work);
|
wl1271_rx_streaming_enable_work);
|
||||||
|
@ -2562,12 +2563,13 @@ static int wl1271_op_config(struct ieee80211_hw *hw, u32 changed)
|
||||||
wlvif->basic_rate, true);
|
wlvif->basic_rate, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (conf->power_level != wl->power_level) {
|
if (conf->power_level != wlvif->power_level) {
|
||||||
ret = wl1271_acx_tx_power(wl, wlvif, conf->power_level);
|
ret = wl1271_acx_tx_power(wl, wlvif, conf->power_level);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto out_sleep;
|
goto out_sleep;
|
||||||
|
|
||||||
wl->power_level = conf->power_level;
|
wl->power_level = conf->power_level;
|
||||||
|
wlvif->power_level = conf->power_level;
|
||||||
}
|
}
|
||||||
|
|
||||||
out_sleep:
|
out_sleep:
|
||||||
|
|
|
@ -631,6 +631,9 @@ struct wl12xx_vif {
|
||||||
/* retry counter for PSM entries */
|
/* retry counter for PSM entries */
|
||||||
u8 psm_entry_retry;
|
u8 psm_entry_retry;
|
||||||
|
|
||||||
|
/* in dBm */
|
||||||
|
int power_level;
|
||||||
|
|
||||||
int rssi_thold;
|
int rssi_thold;
|
||||||
int last_rssi_event;
|
int last_rssi_event;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue