mac80211: update to LEDE 6c2651566cce8f5b3a3d3b976439dee2bac5e07e
Also switch to kmod-ath10k-ct, so we can drop our AP+IBSS patch.
This commit is contained in:
		
							parent
							
								
									d82b207b16
								
							
						
					
					
						commit
						efb955ceea
					
				@ -0,0 +1,85 @@
 | 
			
		||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
 | 
			
		||||
Date: Tue, 19 Jul 2016 17:48:53 +0200
 | 
			
		||||
Subject: ar71xx: define wmac reset function for QCA955x
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
 | 
			
		||||
Backport of LEDE a176168a85477caa44eef7e979567d1d52868fde
 | 
			
		||||
 | 
			
		||||
diff --git a/target/linux/ar71xx/patches-3.18/640-MIPS-ath79-add-QCA955x-wmac-reset.patch b/target/linux/ar71xx/patches-3.18/640-MIPS-ath79-add-QCA955x-wmac-reset.patch
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000..4ac5acd
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/target/linux/ar71xx/patches-3.18/640-MIPS-ath79-add-QCA955x-wmac-reset.patch
 | 
			
		||||
@@ -0,0 +1,71 @@
 | 
			
		||||
+--- a/arch/mips/ath79/common.h
 | 
			
		||||
++++ b/arch/mips/ath79/common.h
 | 
			
		||||
+@@ -19,6 +19,8 @@
 | 
			
		||||
+ #define ATH79_MEM_SIZE_MIN	(2 * 1024 * 1024)
 | 
			
		||||
+ #define ATH79_MEM_SIZE_MAX	(128 * 1024 * 1024)
 | 
			
		||||
+ 
 | 
			
		||||
++extern void __iomem *ath79_ddr_base;
 | 
			
		||||
++
 | 
			
		||||
+ void ath79_clocks_init(void);
 | 
			
		||||
+ unsigned long ath79_get_sys_clk_rate(const char *id);
 | 
			
		||||
+ 
 | 
			
		||||
+--- a/arch/mips/ath79/dev-wmac.c
 | 
			
		||||
++++ b/arch/mips/ath79/dev-wmac.c
 | 
			
		||||
+@@ -149,6 +149,27 @@ static void ar934x_wmac_setup(void)
 | 
			
		||||
+ 		ath79_wmac_data.is_clk_25mhz = true;
 | 
			
		||||
+ }
 | 
			
		||||
+ 
 | 
			
		||||
++static int ar955x_wmac_reset(void)
 | 
			
		||||
++{
 | 
			
		||||
++	int i;
 | 
			
		||||
++
 | 
			
		||||
++	/* Try to wait for WMAC DDR activity to stop */
 | 
			
		||||
++	for (i = 0; i < 10; i++) {
 | 
			
		||||
++		if (!(__raw_readl(ath79_ddr_base + QCA955X_DDR_CTL_CONFIG) &
 | 
			
		||||
++		      QCA955X_DDR_CTL_CONFIG_ACT_WMAC))
 | 
			
		||||
++			break;
 | 
			
		||||
++
 | 
			
		||||
++		udelay(10);
 | 
			
		||||
++	}
 | 
			
		||||
++
 | 
			
		||||
++	ath79_device_reset_set(QCA955X_RESET_RTC);
 | 
			
		||||
++	udelay(10);
 | 
			
		||||
++	ath79_device_reset_clear(QCA955X_RESET_RTC);
 | 
			
		||||
++	udelay(10);
 | 
			
		||||
++
 | 
			
		||||
++	return 0;
 | 
			
		||||
++}
 | 
			
		||||
++
 | 
			
		||||
+ static void qca955x_wmac_setup(void)
 | 
			
		||||
+ {
 | 
			
		||||
+ 	u32 t;
 | 
			
		||||
+@@ -165,6 +186,8 @@ static void qca955x_wmac_setup(void)
 | 
			
		||||
+ 		ath79_wmac_data.is_clk_25mhz = false;
 | 
			
		||||
+ 	else
 | 
			
		||||
+ 		ath79_wmac_data.is_clk_25mhz = true;
 | 
			
		||||
++
 | 
			
		||||
++	ath79_wmac_data.external_reset = ar955x_wmac_reset;
 | 
			
		||||
+ }
 | 
			
		||||
+ 
 | 
			
		||||
+ static bool __init
 | 
			
		||||
+--- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
 | 
			
		||||
++++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
 | 
			
		||||
+@@ -32,7 +32,7 @@
 | 
			
		||||
+ #define AR71XX_SPI_SIZE		0x01000000
 | 
			
		||||
+ 
 | 
			
		||||
+ #define AR71XX_DDR_CTRL_BASE	(AR71XX_APB_BASE + 0x00000000)
 | 
			
		||||
+-#define AR71XX_DDR_CTRL_SIZE	0x100
 | 
			
		||||
++#define AR71XX_DDR_CTRL_SIZE	0x200
 | 
			
		||||
+ #define AR71XX_UART_BASE	(AR71XX_APB_BASE + 0x00020000)
 | 
			
		||||
+ #define AR71XX_UART_SIZE	0x100
 | 
			
		||||
+ #define AR71XX_USB_CTRL_BASE	(AR71XX_APB_BASE + 0x00030000)
 | 
			
		||||
+@@ -173,6 +173,9 @@
 | 
			
		||||
+ #define AR934X_DDR_REG_FLUSH_PCIE	0xa8
 | 
			
		||||
+ #define AR934X_DDR_REG_FLUSH_WMAC	0xac
 | 
			
		||||
+ 
 | 
			
		||||
++#define QCA955X_DDR_CTL_CONFIG		0x108
 | 
			
		||||
++#define QCA955X_DDR_CTL_CONFIG_ACT_WMAC	BIT(23)
 | 
			
		||||
++
 | 
			
		||||
+ /*
 | 
			
		||||
+  * PLL block
 | 
			
		||||
+  */
 | 
			
		||||
@ -1,42 +0,0 @@
 | 
			
		||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
 | 
			
		||||
Date: Wed, 20 May 2015 23:10:36 +0200
 | 
			
		||||
Subject: mac80211: ath10k: allow simultaneous AP+IBSS
 | 
			
		||||
 | 
			
		||||
diff --git a/package/kernel/mac80211/patches/950-ath10k_AP_IBSS.patch b/package/kernel/mac80211/patches/950-ath10k_AP_IBSS.patch
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000..956c3fd
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/package/kernel/mac80211/patches/950-ath10k_AP_IBSS.patch
 | 
			
		||||
@@ -0,0 +1,32 @@
 | 
			
		||||
+--- a/drivers/net/wireless/ath/ath10k/mac.c
 | 
			
		||||
++++ b/drivers/net/wireless/ath/ath10k/mac.c
 | 
			
		||||
+@@ -7521,6 +7521,10 @@ static const struct ieee80211_iface_limi
 | 
			
		||||
+ 			| BIT(NL80211_IFTYPE_MESH_POINT)
 | 
			
		||||
+ #endif
 | 
			
		||||
+ 	},
 | 
			
		||||
++	{
 | 
			
		||||
++	.max    = 1,
 | 
			
		||||
++	.types  = BIT(NL80211_IFTYPE_ADHOC)
 | 
			
		||||
++	},
 | 
			
		||||
+ };
 | 
			
		||||
+ 
 | 
			
		||||
+ static const struct ieee80211_iface_limit ath10k_10x_if_limits[] = {
 | 
			
		||||
+@@ -7535,6 +7539,10 @@ static const struct ieee80211_iface_limi
 | 
			
		||||
+ 		.max	= 1,
 | 
			
		||||
+ 		.types	= BIT(NL80211_IFTYPE_STATION)
 | 
			
		||||
+ 	},
 | 
			
		||||
++	{
 | 
			
		||||
++	.max    = 1,
 | 
			
		||||
++	.types  = BIT(NL80211_IFTYPE_ADHOC)
 | 
			
		||||
++	},
 | 
			
		||||
+ };
 | 
			
		||||
+ 
 | 
			
		||||
+ static const struct ieee80211_iface_combination ath10k_if_comb[] = {
 | 
			
		||||
+@@ -7920,6 +7928,7 @@ int ath10k_mac_register(struct ath10k *a
 | 
			
		||||
+ 		ar->hw->wiphy->iface_combinations = ath10k_10x_if_comb;
 | 
			
		||||
+ 		ar->hw->wiphy->n_iface_combinations =
 | 
			
		||||
+ 			ARRAY_SIZE(ath10k_10x_if_comb);
 | 
			
		||||
++		ar->hw->wiphy->interface_modes |= BIT(NL80211_IFTYPE_ADHOC);
 | 
			
		||||
+ 		break;
 | 
			
		||||
+ 	case ATH10K_FW_WMI_OP_VERSION_10_4:
 | 
			
		||||
+ 		ar->hw->wiphy->iface_combinations = ath10k_10_4_if_comb;
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -20,7 +20,7 @@ index 0000000..ea389cd
 | 
			
		||||
+ 
 | 
			
		||||
+ /*
 | 
			
		||||
diff --git a/package/kernel/mt76/Makefile b/package/kernel/mt76/Makefile
 | 
			
		||||
index 0f832e4..801188f 100644
 | 
			
		||||
index 90430b9..47f41da 100644
 | 
			
		||||
--- a/package/kernel/mt76/Makefile
 | 
			
		||||
+++ b/package/kernel/mt76/Makefile
 | 
			
		||||
@@ -24,7 +24,7 @@ include $(INCLUDE_DIR)/package.mk
 | 
			
		||||
 | 
			
		||||
@ -162,7 +162,7 @@ $(eval $(call GluonModel,TLWR2543,tl-wr2543-v1,tp-link-tl-wr2543n-nd-v1))
 | 
			
		||||
 | 
			
		||||
ifneq ($(BROKEN),)
 | 
			
		||||
# Archer C5 v1, C7 v2
 | 
			
		||||
$(eval $(call GluonProfile,ARCHERC7,kmod-ath10k ath10k-firmware-qca988x-ct))
 | 
			
		||||
$(eval $(call GluonProfile,ARCHERC7,kmod-ath10k-ct ath10k-firmware-qca988x-ct))
 | 
			
		||||
$(eval $(call GluonModel,ARCHERC7,archer-c5,tp-link-archer-c5-v1)) # BROKEN: ath10k
 | 
			
		||||
$(eval $(call GluonModel,ARCHERC7,archer-c7-v2,tp-link-archer-c7-v2)) # BROKEN: ath10k
 | 
			
		||||
endif
 | 
			
		||||
@ -199,11 +199,11 @@ endif
 | 
			
		||||
 | 
			
		||||
# Ubiquiti (ath10k)
 | 
			
		||||
ifneq ($(BROKEN),)
 | 
			
		||||
$(eval $(call GluonProfile,UBNTUNIFIACLITE,kmod-ath10k ath10k-firmware-qca988x-ct))
 | 
			
		||||
$(eval $(call GluonProfile,UBNTUNIFIACLITE,kmod-ath10k-ct ath10k-firmware-qca988x-ct))
 | 
			
		||||
$(eval $(call GluonProfileFactorySuffix,UBNTUNIFIACLITE))
 | 
			
		||||
$(eval $(call GluonModel,UBNTUNIFIACLITE,ubnt-unifiac-lite,ubiquiti-unifi-ac-lite)) # BROKEN: untested, ath10k
 | 
			
		||||
 | 
			
		||||
$(eval $(call GluonProfile,UBNTUNIFIACPRO,kmod-ath10k ath10k-firmware-qca988x-ct))
 | 
			
		||||
$(eval $(call GluonProfile,UBNTUNIFIACPRO,kmod-ath10k-ct ath10k-firmware-qca988x-ct))
 | 
			
		||||
$(eval $(call GluonProfileFactorySuffix,UBNTUNIFIACPRO))
 | 
			
		||||
$(eval $(call GluonModel,UBNTUNIFIACPRO,ubnt-unifiac-pro,ubiquiti-unifi-ac-pro)) # BROKEN: ath10k
 | 
			
		||||
endif
 | 
			
		||||
@ -318,7 +318,7 @@ $(eval $(call GluonModel,OMEGA,onion-omega,onion-omega))
 | 
			
		||||
## OpenMesh
 | 
			
		||||
 | 
			
		||||
# MR1750
 | 
			
		||||
$(eval $(call GluonProfile,MR1750,om-watchdog uboot-envtools kmod-ath10k ath10k-firmware-qca988x-ct))
 | 
			
		||||
$(eval $(call GluonProfile,MR1750,om-watchdog uboot-envtools kmod-ath10k-ct ath10k-firmware-qca988x-ct))
 | 
			
		||||
$(eval $(call GluonModel,MR1750,mr1750,openmesh-mr1750))
 | 
			
		||||
$(eval $(call GluonModelAlias,MR1750,openmesh-mr1750,openmesh-mr1750v2))
 | 
			
		||||
 | 
			
		||||
@ -347,7 +347,7 @@ $(eval $(call GluonModel,OM5P,om5p,openmesh-om5p))
 | 
			
		||||
$(eval $(call GluonModelAlias,OM5P,openmesh-om5p,openmesh-om5p-an))
 | 
			
		||||
 | 
			
		||||
# OM5P-AC
 | 
			
		||||
$(eval $(call GluonProfile,OM5PAC,om-watchdog uboot-envtools kmod-ath10k ath10k-firmware-qca988x-ct))
 | 
			
		||||
$(eval $(call GluonProfile,OM5PAC,om-watchdog uboot-envtools kmod-ath10k-ct ath10k-firmware-qca988x-ct))
 | 
			
		||||
$(eval $(call GluonModel,OM5PAC,om5pac,openmesh-om5p-ac))
 | 
			
		||||
$(eval $(call GluonModelAlias,OM5PAC,openmesh-om5p-ac,openmesh-om5p-acv2))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user