--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
-@@ -641,6 +641,7 @@ struct ath_softc {
+@@ -679,6 +679,7 @@ struct ath_softc {
struct ieee80211_hw *hw;
struct device *dev;
struct survey_info *cur_survey;
struct survey_info survey[ATH9K_NUM_CHANNELS];
-@@ -709,6 +710,7 @@ struct ath_softc {
- struct dfs_pattern_detector *dfs_detector;
+@@ -751,6 +752,7 @@ struct ath_softc {
+ #endif
};
+int ath9k_config(struct ieee80211_hw *hw, u32 changed);
--- a/drivers/net/wireless/ath/ath9k/debug.c
+++ b/drivers/net/wireless/ath/ath9k/debug.c
-@@ -1580,6 +1580,50 @@ static const struct file_operations fops
+@@ -1765,6 +1765,50 @@ static const struct file_operations fops
.owner = THIS_MODULE
};
+ return -EINVAL;
+
+ sc->chan_bw = chan_bw;
-+ if (!(sc->sc_flags & SC_OP_INVALID))
++ if (!test_bit(SC_OP_INVALID, &sc->sc_flags))
+ ath9k_config(sc->hw, IEEE80211_CONF_CHANGE_CHANNEL);
+
+ return count;
int ath9k_init_debug(struct ath_hw *ah)
{
struct ath_common *common = ath9k_hw_common(ah);
-@@ -1646,5 +1690,8 @@ int ath9k_init_debug(struct ath_hw *ah)
+@@ -1784,6 +1828,8 @@ int ath9k_init_debug(struct ath_hw *ah)
+
debugfs_create_file("eeprom", S_IRUSR, sc->debug.debugfs_phy, sc,
&fops_eeprom);
-
+ debugfs_create_file("chanbw", S_IRUSR | S_IWUSR, sc->debug.debugfs_phy,
+ sc, &fops_chanbw);
-+
- return 0;
- }
+ debugfs_create_file("dma", S_IRUSR, sc->debug.debugfs_phy, sc,
+ &fops_dma);
+ debugfs_create_file("interrupt", S_IRUSR, sc->debug.debugfs_phy, sc,
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
-@@ -1122,7 +1122,7 @@ static void ath9k_disable_ps(struct ath_
+@@ -1075,7 +1075,7 @@ static void ath9k_disable_ps(struct ath_
ath_dbg(common, PS, "PowerSave disabled\n");
}
{
struct ath_softc *sc = hw->priv;
struct ath_hw *ah = sc->sc_ah;
-@@ -1173,9 +1173,11 @@ static int ath9k_config(struct ieee80211
+@@ -1129,9 +1129,11 @@ static int ath9k_config(struct ieee80211
if ((changed & IEEE80211_CONF_CHANGE_CHANNEL) || reset_channel) {
struct ieee80211_channel *curchan = hw->conf.channel;
if (ah->curchan)
old_pos = ah->curchan - &ah->channels[0];
-@@ -1218,7 +1220,23 @@ static int ath9k_config(struct ieee80211
+@@ -1174,7 +1176,23 @@ static int ath9k_config(struct ieee80211
memset(&sc->survey[pos], 0, sizeof(struct survey_info));
}