From b4d93a52cfdc75fde4e56979f6749977197effca Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sun, 4 May 2014 23:26:20 +0000 Subject: [PATCH] ar71xx/ath9k: fix reading the WMAC revision on AR953x (fixes #15581) Signed-off-by: Felix Fietkau SVN-Revision: 40695 --- .../567-ath9k_ar953x_read_mac_rev.patch | 11 +++++++++ ...PS-ath79-add-support-for-QCA953x-SoC.patch | 24 +++++++++++++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 package/kernel/mac80211/patches/567-ath9k_ar953x_read_mac_rev.patch diff --git a/package/kernel/mac80211/patches/567-ath9k_ar953x_read_mac_rev.patch b/package/kernel/mac80211/patches/567-ath9k_ar953x_read_mac_rev.patch new file mode 100644 index 0000000000..31778a4a21 --- /dev/null +++ b/package/kernel/mac80211/patches/567-ath9k_ar953x_read_mac_rev.patch @@ -0,0 +1,11 @@ +--- a/drivers/net/wireless/ath/ath9k/hw.c ++++ b/drivers/net/wireless/ath/ath9k/hw.c +@@ -260,6 +260,8 @@ static void ath9k_hw_read_revisions(stru + return; + case AR9300_DEVID_AR953X: + ah->hw_version.macVersion = AR_SREV_VERSION_9531; ++ if (ah->get_mac_revision) ++ ah->hw_version.macRev = ah->get_mac_revision(); + return; + } + diff --git a/target/linux/ar71xx/patches-3.10/707-MIPS-ath79-add-support-for-QCA953x-SoC.patch b/target/linux/ar71xx/patches-3.10/707-MIPS-ath79-add-support-for-QCA953x-SoC.patch index 05ef22bdb5..00458d2843 100644 --- a/target/linux/ar71xx/patches-3.10/707-MIPS-ath79-add-support-for-QCA953x-SoC.patch +++ b/target/linux/ar71xx/patches-3.10/707-MIPS-ath79-add-support-for-QCA953x-SoC.patch @@ -168,7 +168,25 @@ meaning of the bits CPUCLK_FROM_CPUPLL and DDRCLK_FROM_DDRPLL is reversed. platform_device_register(&ath79_uart_device); --- a/arch/mips/ath79/dev-wmac.c +++ b/arch/mips/ath79/dev-wmac.c -@@ -149,6 +149,24 @@ static void ar934x_wmac_setup(void) +@@ -101,7 +101,7 @@ static int ar933x_wmac_reset(void) + return -ETIMEDOUT; + } + +-static int ar933x_r1_get_wmac_revision(void) ++static int ar93xx_get_soc_revision(void) + { + return ath79_soc_rev; + } +@@ -126,7 +126,7 @@ static void __init ar933x_wmac_setup(voi + ath79_wmac_data.is_clk_25mhz = true; + + if (ath79_soc_rev == 1) +- ath79_wmac_data.get_mac_revision = ar933x_r1_get_wmac_revision; ++ ath79_wmac_data.get_mac_revision = ar93xx_get_soc_revision; + + ath79_wmac_data.external_reset = ar933x_wmac_reset; + } +@@ -149,6 +149,26 @@ static void ar934x_wmac_setup(void) ath79_wmac_data.is_clk_25mhz = true; } @@ -188,12 +206,14 @@ meaning of the bits CPUCLK_FROM_CPUPLL and DDRCLK_FROM_DDRPLL is reversed. + ath79_wmac_data.is_clk_25mhz = false; + else + ath79_wmac_data.is_clk_25mhz = true; ++ ++ ath79_wmac_data.get_mac_revision = ar93xx_get_soc_revision; +} + static void qca955x_wmac_setup(void) { u32 t; -@@ -366,6 +384,8 @@ void __init ath79_register_wmac(u8 *cal_ +@@ -366,6 +386,8 @@ void __init ath79_register_wmac(u8 *cal_ ar933x_wmac_setup(); else if (soc_is_ar934x()) ar934x_wmac_setup();