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
64fdc0d7ba
commit
91881f45dc
@ -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
|
||||
|
@ -158,7 +158,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
|
||||
@ -195,11 +195,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
|
||||
@ -314,7 +314,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))
|
||||
|
||||
@ -343,7 +343,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