Some of the Mikrotik R11e-2HPnD cards have EEPROM where is flashed that a card has 3 chains, but actually all this cards have only 2. This leads ath9k to write into the logs: 'ath: phy0: Unable to reset channel, reset status -5' and stations don't see that AP. Mikrotik R11e-2HPnD is based on AR9582 chip. Signed-off-by: Denis Kalashnikov <denis281089@xxxxxxxxx> --- Changelog: Changes since v2: Use macros AR_SREV_9580_10 to select only AR9582 chips (they all have only 2 chains) instead of more general macros AR_SREV_9580 that selects not only AR9582 but also AR9580 chips with 3 chains. Changes since v1: No changes, only resending through 'git send-email' instead of Gmail. drivers/net/wireless/ath/ath9k/ar9003_eeprom.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c index b4885a700296..86a9f49ae0d0 100644 --- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c +++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c @@ -3373,6 +3373,15 @@ static int ar9300_eeprom_restore_internal(struct ath_hw *ah, cptr -= (COMP_HDR_LEN + osize + COMP_CKSUM_LEN); } + /** + * Fix firmware bug of some Mikrotik R11e-2HPnD cards (based on AR9582) + * that claim that they have 3 chains, but actually have only 2. + */ + if (AR_SREV_9580_10(ah)) { + eep = (struct ar9300_eeprom *)mptr; + eep->baseEepHeader.txrxMask &= 0x33; + } + kfree(word); return cptr; -- 2.23.0