rtlwifi: Implement a common rtl_phy_scan_operation_backup() routine
Several of the drivers supported by rtlwifi individually implement the same routine that supports scans. As a first step, create this routine in driver rtlwifi. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
c6d3729984
commit
4f4826da8c
|
@ -1613,6 +1613,35 @@ err_free:
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(rtl_send_smps_action);
|
EXPORT_SYMBOL(rtl_send_smps_action);
|
||||||
|
|
||||||
|
void rtl_phy_scan_operation_backup(struct ieee80211_hw *hw, u8 operation)
|
||||||
|
{
|
||||||
|
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||||
|
struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
|
||||||
|
enum io_type iotype;
|
||||||
|
|
||||||
|
if (!is_hal_stop(rtlhal)) {
|
||||||
|
switch (operation) {
|
||||||
|
case SCAN_OPT_BACKUP:
|
||||||
|
iotype = IO_CMD_PAUSE_DM_BY_SCAN;
|
||||||
|
rtlpriv->cfg->ops->set_hw_reg(hw,
|
||||||
|
HW_VAR_IO_CMD,
|
||||||
|
(u8 *)&iotype);
|
||||||
|
break;
|
||||||
|
case SCAN_OPT_RESTORE:
|
||||||
|
iotype = IO_CMD_RESUME_DM_BY_SCAN;
|
||||||
|
rtlpriv->cfg->ops->set_hw_reg(hw,
|
||||||
|
HW_VAR_IO_CMD,
|
||||||
|
(u8 *)&iotype);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
|
||||||
|
"Unknown Scan Backup operation.\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(rtl_phy_scan_operation_backup);
|
||||||
|
|
||||||
/* There seem to be issues in mac80211 regarding when del ba frames can be
|
/* There seem to be issues in mac80211 regarding when del ba frames can be
|
||||||
* received. As a work around, we make a fake del_ba if we receive a ba_req;
|
* received. As a work around, we make a fake del_ba if we receive a ba_req;
|
||||||
* however, rx_agg was opened to let mac80211 release some ba related
|
* however, rx_agg was opened to let mac80211 release some ba related
|
||||||
|
|
|
@ -152,5 +152,6 @@ int rtlwifi_rate_mapping(struct ieee80211_hw *hw,
|
||||||
bool rtl_tx_mgmt_proc(struct ieee80211_hw *hw, struct sk_buff *skb);
|
bool rtl_tx_mgmt_proc(struct ieee80211_hw *hw, struct sk_buff *skb);
|
||||||
struct sk_buff *rtl_make_del_ba(struct ieee80211_hw *hw,
|
struct sk_buff *rtl_make_del_ba(struct ieee80211_hw *hw,
|
||||||
u8 *sa, u8 *bssid, u16 tid);
|
u8 *sa, u8 *bssid, u16 tid);
|
||||||
|
void rtl_phy_scan_operation_backup(struct ieee80211_hw *hw, u8 operation);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue