diff options
Diffstat (limited to 'package/mac80211/patches')
| -rw-r--r-- | package/mac80211/patches/513-ath9k_channelbw_debugfs.patch | 74 | ||||
| -rw-r--r-- | package/mac80211/patches/531-ath9k_cur_txpower.patch | 4 | ||||
| -rw-r--r-- | package/mac80211/patches/540-ath9k_limit_qlen.patch | 2 | 
3 files changed, 74 insertions, 6 deletions
diff --git a/package/mac80211/patches/513-ath9k_channelbw_debugfs.patch b/package/mac80211/patches/513-ath9k_channelbw_debugfs.patch index e2cf507b6..ded102e14 100644 --- a/package/mac80211/patches/513-ath9k_channelbw_debugfs.patch +++ b/package/mac80211/patches/513-ath9k_channelbw_debugfs.patch @@ -8,20 +8,88 @@   	int chan_idx;   	int chan_is_ht;   	struct survey_info *cur_survey; +@@ -654,6 +655,7 @@ struct ath_softc { + 	u8 ant_tx, ant_rx; + }; +  ++int ath9k_config(struct ieee80211_hw *hw, u32 changed); + void ath9k_tasklet(unsigned long data); + int ath_cabq_update(struct ath_softc *); +   --- a/drivers/net/wireless/ath/ath9k/debug.c  +++ b/drivers/net/wireless/ath/ath9k/debug.c -@@ -1724,6 +1724,9 @@ int ath9k_init_debug(struct ath_hw *ah) +@@ -1663,6 +1663,50 @@ static const struct file_operations fops + 	.owner = THIS_MODULE + }; +  ++ ++static ssize_t read_file_chan_bw(struct file *file, char __user *user_buf, ++			     size_t count, loff_t *ppos) ++{ ++	struct ath_softc *sc = file->private_data; ++	char buf[32]; ++	unsigned int len; ++ ++	len = sprintf(buf, "0x%08x\n", sc->chan_bw); ++	return simple_read_from_buffer(user_buf, count, ppos, buf, len); ++} ++ ++static ssize_t write_file_chan_bw(struct file *file, const char __user *user_buf, ++			     size_t count, loff_t *ppos) ++{ ++	struct ath_softc *sc = file->private_data; ++	unsigned long chan_bw; ++	char buf[32]; ++	ssize_t len; ++ ++	len = min(count, sizeof(buf) - 1); ++	if (copy_from_user(buf, user_buf, len)) ++		return -EFAULT; ++ ++	buf[len] = '\0'; ++	if (strict_strtoul(buf, 0, &chan_bw)) ++		return -EINVAL; ++ ++	sc->chan_bw = chan_bw; ++	if (!sc->ps_idle) ++		ath9k_config(sc->hw, IEEE80211_CONF_CHANGE_CHANNEL); ++ ++	return count; ++} ++ ++static const struct file_operations fops_chanbw = { ++	.read = read_file_chan_bw, ++	.write = write_file_chan_bw, ++	.open = ath9k_debugfs_open, ++	.owner = THIS_MODULE, ++	.llseek = default_llseek, ++}; ++ ++ + int ath9k_init_debug(struct ath_hw *ah) + { + 	struct ath_common *common = ath9k_hw_common(ah); +@@ -1724,6 +1768,9 @@ int ath9k_init_debug(struct ath_hw *ah)   	debugfs_create_file("eeprom", S_IRUSR, sc->debug.debugfs_phy, sc,   			    &fops_eeprom); -+	debugfs_create_u32("chanbw", S_IRUSR | S_IWUSR, sc->debug.debugfs_phy, -+			   &sc->chan_bw); ++	debugfs_create_file("chanbw", S_IRUSR | S_IWUSR, sc->debug.debugfs_phy, ++			    sc, &fops_chanbw);  +   	sc->debug.regidx = 0;   	memset(&sc->debug.bb_mac_samp, 0, sizeof(sc->debug.bb_mac_samp));   	sc->debug.sampidx = 0;  --- a/drivers/net/wireless/ath/ath9k/main.c  +++ b/drivers/net/wireless/ath/ath9k/main.c +@@ -1554,7 +1554,7 @@ static void ath9k_disable_ps(struct ath_ +  + } +  +-static int ath9k_config(struct ieee80211_hw *hw, u32 changed) ++int ath9k_config(struct ieee80211_hw *hw, u32 changed) + { + 	struct ath_softc *sc = hw->priv; + 	struct ath_hw *ah = sc->sc_ah;  @@ -1606,9 +1606,10 @@ static int ath9k_config(struct ieee80211   	if (changed & IEEE80211_CONF_CHANGE_CHANNEL) { diff --git a/package/mac80211/patches/531-ath9k_cur_txpower.patch b/package/mac80211/patches/531-ath9k_cur_txpower.patch index a8eb8a6cf..760f4d754 100644 --- a/package/mac80211/patches/531-ath9k_cur_txpower.patch +++ b/package/mac80211/patches/531-ath9k_cur_txpower.patch @@ -1,6 +1,6 @@  --- a/drivers/net/wireless/ath/ath9k/main.c  +++ b/drivers/net/wireless/ath/ath9k/main.c -@@ -1684,6 +1684,8 @@ static int ath9k_config(struct ieee80211 +@@ -1684,6 +1684,8 @@ int ath9k_config(struct ieee80211_hw *hw   			return -EINVAL;   		} @@ -9,7 +9,7 @@   		/*   		 * The most recent snapshot of channel->noisefloor for the old   		 * channel is only available after the hardware reset. Copy it to -@@ -1699,6 +1701,7 @@ static int ath9k_config(struct ieee80211 +@@ -1699,6 +1701,7 @@ int ath9k_config(struct ieee80211_hw *hw   		sc->config.txpowlimit = 2 * conf->power_level;   		ath9k_cmn_update_txpow(ah, sc->curtxpow,   				       sc->config.txpowlimit, &sc->curtxpow); diff --git a/package/mac80211/patches/540-ath9k_limit_qlen.patch b/package/mac80211/patches/540-ath9k_limit_qlen.patch index 0831392ea..10dde1bf9 100644 --- a/package/mac80211/patches/540-ath9k_limit_qlen.patch +++ b/package/mac80211/patches/540-ath9k_limit_qlen.patch @@ -20,7 +20,7 @@   	spinlock_t txbuflock;  --- a/drivers/net/wireless/ath/ath9k/debug.c  +++ b/drivers/net/wireless/ath/ath9k/debug.c -@@ -1685,6 +1685,10 @@ int ath9k_init_debug(struct ath_hw *ah) +@@ -1729,6 +1729,10 @@ int ath9k_init_debug(struct ath_hw *ah)   			    sc, &fops_wiphy);   	debugfs_create_file("xmit", S_IRUSR, sc->debug.debugfs_phy, sc,   			    &fops_xmit);  | 
