|
|
|
@ -1,6 +1,6 @@ |
|
|
|
|
--- a/drivers/net/wireless/ath/ath9k/debug.c
|
|
|
|
|
+++ b/drivers/net/wireless/ath/ath9k/debug.c
|
|
|
|
|
@@ -1930,6 +1930,50 @@ static const struct file_operations fops
|
|
|
|
|
@@ -1676,6 +1676,50 @@ static const struct file_operations fops
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -51,7 +51,7 @@ |
|
|
|
|
int ath9k_init_debug(struct ath_hw *ah)
|
|
|
|
|
{
|
|
|
|
|
struct ath_common *common = ath9k_hw_common(ah);
|
|
|
|
|
@@ -1956,6 +2000,8 @@ int ath9k_init_debug(struct ath_hw *ah)
|
|
|
|
|
@@ -1703,6 +1747,8 @@ int ath9k_init_debug(struct ath_hw *ah)
|
|
|
|
|
debugfs_create_file("gpio_led", S_IWUSR,
|
|
|
|
|
sc->debug.debugfs_phy, sc, &fops_gpio_led);
|
|
|
|
|
#endif
|
|
|
|
@ -75,7 +75,7 @@ |
|
|
|
|
struct ath9k_hw_version {
|
|
|
|
|
u32 magic;
|
|
|
|
|
u16 devid;
|
|
|
|
|
@@ -744,6 +750,8 @@ struct ath_hw {
|
|
|
|
|
@@ -745,6 +751,8 @@ struct ath_hw {
|
|
|
|
|
u32 rfkill_polarity;
|
|
|
|
|
u32 ah_flags;
|
|
|
|
|
|
|
|
|
@ -84,17 +84,17 @@ |
|
|
|
|
bool reset_power_on;
|
|
|
|
|
bool htc_reset_init;
|
|
|
|
|
|
|
|
|
|
@@ -995,6 +1003,7 @@ void ath9k_hw_check_nav(struct ath_hw *a
|
|
|
|
|
@@ -996,6 +1004,7 @@ void ath9k_hw_check_nav(struct ath_hw *a
|
|
|
|
|
bool ath9k_hw_check_alive(struct ath_hw *ah);
|
|
|
|
|
|
|
|
|
|
bool ath9k_hw_setpower(struct ath_hw *ah, enum ath9k_power_mode mode);
|
|
|
|
|
+void ath9k_hw_update_diag(struct ath_hw *ah);
|
|
|
|
|
|
|
|
|
|
#ifdef CPTCFG_ATH9K_DEBUGFS
|
|
|
|
|
void ath9k_debug_sync_cause(struct ath_common *common, u32 sync_cause);
|
|
|
|
|
/* Generic hw timer primitives */
|
|
|
|
|
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
|
|
|
|
|
@@ -1854,6 +1854,20 @@ fail:
|
|
|
|
|
@@ -1822,6 +1822,20 @@ fail:
|
|
|
|
|
return -EINVAL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -115,7 +115,7 @@ |
|
|
|
|
int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
|
|
|
|
|
struct ath9k_hw_cal_data *caldata, bool fastcc)
|
|
|
|
|
{
|
|
|
|
|
@@ -2056,6 +2070,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st
|
|
|
|
|
@@ -2024,6 +2038,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ath9k_hw_apply_gpio_override(ah);
|
|
|
|
@ -125,8 +125,8 @@ |
|
|
|
|
REG_SET_BIT(ah, AR_BTCOEX_WL_LNADIV, AR_BTCOEX_WL_LNADIV_FORCE_ON);
|
|
|
|
|
--- a/drivers/net/wireless/ath/ath9k/main.c
|
|
|
|
|
+++ b/drivers/net/wireless/ath/ath9k/main.c
|
|
|
|
|
@@ -574,6 +574,11 @@ irqreturn_t ath_isr(int irq, void *dev)
|
|
|
|
|
ath9k_hw_getisr(ah, &status); /* NB: clears ISR too */
|
|
|
|
|
@@ -576,6 +576,11 @@ irqreturn_t ath_isr(int irq, void *dev)
|
|
|
|
|
ath9k_debug_sync_cause(sc, sync_cause);
|
|
|
|
|
status &= ah->imask; /* discard unasked-for bits */
|
|
|
|
|
|
|
|
|
|
+ if (test_bit(ATH_DIAG_TRIGGER_ERROR, &ah->diag)) {
|
|
|
|
|