|
@@ -484,18 +484,21 @@ static void _rtl_init_deferred_work(struct ieee80211_hw *hw)
|
|
|
|
|
|
}
|
|
|
|
|
|
-void rtl_deinit_deferred_work(struct ieee80211_hw *hw)
|
|
|
+void rtl_deinit_deferred_work(struct ieee80211_hw *hw, bool ips_wq)
|
|
|
{
|
|
|
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
|
|
|
|
|
del_timer_sync(&rtlpriv->works.watchdog_timer);
|
|
|
|
|
|
- cancel_delayed_work(&rtlpriv->works.watchdog_wq);
|
|
|
- cancel_delayed_work(&rtlpriv->works.ips_nic_off_wq);
|
|
|
- cancel_delayed_work(&rtlpriv->works.ps_work);
|
|
|
- cancel_delayed_work(&rtlpriv->works.ps_rfon_wq);
|
|
|
- cancel_delayed_work(&rtlpriv->works.fwevt_wq);
|
|
|
- cancel_delayed_work(&rtlpriv->works.c2hcmd_wq);
|
|
|
+ cancel_delayed_work_sync(&rtlpriv->works.watchdog_wq);
|
|
|
+ if (ips_wq)
|
|
|
+ cancel_delayed_work(&rtlpriv->works.ips_nic_off_wq);
|
|
|
+ else
|
|
|
+ cancel_delayed_work_sync(&rtlpriv->works.ips_nic_off_wq);
|
|
|
+ cancel_delayed_work_sync(&rtlpriv->works.ps_work);
|
|
|
+ cancel_delayed_work_sync(&rtlpriv->works.ps_rfon_wq);
|
|
|
+ cancel_delayed_work_sync(&rtlpriv->works.fwevt_wq);
|
|
|
+ cancel_delayed_work_sync(&rtlpriv->works.c2hcmd_wq);
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(rtl_deinit_deferred_work);
|
|
|
|