diff options
Diffstat (limited to 'package/mac80211/patches/540-ath9k_remove_virtual_debugfs.patch')
-rw-r--r-- | package/mac80211/patches/540-ath9k_remove_virtual_debugfs.patch | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/package/mac80211/patches/540-ath9k_remove_virtual_debugfs.patch b/package/mac80211/patches/540-ath9k_remove_virtual_debugfs.patch new file mode 100644 index 0000000000..ed835417e5 --- /dev/null +++ b/package/mac80211/patches/540-ath9k_remove_virtual_debugfs.patch @@ -0,0 +1,172 @@ +--- a/drivers/net/wireless/ath/ath9k/debug.c ++++ b/drivers/net/wireless/ath/ath9k/debug.c +@@ -381,41 +381,21 @@ static const struct file_operations fops + .llseek = default_llseek, + }; + +-static const char * ath_wiphy_state_str(enum ath_wiphy_state state) +-{ +- switch (state) { +- case ATH_WIPHY_INACTIVE: +- return "INACTIVE"; +- case ATH_WIPHY_ACTIVE: +- return "ACTIVE"; +- case ATH_WIPHY_PAUSING: +- return "PAUSING"; +- case ATH_WIPHY_PAUSED: +- return "PAUSED"; +- case ATH_WIPHY_SCAN: +- return "SCAN"; +- } +- return "?"; +-} +- + static ssize_t read_file_wiphy(struct file *file, char __user *user_buf, + size_t count, loff_t *ppos) + { + struct ath_softc *sc = file->private_data; +- struct ath_wiphy *aphy = sc->pri_wiphy; +- struct ieee80211_channel *chan = aphy->hw->conf.channel; ++ struct ieee80211_channel *chan = sc->hw->conf.channel; + char buf[512]; + unsigned int len = 0; +- int i; + u8 addr[ETH_ALEN]; + u32 tmp; + + len += snprintf(buf + len, sizeof(buf) - len, +- "primary: %s (%s chan=%d ht=%d)\n", +- wiphy_name(sc->pri_wiphy->hw->wiphy), +- ath_wiphy_state_str(sc->pri_wiphy->state), ++ "%s (chan=%d ht=%d)\n", ++ wiphy_name(sc->hw->wiphy), + ieee80211_frequency_to_channel(chan->center_freq), +- aphy->chan_is_ht); ++ conf_is_ht(&sc->hw->conf)); + + put_unaligned_le32(REG_READ_D(sc->sc_ah, AR_STA_ID0), addr); + put_unaligned_le16(REG_READ_D(sc->sc_ah, AR_STA_ID1) & 0xffff, addr + 4); +@@ -457,123 +437,14 @@ static ssize_t read_file_wiphy(struct fi + else + len += snprintf(buf + len, sizeof(buf) - len, "\n"); + +- /* Put variable-length stuff down here, and check for overflows. */ +- for (i = 0; i < sc->num_sec_wiphy; i++) { +- struct ath_wiphy *aphy_tmp = sc->sec_wiphy[i]; +- if (aphy_tmp == NULL) +- continue; +- chan = aphy_tmp->hw->conf.channel; +- len += snprintf(buf + len, sizeof(buf) - len, +- "secondary: %s (%s chan=%d ht=%d)\n", +- wiphy_name(aphy_tmp->hw->wiphy), +- ath_wiphy_state_str(aphy_tmp->state), +- ieee80211_frequency_to_channel(chan->center_freq), +- aphy_tmp->chan_is_ht); +- } + if (len > sizeof(buf)) + len = sizeof(buf); + + return simple_read_from_buffer(user_buf, count, ppos, buf, len); + } + +-static struct ath_wiphy * get_wiphy(struct ath_softc *sc, const char *name) +-{ +- int i; +- if (strcmp(name, wiphy_name(sc->pri_wiphy->hw->wiphy)) == 0) +- return sc->pri_wiphy; +- for (i = 0; i < sc->num_sec_wiphy; i++) { +- struct ath_wiphy *aphy = sc->sec_wiphy[i]; +- if (aphy && strcmp(name, wiphy_name(aphy->hw->wiphy)) == 0) +- return aphy; +- } +- return NULL; +-} +- +-static int del_wiphy(struct ath_softc *sc, const char *name) +-{ +- struct ath_wiphy *aphy = get_wiphy(sc, name); +- if (!aphy) +- return -ENOENT; +- return ath9k_wiphy_del(aphy); +-} +- +-static int pause_wiphy(struct ath_softc *sc, const char *name) +-{ +- struct ath_wiphy *aphy = get_wiphy(sc, name); +- if (!aphy) +- return -ENOENT; +- return ath9k_wiphy_pause(aphy); +-} +- +-static int unpause_wiphy(struct ath_softc *sc, const char *name) +-{ +- struct ath_wiphy *aphy = get_wiphy(sc, name); +- if (!aphy) +- return -ENOENT; +- return ath9k_wiphy_unpause(aphy); +-} +- +-static int select_wiphy(struct ath_softc *sc, const char *name) +-{ +- struct ath_wiphy *aphy = get_wiphy(sc, name); +- if (!aphy) +- return -ENOENT; +- return ath9k_wiphy_select(aphy); +-} +- +-static int schedule_wiphy(struct ath_softc *sc, const char *msec) +-{ +- ath9k_wiphy_set_scheduler(sc, simple_strtoul(msec, NULL, 0)); +- return 0; +-} +- +-static ssize_t write_file_wiphy(struct file *file, const char __user *user_buf, +- size_t count, loff_t *ppos) +-{ +- struct ath_softc *sc = file->private_data; +- char buf[50]; +- size_t len; +- +- len = min(count, sizeof(buf) - 1); +- if (copy_from_user(buf, user_buf, len)) +- return -EFAULT; +- buf[len] = '\0'; +- if (len > 0 && buf[len - 1] == '\n') +- buf[len - 1] = '\0'; +- +- if (strncmp(buf, "add", 3) == 0) { +- int res = ath9k_wiphy_add(sc); +- if (res < 0) +- return res; +- } else if (strncmp(buf, "del=", 4) == 0) { +- int res = del_wiphy(sc, buf + 4); +- if (res < 0) +- return res; +- } else if (strncmp(buf, "pause=", 6) == 0) { +- int res = pause_wiphy(sc, buf + 6); +- if (res < 0) +- return res; +- } else if (strncmp(buf, "unpause=", 8) == 0) { +- int res = unpause_wiphy(sc, buf + 8); +- if (res < 0) +- return res; +- } else if (strncmp(buf, "select=", 7) == 0) { +- int res = select_wiphy(sc, buf + 7); +- if (res < 0) +- return res; +- } else if (strncmp(buf, "schedule=", 9) == 0) { +- int res = schedule_wiphy(sc, buf + 9); +- if (res < 0) +- return res; +- } else +- return -EOPNOTSUPP; +- +- return count; +-} +- + static const struct file_operations fops_wiphy = { + .read = read_file_wiphy, +- .write = write_file_wiphy, + .open = ath9k_debugfs_open, + .owner = THIS_MODULE, + .llseek = default_llseek, |