mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 14:34:27 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			250 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			250 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- a/drivers/net/wireless/ath/ath9k/Kconfig
 | 
						|
+++ b/drivers/net/wireless/ath/ath9k/Kconfig
 | 
						|
@@ -133,6 +133,11 @@ config ATH9K_RFKILL
 | 
						|
 	  seconds. Turn off to save power, but enable it if you have
 | 
						|
 	  a platform that can toggle the RF-Kill GPIO.
 | 
						|
 
 | 
						|
+config ATH9K_PCOEM
 | 
						|
+	bool "Atheros ath9k support for PC OEM cards" if EXPERT
 | 
						|
+	depends on ATH9K
 | 
						|
+	default y
 | 
						|
+
 | 
						|
 config ATH9K_HTC
 | 
						|
        tristate "Atheros HTC based wireless cards support"
 | 
						|
        depends on m
 | 
						|
--- a/drivers/net/wireless/ath/ath9k/Makefile
 | 
						|
+++ b/drivers/net/wireless/ath/ath9k/Makefile
 | 
						|
@@ -31,7 +31,6 @@ ath9k_hw-y:=	\
 | 
						|
 		ar5008_phy.o \
 | 
						|
 		ar9002_calib.o \
 | 
						|
 		ar9003_calib.o \
 | 
						|
-		ar9003_rtt.o \
 | 
						|
 		calib.o \
 | 
						|
 		eeprom.o \
 | 
						|
 		eeprom_def.o \
 | 
						|
@@ -48,6 +47,8 @@ ath9k_hw-$(CPTCFG_ATH9K_WOW) += ar9003_w
 | 
						|
 
 | 
						|
 ath9k_hw-$(CPTCFG_ATH9K_BTCOEX_SUPPORT) += btcoex.o \
 | 
						|
 					   ar9003_mci.o
 | 
						|
+ath9k_hw-$(CPTCFG_ATH9K_PCOEM) += ar9003_rtt.o
 | 
						|
+
 | 
						|
 obj-$(CPTCFG_ATH9K_HW) += ath9k_hw.o
 | 
						|
 
 | 
						|
 obj-$(CPTCFG_ATH9K_COMMON) += ath9k_common.o
 | 
						|
--- a/drivers/net/wireless/ath/ath9k/ar9003_rtt.h
 | 
						|
+++ b/drivers/net/wireless/ath/ath9k/ar9003_rtt.h
 | 
						|
@@ -17,6 +17,7 @@
 | 
						|
 #ifndef AR9003_RTT_H
 | 
						|
 #define AR9003_RTT_H
 | 
						|
 
 | 
						|
+#ifdef CPTCFG_ATH9K_PCOEM
 | 
						|
 void ar9003_hw_rtt_enable(struct ath_hw *ah);
 | 
						|
 void ar9003_hw_rtt_disable(struct ath_hw *ah);
 | 
						|
 void ar9003_hw_rtt_set_mask(struct ath_hw *ah, u32 rtt_mask);
 | 
						|
@@ -25,5 +26,40 @@ void ar9003_hw_rtt_load_hist(struct ath_
 | 
						|
 void ar9003_hw_rtt_fill_hist(struct ath_hw *ah);
 | 
						|
 void ar9003_hw_rtt_clear_hist(struct ath_hw *ah);
 | 
						|
 bool ar9003_hw_rtt_restore(struct ath_hw *ah, struct ath9k_channel *chan);
 | 
						|
+#else
 | 
						|
+static inline void ar9003_hw_rtt_enable(struct ath_hw *ah)
 | 
						|
+{
 | 
						|
+}
 | 
						|
+
 | 
						|
+static inline void ar9003_hw_rtt_disable(struct ath_hw *ah)
 | 
						|
+{
 | 
						|
+}
 | 
						|
+
 | 
						|
+static inline void ar9003_hw_rtt_set_mask(struct ath_hw *ah, u32 rtt_mask)
 | 
						|
+{
 | 
						|
+}
 | 
						|
+
 | 
						|
+static inline bool ar9003_hw_rtt_force_restore(struct ath_hw *ah)
 | 
						|
+{
 | 
						|
+	return false;
 | 
						|
+}
 | 
						|
+
 | 
						|
+static inline void ar9003_hw_rtt_load_hist(struct ath_hw *ah)
 | 
						|
+{
 | 
						|
+}
 | 
						|
+
 | 
						|
+static inline void ar9003_hw_rtt_fill_hist(struct ath_hw *ah)
 | 
						|
+{
 | 
						|
+}
 | 
						|
+
 | 
						|
+static inline void ar9003_hw_rtt_clear_hist(struct ath_hw *ah)
 | 
						|
+{
 | 
						|
+}
 | 
						|
+
 | 
						|
+static inline bool ar9003_hw_rtt_restore(struct ath_hw *ah, struct ath9k_channel *chan)
 | 
						|
+{
 | 
						|
+	return false;
 | 
						|
+}
 | 
						|
+#endif
 | 
						|
 
 | 
						|
 #endif
 | 
						|
--- a/drivers/net/wireless/ath/ath9k/hw.h
 | 
						|
+++ b/drivers/net/wireless/ath/ath9k/hw.h
 | 
						|
@@ -244,13 +244,20 @@ enum ath9k_hw_caps {
 | 
						|
 	ATH9K_HW_CAP_2GHZ			= BIT(11),
 | 
						|
 	ATH9K_HW_CAP_5GHZ			= BIT(12),
 | 
						|
 	ATH9K_HW_CAP_APM			= BIT(13),
 | 
						|
+#ifdef CPTCFG_ATH9K_PCOEM
 | 
						|
 	ATH9K_HW_CAP_RTT			= BIT(14),
 | 
						|
 	ATH9K_HW_CAP_MCI			= BIT(15),
 | 
						|
-	ATH9K_HW_CAP_DFS			= BIT(16),
 | 
						|
-	ATH9K_HW_WOW_DEVICE_CAPABLE		= BIT(17),
 | 
						|
-	ATH9K_HW_CAP_PAPRD			= BIT(18),
 | 
						|
-	ATH9K_HW_CAP_FCC_BAND_SWITCH		= BIT(19),
 | 
						|
-	ATH9K_HW_CAP_BT_ANT_DIV			= BIT(20),
 | 
						|
+	ATH9K_HW_WOW_DEVICE_CAPABLE		= BIT(16),
 | 
						|
+	ATH9K_HW_CAP_BT_ANT_DIV			= BIT(17),
 | 
						|
+#else
 | 
						|
+	ATH9K_HW_CAP_RTT			= 0,
 | 
						|
+	ATH9K_HW_CAP_MCI			= 0,
 | 
						|
+	ATH9K_HW_WOW_DEVICE_CAPABLE		= 0,
 | 
						|
+	ATH9K_HW_CAP_BT_ANT_DIV			= 0,
 | 
						|
+#endif
 | 
						|
+	ATH9K_HW_CAP_DFS			= BIT(18),
 | 
						|
+	ATH9K_HW_CAP_PAPRD			= BIT(19),
 | 
						|
+	ATH9K_HW_CAP_FCC_BAND_SWITCH		= BIT(20),
 | 
						|
 };
 | 
						|
 
 | 
						|
 /*
 | 
						|
--- a/drivers/net/wireless/ath/ath9k/init.c
 | 
						|
+++ b/drivers/net/wireless/ath/ath9k/init.c
 | 
						|
@@ -355,6 +355,9 @@ static void ath9k_init_pcoem_platform(st
 | 
						|
 	struct ath9k_hw_capabilities *pCap = &ah->caps;
 | 
						|
 	struct ath_common *common = ath9k_hw_common(ah);
 | 
						|
 
 | 
						|
+	if (!IS_ENABLED(CPTCFG_ATH9K_PCOEM))
 | 
						|
+		return;
 | 
						|
+
 | 
						|
 	if (common->bus_ops->ath_bus_type != ATH_PCI)
 | 
						|
 		return;
 | 
						|
 
 | 
						|
--- a/drivers/net/wireless/ath/ath9k/pci.c
 | 
						|
+++ b/drivers/net/wireless/ath/ath9k/pci.c
 | 
						|
@@ -30,6 +30,7 @@ static DEFINE_PCI_DEVICE_TABLE(ath_pci_i
 | 
						|
 	{ PCI_VDEVICE(ATHEROS, 0x0029) }, /* PCI   */
 | 
						|
 	{ PCI_VDEVICE(ATHEROS, 0x002A) }, /* PCI-E */
 | 
						|
 
 | 
						|
+#ifdef CPTCFG_ATH9K_PCOEM
 | 
						|
 	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS,
 | 
						|
 			 0x002A,
 | 
						|
 			 PCI_VENDOR_ID_AZWAVE,
 | 
						|
@@ -82,6 +83,7 @@ static DEFINE_PCI_DEVICE_TABLE(ath_pci_i
 | 
						|
 			 PCI_VENDOR_ID_AZWAVE,
 | 
						|
 			 0x2C37),
 | 
						|
 	  .driver_data = ATH9K_PCI_BT_ANT_DIV },
 | 
						|
+#endif
 | 
						|
 
 | 
						|
 	{ PCI_VDEVICE(ATHEROS, 0x002B) }, /* PCI-E */
 | 
						|
 	{ PCI_VDEVICE(ATHEROS, 0x002C) }, /* PCI-E 802.11n bonded out */
 | 
						|
@@ -102,6 +104,7 @@ static DEFINE_PCI_DEVICE_TABLE(ath_pci_i
 | 
						|
 
 | 
						|
 	{ PCI_VDEVICE(ATHEROS, 0x0030) }, /* PCI-E  AR9300 */
 | 
						|
 
 | 
						|
+#ifdef CPTCFG_ATH9K_PCOEM
 | 
						|
 	/* PCI-E CUS198 */
 | 
						|
 	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS,
 | 
						|
 			 0x0032,
 | 
						|
@@ -294,10 +297,12 @@ static DEFINE_PCI_DEVICE_TABLE(ath_pci_i
 | 
						|
 			 PCI_VENDOR_ID_ASUSTEK,
 | 
						|
 			 0x850D),
 | 
						|
 	  .driver_data = ATH9K_PCI_NO_PLL_PWRSAVE },
 | 
						|
+#endif
 | 
						|
 
 | 
						|
 	{ PCI_VDEVICE(ATHEROS, 0x0032) }, /* PCI-E  AR9485 */
 | 
						|
 	{ PCI_VDEVICE(ATHEROS, 0x0033) }, /* PCI-E  AR9580 */
 | 
						|
 
 | 
						|
+#ifdef CPTCFG_ATH9K_PCOEM
 | 
						|
 	/* PCI-E CUS217 */
 | 
						|
 	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS,
 | 
						|
 			 0x0034,
 | 
						|
@@ -657,6 +662,7 @@ static DEFINE_PCI_DEVICE_TABLE(ath_pci_i
 | 
						|
 	/* PCI-E AR9565 (WB335) */
 | 
						|
 	{ PCI_VDEVICE(ATHEROS, 0x0036),
 | 
						|
 	  .driver_data = ATH9K_PCI_BT_ANT_DIV },
 | 
						|
+#endif
 | 
						|
 
 | 
						|
 	{ PCI_VDEVICE(ATHEROS, 0xabcd) }, /* PCI-E  internal chip default ID */
 | 
						|
 	{ 0 }
 | 
						|
--- a/drivers/net/wireless/ath/ath9k/reg.h
 | 
						|
+++ b/drivers/net/wireless/ath/ath9k/reg.h
 | 
						|
@@ -891,10 +891,21 @@
 | 
						|
 	(AR_SREV_9330((_ah)) && \
 | 
						|
 	 ((_ah)->hw_version.macRev == AR_SREV_REVISION_9330_12))
 | 
						|
 
 | 
						|
+#ifdef CPTCFG_ATH9K_PCOEM
 | 
						|
+#define AR_SREV_9462(_ah) \
 | 
						|
+	(((_ah)->hw_version.macVersion == AR_SREV_VERSION_9462))
 | 
						|
 #define AR_SREV_9485(_ah) \
 | 
						|
 	(((_ah)->hw_version.macVersion == AR_SREV_VERSION_9485))
 | 
						|
+#define AR_SREV_9565(_ah) \
 | 
						|
+	(((_ah)->hw_version.macVersion == AR_SREV_VERSION_9565))
 | 
						|
+#else
 | 
						|
+#define AR_SREV_9462(_ah) 0
 | 
						|
+#define AR_SREV_9485(_ah) 0
 | 
						|
+#define AR_SREV_9565(_ah) 0
 | 
						|
+#endif
 | 
						|
+
 | 
						|
 #define AR_SREV_9485_11_OR_LATER(_ah) \
 | 
						|
-	(((_ah)->hw_version.macVersion == AR_SREV_VERSION_9485) && \
 | 
						|
+	(AR_SREV_9485(_ah) && \
 | 
						|
 	 ((_ah)->hw_version.macRev >= AR_SREV_REVISION_9485_11))
 | 
						|
 #define AR_SREV_9485_OR_LATER(_ah) \
 | 
						|
 	(((_ah)->hw_version.macVersion >= AR_SREV_VERSION_9485))
 | 
						|
@@ -910,34 +921,30 @@
 | 
						|
     (AR_SREV_9285_12_OR_LATER(_ah) && \
 | 
						|
      ((REG_READ(_ah, AR_AN_SYNTH9) & 0x7) == 0x1))
 | 
						|
 
 | 
						|
-#define AR_SREV_9462(_ah) \
 | 
						|
-	(((_ah)->hw_version.macVersion == AR_SREV_VERSION_9462))
 | 
						|
 #define AR_SREV_9462_20(_ah) \
 | 
						|
-	(((_ah)->hw_version.macVersion == AR_SREV_VERSION_9462) && \
 | 
						|
+	(AR_SREV_9462(_ah) && \
 | 
						|
 	 ((_ah)->hw_version.macRev == AR_SREV_REVISION_9462_20))
 | 
						|
 #define AR_SREV_9462_21(_ah) \
 | 
						|
-	(((_ah)->hw_version.macVersion == AR_SREV_VERSION_9462) && \
 | 
						|
+	(AR_SREV_9462(_ah) && \
 | 
						|
 	 ((_ah)->hw_version.macRev == AR_SREV_REVISION_9462_21))
 | 
						|
 #define AR_SREV_9462_20_OR_LATER(_ah) \
 | 
						|
-	(((_ah)->hw_version.macVersion == AR_SREV_VERSION_9462) && \
 | 
						|
+	(AR_SREV_9462(_ah) && \
 | 
						|
 	 ((_ah)->hw_version.macRev >= AR_SREV_REVISION_9462_20))
 | 
						|
 #define AR_SREV_9462_21_OR_LATER(_ah) \
 | 
						|
-	(((_ah)->hw_version.macVersion == AR_SREV_VERSION_9462) && \
 | 
						|
+	(AR_SREV_9462(_ah) && \
 | 
						|
 	 ((_ah)->hw_version.macRev >= AR_SREV_REVISION_9462_21))
 | 
						|
 
 | 
						|
-#define AR_SREV_9565(_ah) \
 | 
						|
-	(((_ah)->hw_version.macVersion == AR_SREV_VERSION_9565))
 | 
						|
 #define AR_SREV_9565_10(_ah) \
 | 
						|
-	(((_ah)->hw_version.macVersion == AR_SREV_VERSION_9565) && \
 | 
						|
+	(AR_SREV_9565(_ah) && \
 | 
						|
 	 ((_ah)->hw_version.macRev == AR_SREV_REVISION_9565_10))
 | 
						|
 #define AR_SREV_9565_101(_ah) \
 | 
						|
-	(((_ah)->hw_version.macVersion == AR_SREV_VERSION_9565) && \
 | 
						|
+	(AR_SREV_9565(_ah) && \
 | 
						|
 	 ((_ah)->hw_version.macRev == AR_SREV_REVISION_9565_101))
 | 
						|
 #define AR_SREV_9565_11(_ah) \
 | 
						|
-	(((_ah)->hw_version.macVersion == AR_SREV_VERSION_9565) && \
 | 
						|
+	(AR_SREV_9565(_ah) && \
 | 
						|
 	 ((_ah)->hw_version.macRev == AR_SREV_REVISION_9565_11))
 | 
						|
 #define AR_SREV_9565_11_OR_LATER(_ah) \
 | 
						|
-	(((_ah)->hw_version.macVersion == AR_SREV_VERSION_9565) && \
 | 
						|
+	(AR_SREV_9565(_ah) && \
 | 
						|
 	 ((_ah)->hw_version.macRev >= AR_SREV_REVISION_9565_11))
 | 
						|
 
 | 
						|
 #define AR_SREV_9550(_ah) \
 | 
						|
--- a/.local-symbols
 | 
						|
+++ b/.local-symbols
 | 
						|
@@ -129,6 +129,7 @@ ATH9K_HW=
 | 
						|
 ATH9K_COMMON=
 | 
						|
 ATH9K_DFS_DEBUGFS=
 | 
						|
 ATH9K_BTCOEX_SUPPORT=
 | 
						|
+ATH9K_PCOEM=
 | 
						|
 ATH9K=
 | 
						|
 ATH9K_PCI=
 | 
						|
 ATH9K_AHB=
 |