Skip to content

Commit 322b1f7

Browse files
committed
Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next
John W. Linville says: ==================== Please pull these fixes for the 3.14 stream! For the iwlwifi fix, Emmanuel says: "A critical bug has been reported on all NICs supported by iwldvm. iwlwifi would simply panic upon interface up This patch fixes this. The offending code is by me and is present in wireless-next.git and hence in net-next.git." Along with that... Andreas Fenkart corrects a WoWLAN problem with mwifiex. Roman Dubtsov adds a device ID to rt2800usb. Sujith Manoharan re-enables a mistakenly commented-out line of code in ath9k, and also fixes and interrupt mitigation issue for that driver. ZHAO Gang fixes an incorrect assignment (reverse/wrong API call) in b43. Please let me know if there are problems! ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
2 parents f55aa83 + 5746cc2 commit 322b1f7

File tree

7 files changed

+20
-7
lines changed

7 files changed

+20
-7
lines changed

drivers/net/wireless/ath/ath9k/hw.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,14 @@ static void ath9k_hw_init_config(struct ath_hw *ah)
358358

359359
ah->config.rx_intr_mitigation = true;
360360

361+
if (AR_SREV_9300_20_OR_LATER(ah)) {
362+
ah->config.rimt_last = 500;
363+
ah->config.rimt_first = 2000;
364+
} else {
365+
ah->config.rimt_last = 250;
366+
ah->config.rimt_first = 700;
367+
}
368+
361369
/*
362370
* We need this for PCI devices only (Cardbus, PCI, miniPCI)
363371
* _and_ if on non-uniprocessor systems (Multiprocessor/HT).
@@ -1876,8 +1884,8 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
18761884
REG_WRITE(ah, AR_OBS, 8);
18771885

18781886
if (ah->config.rx_intr_mitigation) {
1879-
REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_LAST, 500);
1880-
REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_FIRST, 2000);
1887+
REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_LAST, ah->config.rimt_last);
1888+
REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_FIRST, ah->config.rimt_first);
18811889
}
18821890

18831891
if (ah->config.tx_intr_mitigation) {

drivers/net/wireless/ath/ath9k/hw.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,8 @@ struct ath9k_ops_config {
310310
u8 max_txtrig_level;
311311
u16 ani_poll_interval; /* ANI poll interval in ms */
312312
u16 hw_hang_checks;
313+
u16 rimt_first;
314+
u16 rimt_last;
313315

314316
/* Platform specific config */
315317
u32 aspm_l1_fix;

drivers/net/wireless/ath/ath9k/main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -524,7 +524,7 @@ void ath9k_tasklet(unsigned long data)
524524
* successfully after a GTT interrupt, the GTT counter
525525
* gets reset to zero here.
526526
*/
527-
/* sc->gtt_cnt = 0; */
527+
sc->gtt_cnt = 0;
528528

529529
ath_tx_edma_tasklet(sc);
530530
} else {

drivers/net/wireless/b43/xmit.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -821,10 +821,10 @@ void b43_rx(struct b43_wldev *dev, struct sk_buff *skb, const void *_rxhdr)
821821
* channel number in b43. */
822822
if (chanstat & B43_RX_CHAN_5GHZ) {
823823
status.band = IEEE80211_BAND_5GHZ;
824-
status.freq = b43_freq_to_channel_5ghz(chanid);
824+
status.freq = b43_channel_to_freq_5ghz(chanid);
825825
} else {
826826
status.band = IEEE80211_BAND_2GHZ;
827-
status.freq = b43_freq_to_channel_2ghz(chanid);
827+
status.freq = b43_channel_to_freq_2ghz(chanid);
828828
}
829829
break;
830830
default:

drivers/net/wireless/iwlwifi/pcie/tx.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,13 +289,15 @@ static void iwl_pcie_txq_inval_byte_cnt_tbl(struct iwl_trans *trans,
289289
*/
290290
void iwl_pcie_txq_inc_wr_ptr(struct iwl_trans *trans, struct iwl_txq *txq)
291291
{
292+
struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
292293
u32 reg = 0;
293294
int txq_id = txq->q.id;
294295

295296
if (txq->need_update == 0)
296297
return;
297298

298-
if (trans->cfg->base_params->shadow_reg_enable) {
299+
if (trans->cfg->base_params->shadow_reg_enable ||
300+
txq_id == trans_pcie->cmd_queue) {
299301
/* shadow register enabled */
300302
iwl_write32(trans, HBUS_TARG_WRPTR,
301303
txq->q.write_ptr | (txq_id << 8));

drivers/net/wireless/mwifiex/cfg80211.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2449,7 +2449,7 @@ static int mwifiex_cfg80211_suspend(struct wiphy *wiphy,
24492449
ETH_ALEN);
24502450
mef_entry->filter[filt_num].byte_seq[MWIFIEX_MEF_MAX_BYTESEQ] =
24512451
ETH_ALEN;
2452-
mef_entry->filter[filt_num].offset = 14;
2452+
mef_entry->filter[filt_num].offset = 28;
24532453
mef_entry->filter[filt_num].filt_type = TYPE_EQ;
24542454
if (filt_num)
24552455
mef_entry->filter[filt_num].filt_action = TYPE_OR;

drivers/net/wireless/rt2x00/rt2800usb.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -989,6 +989,7 @@ static struct usb_device_id rt2800usb_device_table[] = {
989989
{ USB_DEVICE(0x07d1, 0x3c15) },
990990
{ USB_DEVICE(0x07d1, 0x3c16) },
991991
{ USB_DEVICE(0x07d1, 0x3c17) },
992+
{ USB_DEVICE(0x2001, 0x3317) },
992993
{ USB_DEVICE(0x2001, 0x3c1b) },
993994
/* Draytek */
994995
{ USB_DEVICE(0x07fa, 0x7712) },

0 commit comments

Comments
 (0)