diff options
Diffstat (limited to 'drivers/net/wireless/rtlwifi/base.c')
-rw-r--r-- | drivers/net/wireless/rtlwifi/base.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/drivers/net/wireless/rtlwifi/base.c b/drivers/net/wireless/rtlwifi/base.c index 8bb4a9a01a18..9a78e3daf742 100644 --- a/drivers/net/wireless/rtlwifi/base.c +++ b/drivers/net/wireless/rtlwifi/base.c | |||
@@ -1613,6 +1613,35 @@ err_free: | |||
1613 | } | 1613 | } |
1614 | EXPORT_SYMBOL(rtl_send_smps_action); | 1614 | EXPORT_SYMBOL(rtl_send_smps_action); |
1615 | 1615 | ||
1616 | void rtl_phy_scan_operation_backup(struct ieee80211_hw *hw, u8 operation) | ||
1617 | { | ||
1618 | struct rtl_priv *rtlpriv = rtl_priv(hw); | ||
1619 | struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); | ||
1620 | enum io_type iotype; | ||
1621 | |||
1622 | if (!is_hal_stop(rtlhal)) { | ||
1623 | switch (operation) { | ||
1624 | case SCAN_OPT_BACKUP: | ||
1625 | iotype = IO_CMD_PAUSE_DM_BY_SCAN; | ||
1626 | rtlpriv->cfg->ops->set_hw_reg(hw, | ||
1627 | HW_VAR_IO_CMD, | ||
1628 | (u8 *)&iotype); | ||
1629 | break; | ||
1630 | case SCAN_OPT_RESTORE: | ||
1631 | iotype = IO_CMD_RESUME_DM_BY_SCAN; | ||
1632 | rtlpriv->cfg->ops->set_hw_reg(hw, | ||
1633 | HW_VAR_IO_CMD, | ||
1634 | (u8 *)&iotype); | ||
1635 | break; | ||
1636 | default: | ||
1637 | RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, | ||
1638 | "Unknown Scan Backup operation.\n"); | ||
1639 | break; | ||
1640 | } | ||
1641 | } | ||
1642 | } | ||
1643 | EXPORT_SYMBOL(rtl_phy_scan_operation_backup); | ||
1644 | |||
1616 | /* There seem to be issues in mac80211 regarding when del ba frames can be | 1645 | /* There seem to be issues in mac80211 regarding when del ba frames can be |
1617 | * received. As a work around, we make a fake del_ba if we receive a ba_req; | 1646 | * received. As a work around, we make a fake del_ba if we receive a ba_req; |
1618 | * however, rx_agg was opened to let mac80211 release some ba related | 1647 | * however, rx_agg was opened to let mac80211 release some ba related |