X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=package%2Fkernel%2Fmac80211%2Fpatches%2F542-ath9k_debugfs_diag.patch;h=f4bb0f2d901588f90113c6898c9cdbc05f788920;hb=df93d53a4b7a5ce284dc0c6509057979f233cb92;hp=ba64587e3fd224b0a0c1481b2308b63d302abe2e;hpb=03fcc9bf43b27157fba896cb7d48a7e4ca4d02ee;p=openwrt%2Fstaging%2Fmkresin.git diff --git a/package/kernel/mac80211/patches/542-ath9k_debugfs_diag.patch b/package/kernel/mac80211/patches/542-ath9k_debugfs_diag.patch index ba64587e3f..f4bb0f2d90 100644 --- a/package/kernel/mac80211/patches/542-ath9k_debugfs_diag.patch +++ b/package/kernel/mac80211/patches/542-ath9k_debugfs_diag.patch @@ -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 +@@ -1467,6 +1467,50 @@ static const struct file_operations fops #endif @@ -51,18 +51,18 @@ 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) +@@ -1494,6 +1538,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 + debugfs_create_file("diag", S_IRUSR | S_IWUSR, sc->debug.debugfs_phy, + sc, &fops_diag); - debugfs_create_file("dma", S_IRUSR, sc->debug.debugfs_phy, sc, - &fops_dma); - debugfs_create_file("interrupt", S_IRUSR, sc->debug.debugfs_phy, sc, + debugfs_create_devm_seqfile(sc->dev, "dma", sc->debug.debugfs_phy, + read_file_dma); + debugfs_create_devm_seqfile(sc->dev, "interrupt", sc->debug.debugfs_phy, --- a/drivers/net/wireless/ath/ath9k/hw.h +++ b/drivers/net/wireless/ath/ath9k/hw.h -@@ -480,6 +480,12 @@ enum { +@@ -520,6 +520,12 @@ enum { ATH9K_RESET_COLD, }; @@ -75,7 +75,7 @@ struct ath9k_hw_version { u32 magic; u16 devid; -@@ -765,6 +771,8 @@ struct ath_hw { +@@ -805,6 +811,8 @@ struct ath_hw { u32 rfkill_polarity; u32 ah_flags; @@ -84,19 +84,19 @@ bool reset_power_on; bool htc_reset_init; -@@ -1016,6 +1024,7 @@ void ath9k_hw_check_nav(struct ath_hw *a +@@ -1067,6 +1075,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 -@@ -1863,6 +1863,20 @@ fail: - return -EINVAL; +@@ -1821,6 +1821,20 @@ u32 ath9k_hw_get_tsf_offset(struct times } + EXPORT_SYMBOL(ath9k_hw_get_tsf_offset); +void ath9k_hw_update_diag(struct ath_hw *ah) +{ @@ -115,8 +115,8 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan, struct ath9k_hw_cal_data *caldata, bool fastcc) { -@@ -2065,6 +2079,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st - } +@@ -2029,6 +2043,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st + ar9003_hw_disable_phy_restart(ah); ath9k_hw_apply_gpio_override(ah); + ath9k_hw_update_diag(ah); @@ -125,9 +125,9 @@ 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 -@@ -571,6 +571,11 @@ irqreturn_t ath_isr(int irq, void *dev) - ath9k_hw_getisr(ah, &status); /* NB: clears ISR too */ - status &= ah->imask; /* discard unasked-for bits */ +@@ -533,6 +533,11 @@ irqreturn_t ath_isr(int irq, void *dev) + if (test_bit(ATH_OP_HW_RESET, &common->op_flags)) + return IRQ_HANDLED; + if (test_bit(ATH_DIAG_TRIGGER_ERROR, &ah->diag)) { + status |= ATH9K_INT_FATAL;