diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-06-17 22:54:25 +0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-06-17 22:54:25 +0400 |
| commit | 0e496b8e84410c96d1ffc86f0b37b0328a4234da (patch) | |
| tree | d8a2aeeaee03eb4f305ba4dc5ab9395c4ee31321 /drivers/net/wireless/rtlwifi/usb.c | |
| parent | 214da6728acac285cac0e8e9b6c4c13838b8e1b0 (diff) | |
| parent | 7d132055814ef17a6c7b69f342244c410a5e000f (diff) | |
| download | linux-0e496b8e84410c96d1ffc86f0b37b0328a4234da.tar.xz | |
Merge 3.10-rc6 into char-misc-next
We want the fixes in here.
Diffstat (limited to 'drivers/net/wireless/rtlwifi/usb.c')
| -rw-r--r-- | drivers/net/wireless/rtlwifi/usb.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/wireless/rtlwifi/usb.c b/drivers/net/wireless/rtlwifi/usb.c index 76732b0cd221..a3532e077871 100644 --- a/drivers/net/wireless/rtlwifi/usb.c +++ b/drivers/net/wireless/rtlwifi/usb.c @@ -824,6 +824,7 @@ static void rtl_usb_stop(struct ieee80211_hw *hw) /* should after adapter start and interrupt enable. */ set_hal_stop(rtlhal); + cancel_work_sync(&rtlpriv->works.fill_h2c_cmd); /* Enable software */ SET_USB_STOP(rtlusb); rtl_usb_deinit(hw); @@ -1026,6 +1027,16 @@ static bool rtl_usb_tx_chk_waitq_insert(struct ieee80211_hw *hw, return false; } +static void rtl_fill_h2c_cmd_work_callback(struct work_struct *work) +{ + struct rtl_works *rtlworks = + container_of(work, struct rtl_works, fill_h2c_cmd); + struct ieee80211_hw *hw = rtlworks->hw; + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtlpriv->cfg->ops->fill_h2c_cmd(hw, H2C_RA_MASK, 5, rtlpriv->rate_mask); +} + static struct rtl_intf_ops rtl_usb_ops = { .adapter_start = rtl_usb_start, .adapter_stop = rtl_usb_stop, @@ -1057,6 +1068,8 @@ int rtl_usb_probe(struct usb_interface *intf, /* this spin lock must be initialized early */ spin_lock_init(&rtlpriv->locks.usb_lock); + INIT_WORK(&rtlpriv->works.fill_h2c_cmd, + rtl_fill_h2c_cmd_work_callback); rtlpriv->usb_data_index = 0; init_completion(&rtlpriv->firmware_loading_complete); |
