From: Felix Fietkau <nbd@openwrt.org>
Date: Tue, 13 Aug 2013 10:33:28 +0000 (+0200)
Subject: ath9k: avoid accessing MRC registers on single-chain devices
X-Git-Tag: firefly_0821_release~176^2~5420^2~84^2^2~92
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=a1c781bb20ac1e03280e420abd47a99eb8bbdd3b;p=firefly-linux-kernel-4.4.55.git

ath9k: avoid accessing MRC registers on single-chain devices

They are not implemented, and accessing them might trigger errors

Cc: stable@vger.kernel.org
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---

diff --git a/drivers/net/wireless/ath/ath9k/ar9003_phy.c b/drivers/net/wireless/ath/ath9k/ar9003_phy.c
index 39c37309f39e..18a5aa4fe406 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c
@@ -1172,6 +1172,10 @@ skip_ws_det:
 		 * is_on == 0 means MRC CCK is OFF (more noise imm)
 		 */
 		bool is_on = param ? 1 : 0;
+
+		if (ah->caps.rx_chainmask == 1)
+			break;
+
 		REG_RMW_FIELD(ah, AR_PHY_MRC_CCK_CTRL,
 			      AR_PHY_MRC_CCK_ENABLE, is_on);
 		REG_RMW_FIELD(ah, AR_PHY_MRC_CCK_CTRL,