提交 8c79e5ee 编写于 作者: R Rafał Miłecki 提交者: John W. Linville

b43: b43_op_config: use IEEE80211_CONF_CHANGE_CHANNEL

This is tiny optimization and grouping band/channel ops.
Signed-off-by: NRafał Miłecki <zajec5@gmail.com>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 53256511
...@@ -3807,16 +3807,23 @@ static int b43_op_config(struct ieee80211_hw *hw, u32 changed) ...@@ -3807,16 +3807,23 @@ static int b43_op_config(struct ieee80211_hw *hw, u32 changed)
mutex_lock(&wl->mutex); mutex_lock(&wl->mutex);
b43_mac_suspend(dev); b43_mac_suspend(dev);
/* Switch the band (if necessary). This might change the active core. */ if (changed & IEEE80211_CONF_CHANGE_CHANNEL) {
err = b43_switch_band(dev, conf->chandef.chan); if (conf_is_ht(conf))
if (err) phy->is_40mhz = conf_is_ht40_minus(conf) ||
goto out_unlock_mutex; conf_is_ht40_plus(conf);
else
phy->is_40mhz = false;
if (conf_is_ht(conf)) /* Switch the band (if necessary). */
phy->is_40mhz = err = b43_switch_band(dev, conf->chandef.chan);
(conf_is_ht40_minus(conf) || conf_is_ht40_plus(conf)); if (err)
else goto out_mac_enable;
phy->is_40mhz = false;
/* Switch to the requested channel.
* The firmware takes care of races with the TX handler.
*/
b43_switch_channel(dev, conf->chandef.chan->hw_value);
}
if (changed & IEEE80211_CONF_CHANGE_RETRY_LIMITS) if (changed & IEEE80211_CONF_CHANGE_RETRY_LIMITS)
b43_set_retry_limits(dev, conf->short_frame_max_tx_count, b43_set_retry_limits(dev, conf->short_frame_max_tx_count,
...@@ -3825,11 +3832,6 @@ static int b43_op_config(struct ieee80211_hw *hw, u32 changed) ...@@ -3825,11 +3832,6 @@ static int b43_op_config(struct ieee80211_hw *hw, u32 changed)
if (!changed) if (!changed)
goto out_mac_enable; goto out_mac_enable;
/* Switch to the requested channel.
* The firmware takes care of races with the TX handler. */
if (conf->chandef.chan->hw_value != phy->channel)
b43_switch_channel(dev, conf->chandef.chan->hw_value);
dev->wl->radiotap_enabled = !!(conf->flags & IEEE80211_CONF_MONITOR); dev->wl->radiotap_enabled = !!(conf->flags & IEEE80211_CONF_MONITOR);
/* Adjust the desired TX power level. */ /* Adjust the desired TX power level. */
...@@ -3865,7 +3867,6 @@ static int b43_op_config(struct ieee80211_hw *hw, u32 changed) ...@@ -3865,7 +3867,6 @@ static int b43_op_config(struct ieee80211_hw *hw, u32 changed)
out_mac_enable: out_mac_enable:
b43_mac_enable(dev); b43_mac_enable(dev);
out_unlock_mutex:
mutex_unlock(&wl->mutex); mutex_unlock(&wl->mutex);
return err; return err;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册