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
|
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
|
--- a/package/kernel/mt76/Makefile
|
||||||
+++ b/package/kernel/mt76/Makefile
|
+++ b/package/kernel/mt76/Makefile
|
||||||
@@ -24,7 +24,7 @@ include $(INCLUDE_DIR)/package.mk
|
@@ -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),)
|
ifneq ($(BROKEN),)
|
||||||
# Archer C5 v1, C7 v2
|
# 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-c5,tp-link-archer-c5-v1)) # BROKEN: ath10k
|
||||||
$(eval $(call GluonModel,ARCHERC7,archer-c7-v2,tp-link-archer-c7-v2)) # BROKEN: ath10k
|
$(eval $(call GluonModel,ARCHERC7,archer-c7-v2,tp-link-archer-c7-v2)) # BROKEN: ath10k
|
||||||
endif
|
endif
|
||||||
@ -199,11 +199,11 @@ endif
|
|||||||
|
|
||||||
# Ubiquiti (ath10k)
|
# Ubiquiti (ath10k)
|
||||||
ifneq ($(BROKEN),)
|
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 GluonProfileFactorySuffix,UBNTUNIFIACLITE))
|
||||||
$(eval $(call GluonModel,UBNTUNIFIACLITE,ubnt-unifiac-lite,ubiquiti-unifi-ac-lite)) # BROKEN: untested, ath10k
|
$(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 GluonProfileFactorySuffix,UBNTUNIFIACPRO))
|
||||||
$(eval $(call GluonModel,UBNTUNIFIACPRO,ubnt-unifiac-pro,ubiquiti-unifi-ac-pro)) # BROKEN: ath10k
|
$(eval $(call GluonModel,UBNTUNIFIACPRO,ubnt-unifiac-pro,ubiquiti-unifi-ac-pro)) # BROKEN: ath10k
|
||||||
endif
|
endif
|
||||||
@ -318,7 +318,7 @@ $(eval $(call GluonModel,OMEGA,onion-omega,onion-omega))
|
|||||||
## OpenMesh
|
## OpenMesh
|
||||||
|
|
||||||
# MR1750
|
# 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 GluonModel,MR1750,mr1750,openmesh-mr1750))
|
||||||
$(eval $(call GluonModelAlias,MR1750,openmesh-mr1750,openmesh-mr1750v2))
|
$(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))
|
$(eval $(call GluonModelAlias,OM5P,openmesh-om5p,openmesh-om5p-an))
|
||||||
|
|
||||||
# OM5P-AC
|
# 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 GluonModel,OM5PAC,om5pac,openmesh-om5p-ac))
|
||||||
$(eval $(call GluonModelAlias,OM5PAC,openmesh-om5p-ac,openmesh-om5p-acv2))
|
$(eval $(call GluonModelAlias,OM5PAC,openmesh-om5p-ac,openmesh-om5p-acv2))
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user