summaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/540-ath9k_remove_virtual_debugfs.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/mac80211/patches/540-ath9k_remove_virtual_debugfs.patch')
-rw-r--r--package/mac80211/patches/540-ath9k_remove_virtual_debugfs.patch172
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 000000000..ed835417e
--- /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,