ath9k: fix ar956x device detection
Signed-off-by: Felix Fietkau <nbd@openwrt.org> Backport of r46090 git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@46091 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
936077d190
commit
0e0730c316
|
@ -0,0 +1,20 @@
|
||||||
|
From: Felix Fietkau <nbd@openwrt.org>
|
||||||
|
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 <nbd@openwrt.org>
|
||||||
|
---
|
||||||
|
|
||||||
|
--- 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;
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/drivers/net/wireless/ath/ath9k/hw.c
|
--- a/drivers/net/wireless/ath/ath9k/hw.c
|
||||||
+++ b/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;
|
ah->config.rx_intr_mitigation = true;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/drivers/net/wireless/ath/ath9k/hw.c
|
--- a/drivers/net/wireless/ath/ath9k/hw.c
|
||||||
+++ b/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 */
|
/* These are all the AR5008/AR9001/AR9002/AR9003 hardware family of chipsets */
|
||||||
switch (ah->hw_version.devid) {
|
switch (ah->hw_version.devid) {
|
||||||
|
|
|
@ -94,7 +94,7 @@
|
||||||
struct ath_gen_timer *ath_gen_timer_alloc(struct ath_hw *ah,
|
struct ath_gen_timer *ath_gen_timer_alloc(struct ath_hw *ah,
|
||||||
--- a/drivers/net/wireless/ath/ath9k/hw.c
|
--- a/drivers/net/wireless/ath/ath9k/hw.c
|
||||||
+++ b/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);
|
EXPORT_SYMBOL(ath9k_hw_get_tsf_offset);
|
||||||
|
|
||||||
|
@ -115,7 +115,7 @@
|
||||||
int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
|
int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
|
||||||
struct ath9k_hw_cal_data *caldata, bool fastcc)
|
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);
|
ar9003_hw_disable_phy_restart(ah);
|
||||||
|
|
||||||
ath9k_hw_apply_gpio_override(ah);
|
ath9k_hw_apply_gpio_override(ah);
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
/******************/
|
/******************/
|
||||||
/* Chip Revisions */
|
/* 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))
|
if (AR_SREV_9100(ah))
|
||||||
udelay(50);
|
udelay(50);
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
return true;
|
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);
|
ar9003_hw_internal_regulator_apply(ah);
|
||||||
ath9k_hw_init_pll(ah, chan);
|
ath9k_hw_init_pll(ah, chan);
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
return true;
|
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))
|
if (AR_SREV_9271(ah))
|
||||||
ar9002_hw_load_ani_reg(ah, chan);
|
ar9002_hw_load_ani_reg(ah, chan);
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@
|
||||||
return -EINVAL;
|
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);
|
ath9k_hw_set_radar_params(ah);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue