aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rtlwifi
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2012-07-20 12:30:48 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-07-20 12:30:48 -0400
commit90b90f60c4f8e3a8525dfeb4aec46a9c7a29c857 (patch)
tree9b1d8ca6084012a02b302520bc26e5be65ba7b2a /drivers/net/wireless/rtlwifi
parent769162e38b91e1d300752e666260fa6c7b203fbc (diff)
parent36eb22e97a2b621fb707eead58ef915ab0f46e9e (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.c2
-rw-r--r--drivers/net/wireless/rtlwifi/base.h2
-rw-r--r--drivers/net/wireless/rtlwifi/pci.c2
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/phy.c6
-rw-r--r--drivers/net/wireless/rtlwifi/usb.c14
-rw-r--r--drivers/net/wireless/rtlwifi/wifi.h1
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
170u8 rtl_tid_to_ac(struct ieee80211_hw *hw, u8 tid) 170u8 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);
139u8 *rtl_find_ie(u8 *data, unsigned int len, u8 ie); 139u8 *rtl_find_ie(u8 *data, unsigned int len, u8 ie);
140void rtl_recognize_peer(struct ieee80211_hw *hw, u8 *data, unsigned int len); 140void rtl_recognize_peer(struct ieee80211_hw *hw, u8 *data, unsigned int len);
141u8 rtl_tid_to_ac(struct ieee80211_hw *hw, u8 tid); 141u8 rtl_tid_to_ac(u8 tid);
142extern struct attribute_group rtl_attribute_group; 142extern struct attribute_group rtl_attribute_group;
143int rtlwifi_rate_mapping(struct ieee80211_hw *hw, 143int 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;