From 94b8e3d05907b5e9f802d3f71197b1405567dcdd Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sun, 21 Jun 2015 17:52:47 +0000 Subject: [PATCH] ath9k: fix ar956x device detection Signed-off-by: Felix Fietkau Backport of r46090 SVN-Revision: 46091 --- ...9k_hw-fix-device-ID-check-for-AR956x.patch | 20 +++++++++++++++++++ .../510-ath9k_intr_mitigation_tweak.patch | 2 +- .../patches/513-ath9k_add_pci_ids.patch | 2 +- .../patches/542-ath9k_debugfs_diag.patch | 4 ++-- ...544-ath9k-ar933x-usb-hang-workaround.patch | 8 ++++---- 5 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 package/kernel/mac80211/patches/385-ath9k_hw-fix-device-ID-check-for-AR956x.patch diff --git a/package/kernel/mac80211/patches/385-ath9k_hw-fix-device-ID-check-for-AR956x.patch b/package/kernel/mac80211/patches/385-ath9k_hw-fix-device-ID-check-for-AR956x.patch new file mode 100644 index 0000000000..2674efb91f --- /dev/null +++ b/package/kernel/mac80211/patches/385-ath9k_hw-fix-device-ID-check-for-AR956x.patch @@ -0,0 +1,20 @@ +From: Felix Fietkau +Date: Sun, 21 Jun 2015 19:45:59 +0200 +Subject: [PATCH] ath9k_hw: fix device ID check for AR956x + +Because of the missing return, the macVersion value was being +overwritten with an invalid register read + +Signed-off-by: Felix Fietkau +--- + +--- a/drivers/net/wireless/ath/ath9k/hw.c ++++ b/drivers/net/wireless/ath/ath9k/hw.c +@@ -278,6 +278,7 @@ static void ath9k_hw_read_revisions(stru + return; + case AR9300_DEVID_QCA956X: + ah->hw_version.macVersion = AR_SREV_VERSION_9561; ++ return; + } + + val = REG_READ(ah, AR_SREV) & AR_SREV_ID; diff --git a/package/kernel/mac80211/patches/510-ath9k_intr_mitigation_tweak.patch b/package/kernel/mac80211/patches/510-ath9k_intr_mitigation_tweak.patch index c18fd9b834..ed2cfee72c 100644 --- a/package/kernel/mac80211/patches/510-ath9k_intr_mitigation_tweak.patch +++ b/package/kernel/mac80211/patches/510-ath9k_intr_mitigation_tweak.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/ath/ath9k/hw.c +++ b/drivers/net/wireless/ath/ath9k/hw.c -@@ -388,13 +388,8 @@ static void ath9k_hw_init_config(struct +@@ -389,13 +389,8 @@ static void ath9k_hw_init_config(struct ah->config.rx_intr_mitigation = true; diff --git a/package/kernel/mac80211/patches/513-ath9k_add_pci_ids.patch b/package/kernel/mac80211/patches/513-ath9k_add_pci_ids.patch index 2f552100fc..40b5c81b80 100644 --- a/package/kernel/mac80211/patches/513-ath9k_add_pci_ids.patch +++ b/package/kernel/mac80211/patches/513-ath9k_add_pci_ids.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/ath/ath9k/hw.c +++ b/drivers/net/wireless/ath/ath9k/hw.c -@@ -646,6 +646,7 @@ int ath9k_hw_init(struct ath_hw *ah) +@@ -647,6 +647,7 @@ int ath9k_hw_init(struct ath_hw *ah) /* These are all the AR5008/AR9001/AR9002/AR9003 hardware family of chipsets */ switch (ah->hw_version.devid) { diff --git a/package/kernel/mac80211/patches/542-ath9k_debugfs_diag.patch b/package/kernel/mac80211/patches/542-ath9k_debugfs_diag.patch index 2803af49f3..631a692dd4 100644 --- a/package/kernel/mac80211/patches/542-ath9k_debugfs_diag.patch +++ b/package/kernel/mac80211/patches/542-ath9k_debugfs_diag.patch @@ -94,7 +94,7 @@ struct ath_gen_timer *ath_gen_timer_alloc(struct ath_hw *ah, --- a/drivers/net/wireless/ath/ath9k/hw.c +++ b/drivers/net/wireless/ath/ath9k/hw.c -@@ -1803,6 +1803,20 @@ u32 ath9k_hw_get_tsf_offset(struct times +@@ -1804,6 +1804,20 @@ u32 ath9k_hw_get_tsf_offset(struct times } EXPORT_SYMBOL(ath9k_hw_get_tsf_offset); @@ -115,7 +115,7 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan, struct ath9k_hw_cal_data *caldata, bool fastcc) { -@@ -2011,6 +2025,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st +@@ -2012,6 +2026,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st ar9003_hw_disable_phy_restart(ah); ath9k_hw_apply_gpio_override(ah); diff --git a/package/kernel/mac80211/patches/544-ath9k-ar933x-usb-hang-workaround.patch b/package/kernel/mac80211/patches/544-ath9k-ar933x-usb-hang-workaround.patch index 9b00135d2a..240b898c0d 100644 --- a/package/kernel/mac80211/patches/544-ath9k-ar933x-usb-hang-workaround.patch +++ b/package/kernel/mac80211/patches/544-ath9k-ar933x-usb-hang-workaround.patch @@ -20,7 +20,7 @@ /******************/ /* Chip Revisions */ /******************/ -@@ -1381,6 +1394,9 @@ static bool ath9k_hw_set_reset(struct at +@@ -1382,6 +1395,9 @@ static bool ath9k_hw_set_reset(struct at if (AR_SREV_9100(ah)) udelay(50); @@ -30,7 +30,7 @@ return true; } -@@ -1480,6 +1496,9 @@ static bool ath9k_hw_chip_reset(struct a +@@ -1481,6 +1497,9 @@ static bool ath9k_hw_chip_reset(struct a ar9003_hw_internal_regulator_apply(ah); ath9k_hw_init_pll(ah, chan); @@ -40,7 +40,7 @@ return true; } -@@ -1781,8 +1800,14 @@ static int ath9k_hw_do_fastcc(struct ath +@@ -1782,8 +1801,14 @@ static int ath9k_hw_do_fastcc(struct ath if (AR_SREV_9271(ah)) ar9002_hw_load_ani_reg(ah, chan); @@ -55,7 +55,7 @@ return -EINVAL; } -@@ -2036,6 +2061,9 @@ int ath9k_hw_reset(struct ath_hw *ah, st +@@ -2037,6 +2062,9 @@ int ath9k_hw_reset(struct ath_hw *ah, st ath9k_hw_set_radar_params(ah); } -- 2.30.2