diff options
author | John W. Linville <linville@tuxdriver.com> | 2012-07-20 12:30:48 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-07-20 12:30:48 -0400 |
commit | 90b90f60c4f8e3a8525dfeb4aec46a9c7a29c857 (patch) | |
tree | 9b1d8ca6084012a02b302520bc26e5be65ba7b2a /drivers/net/wireless/rtlwifi | |
parent | 769162e38b91e1d300752e666260fa6c7b203fbc (diff) | |
parent | 36eb22e97a2b621fb707eead58ef915ab0f46e9e (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem
Diffstat (limited to 'drivers/net/wireless/rtlwifi')
-rw-r--r-- | drivers/net/wireless/rtlwifi/base.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/base.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/pci.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192de/phy.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/usb.c | 14 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/wifi.h | 1 |
6 files changed, 18 insertions, 9 deletions
diff --git a/drivers/net/wireless/rtlwifi/base.c b/drivers/net/wireless/rtlwifi/base.c index 58e1f7bb4df1..942e56b77b60 100644 --- a/drivers/net/wireless/rtlwifi/base.c +++ b/drivers/net/wireless/rtlwifi/base.c | |||
@@ -167,7 +167,7 @@ static const u8 tid_to_ac[] = { | |||
167 | 0, /* IEEE80211_AC_VO */ | 167 | 0, /* IEEE80211_AC_VO */ |
168 | }; | 168 | }; |
169 | 169 | ||
170 | u8 rtl_tid_to_ac(struct ieee80211_hw *hw, u8 tid) | 170 | u8 rtl_tid_to_ac(u8 tid) |
171 | { | 171 | { |
172 | return tid_to_ac[tid]; | 172 | return tid_to_ac[tid]; |
173 | } | 173 | } |
diff --git a/drivers/net/wireless/rtlwifi/base.h b/drivers/net/wireless/rtlwifi/base.h index 5a23a6d0f49d..f35af0fdaaf0 100644 --- a/drivers/net/wireless/rtlwifi/base.h +++ b/drivers/net/wireless/rtlwifi/base.h | |||
@@ -138,7 +138,7 @@ int rtl_send_smps_action(struct ieee80211_hw *hw, | |||
138 | enum ieee80211_smps_mode smps); | 138 | enum ieee80211_smps_mode smps); |
139 | u8 *rtl_find_ie(u8 *data, unsigned int len, u8 ie); | 139 | u8 *rtl_find_ie(u8 *data, unsigned int len, u8 ie); |
140 | void rtl_recognize_peer(struct ieee80211_hw *hw, u8 *data, unsigned int len); | 140 | void rtl_recognize_peer(struct ieee80211_hw *hw, u8 *data, unsigned int len); |
141 | u8 rtl_tid_to_ac(struct ieee80211_hw *hw, u8 tid); | 141 | u8 rtl_tid_to_ac(u8 tid); |
142 | extern struct attribute_group rtl_attribute_group; | 142 | extern struct attribute_group rtl_attribute_group; |
143 | int rtlwifi_rate_mapping(struct ieee80211_hw *hw, | 143 | int rtlwifi_rate_mapping(struct ieee80211_hw *hw, |
144 | bool isht, u8 desc_rate, bool first_ampdu); | 144 | bool isht, u8 desc_rate, bool first_ampdu); |
diff --git a/drivers/net/wireless/rtlwifi/pci.c b/drivers/net/wireless/rtlwifi/pci.c index 31138fdad1f7..80f75d3ba84a 100644 --- a/drivers/net/wireless/rtlwifi/pci.c +++ b/drivers/net/wireless/rtlwifi/pci.c | |||
@@ -480,7 +480,7 @@ static void _rtl_pci_tx_chk_waitq(struct ieee80211_hw *hw) | |||
480 | 480 | ||
481 | /* we juse use em for BE/BK/VI/VO */ | 481 | /* we juse use em for BE/BK/VI/VO */ |
482 | for (tid = 7; tid >= 0; tid--) { | 482 | for (tid = 7; tid >= 0; tid--) { |
483 | u8 hw_queue = ac_to_hwq[rtl_tid_to_ac(hw, tid)]; | 483 | u8 hw_queue = ac_to_hwq[rtl_tid_to_ac(tid)]; |
484 | struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[hw_queue]; | 484 | struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[hw_queue]; |
485 | while (!mac->act_scanning && | 485 | while (!mac->act_scanning && |
486 | rtlpriv->psc.rfpwr_state == ERFON) { | 486 | rtlpriv->psc.rfpwr_state == ERFON) { |
diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/phy.c b/drivers/net/wireless/rtlwifi/rtl8192de/phy.c index 18380a7829f1..442031256bce 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192de/phy.c +++ b/drivers/net/wireless/rtlwifi/rtl8192de/phy.c | |||
@@ -3345,21 +3345,21 @@ void rtl92d_phy_config_macphymode_info(struct ieee80211_hw *hw) | |||
3345 | switch (rtlhal->macphymode) { | 3345 | switch (rtlhal->macphymode) { |
3346 | case DUALMAC_SINGLEPHY: | 3346 | case DUALMAC_SINGLEPHY: |
3347 | rtlphy->rf_type = RF_2T2R; | 3347 | rtlphy->rf_type = RF_2T2R; |
3348 | rtlhal->version |= CHIP_92D_SINGLEPHY; | 3348 | rtlhal->version |= RF_TYPE_2T2R; |
3349 | rtlhal->bandset = BAND_ON_BOTH; | 3349 | rtlhal->bandset = BAND_ON_BOTH; |
3350 | rtlhal->current_bandtype = BAND_ON_2_4G; | 3350 | rtlhal->current_bandtype = BAND_ON_2_4G; |
3351 | break; | 3351 | break; |
3352 | 3352 | ||
3353 | case SINGLEMAC_SINGLEPHY: | 3353 | case SINGLEMAC_SINGLEPHY: |
3354 | rtlphy->rf_type = RF_2T2R; | 3354 | rtlphy->rf_type = RF_2T2R; |
3355 | rtlhal->version |= CHIP_92D_SINGLEPHY; | 3355 | rtlhal->version |= RF_TYPE_2T2R; |
3356 | rtlhal->bandset = BAND_ON_BOTH; | 3356 | rtlhal->bandset = BAND_ON_BOTH; |
3357 | rtlhal->current_bandtype = BAND_ON_2_4G; | 3357 | rtlhal->current_bandtype = BAND_ON_2_4G; |
3358 | break; | 3358 | break; |
3359 | 3359 | ||
3360 | case DUALMAC_DUALPHY: | 3360 | case DUALMAC_DUALPHY: |
3361 | rtlphy->rf_type = RF_1T1R; | 3361 | rtlphy->rf_type = RF_1T1R; |
3362 | rtlhal->version &= (~CHIP_92D_SINGLEPHY); | 3362 | rtlhal->version &= RF_TYPE_1T1R; |
3363 | /* Now we let MAC0 run on 5G band. */ | 3363 | /* Now we let MAC0 run on 5G band. */ |
3364 | if (rtlhal->interfaceindex == 0) { | 3364 | if (rtlhal->interfaceindex == 0) { |
3365 | rtlhal->bandset = BAND_ON_5G; | 3365 | rtlhal->bandset = BAND_ON_5G; |
diff --git a/drivers/net/wireless/rtlwifi/usb.c b/drivers/net/wireless/rtlwifi/usb.c index a6049d7d51b3..aa970fc18a21 100644 --- a/drivers/net/wireless/rtlwifi/usb.c +++ b/drivers/net/wireless/rtlwifi/usb.c | |||
@@ -131,15 +131,19 @@ static u32 _usb_read_sync(struct rtl_priv *rtlpriv, u32 addr, u16 len) | |||
131 | u8 request; | 131 | u8 request; |
132 | u16 wvalue; | 132 | u16 wvalue; |
133 | u16 index; | 133 | u16 index; |
134 | __le32 *data = &rtlpriv->usb_data[rtlpriv->usb_data_index]; | 134 | __le32 *data; |
135 | unsigned long flags; | ||
135 | 136 | ||
137 | spin_lock_irqsave(&rtlpriv->locks.usb_lock, flags); | ||
138 | if (++rtlpriv->usb_data_index >= RTL_USB_MAX_RX_COUNT) | ||
139 | rtlpriv->usb_data_index = 0; | ||
140 | data = &rtlpriv->usb_data[rtlpriv->usb_data_index]; | ||
141 | spin_unlock_irqrestore(&rtlpriv->locks.usb_lock, flags); | ||
136 | request = REALTEK_USB_VENQT_CMD_REQ; | 142 | request = REALTEK_USB_VENQT_CMD_REQ; |
137 | index = REALTEK_USB_VENQT_CMD_IDX; /* n/a */ | 143 | index = REALTEK_USB_VENQT_CMD_IDX; /* n/a */ |
138 | 144 | ||
139 | wvalue = (u16)addr; | 145 | wvalue = (u16)addr; |
140 | _usbctrl_vendorreq_sync_read(udev, request, wvalue, index, data, len); | 146 | _usbctrl_vendorreq_sync_read(udev, request, wvalue, index, data, len); |
141 | if (++rtlpriv->usb_data_index >= RTL_USB_MAX_RX_COUNT) | ||
142 | rtlpriv->usb_data_index = 0; | ||
143 | return le32_to_cpu(*data); | 147 | return le32_to_cpu(*data); |
144 | } | 148 | } |
145 | 149 | ||
@@ -951,6 +955,10 @@ int __devinit rtl_usb_probe(struct usb_interface *intf, | |||
951 | GFP_KERNEL); | 955 | GFP_KERNEL); |
952 | if (!rtlpriv->usb_data) | 956 | if (!rtlpriv->usb_data) |
953 | return -ENOMEM; | 957 | return -ENOMEM; |
958 | |||
959 | /* this spin lock must be initialized early */ | ||
960 | spin_lock_init(&rtlpriv->locks.usb_lock); | ||
961 | |||
954 | rtlpriv->usb_data_index = 0; | 962 | rtlpriv->usb_data_index = 0; |
955 | init_completion(&rtlpriv->firmware_loading_complete); | 963 | init_completion(&rtlpriv->firmware_loading_complete); |
956 | SET_IEEE80211_DEV(hw, &intf->dev); | 964 | SET_IEEE80211_DEV(hw, &intf->dev); |
diff --git a/drivers/net/wireless/rtlwifi/wifi.h b/drivers/net/wireless/rtlwifi/wifi.h index bd816aef26dc..cdaa21f29710 100644 --- a/drivers/net/wireless/rtlwifi/wifi.h +++ b/drivers/net/wireless/rtlwifi/wifi.h | |||
@@ -1555,6 +1555,7 @@ struct rtl_locks { | |||
1555 | spinlock_t rf_ps_lock; | 1555 | spinlock_t rf_ps_lock; |
1556 | spinlock_t rf_lock; | 1556 | spinlock_t rf_lock; |
1557 | spinlock_t waitq_lock; | 1557 | spinlock_t waitq_lock; |
1558 | spinlock_t usb_lock; | ||
1558 | 1559 | ||
1559 | /*Dual mac*/ | 1560 | /*Dual mac*/ |
1560 | spinlock_t cck_and_rw_pagea_lock; | 1561 | spinlock_t cck_and_rw_pagea_lock; |