3394af677c
The ath patch number is already large and adding other patch for ath11k will add more confusion with the patch numbering. Since the support of ath11k based device is imminent, prepare the mac80211 ath patch dir and split it in the dedicated ath5k, ath9k, ath10k and ath11k (empty for now). Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
66 lines
1.7 KiB
Diff
66 lines
1.7 KiB
Diff
--- a/drivers/net/wireless/ath/ath9k/debug.c
|
|
+++ b/drivers/net/wireless/ath/ath9k/debug.c
|
|
@@ -1364,6 +1364,53 @@ void ath9k_deinit_debug(struct ath_softc
|
|
ath9k_cmn_spectral_deinit_debug(&sc->spec_priv);
|
|
}
|
|
|
|
+static ssize_t read_file_eeprom(struct file *file, char __user *user_buf,
|
|
+ size_t count, loff_t *ppos)
|
|
+{
|
|
+ struct ath_softc *sc = file->private_data;
|
|
+ struct ath_hw *ah = sc->sc_ah;
|
|
+ struct ath_common *common = ath9k_hw_common(ah);
|
|
+ int bytes = 0;
|
|
+ int pos = *ppos;
|
|
+ int size = 4096;
|
|
+ u16 val;
|
|
+ int i;
|
|
+
|
|
+ if (AR_SREV_9300_20_OR_LATER(ah))
|
|
+ size = 16384;
|
|
+
|
|
+ if (*ppos < 0)
|
|
+ return -EINVAL;
|
|
+
|
|
+ if (count > size - *ppos)
|
|
+ count = size - *ppos;
|
|
+
|
|
+ for (i = *ppos / 2; count > 0; count -= bytes, *ppos += bytes, i++) {
|
|
+ void *from = &val;
|
|
+
|
|
+ if (!common->bus_ops->eeprom_read(common, i, &val))
|
|
+ val = 0xffff;
|
|
+
|
|
+ if (*ppos % 2) {
|
|
+ from++;
|
|
+ bytes = 1;
|
|
+ } else if (count == 1) {
|
|
+ bytes = 1;
|
|
+ } else {
|
|
+ bytes = 2;
|
|
+ }
|
|
+ copy_to_user(user_buf, from, bytes);
|
|
+ user_buf += bytes;
|
|
+ }
|
|
+ return *ppos - pos;
|
|
+}
|
|
+
|
|
+static const struct file_operations fops_eeprom = {
|
|
+ .read = read_file_eeprom,
|
|
+ .open = simple_open,
|
|
+ .owner = THIS_MODULE
|
|
+};
|
|
+
|
|
int ath9k_init_debug(struct ath_hw *ah)
|
|
{
|
|
struct ath_common *common = ath9k_hw_common(ah);
|
|
@@ -1383,6 +1430,8 @@ int ath9k_init_debug(struct ath_hw *ah)
|
|
ath9k_tx99_init_debug(sc);
|
|
ath9k_cmn_spectral_init_debug(&sc->spec_priv, sc->debug.debugfs_phy);
|
|
|
|
+ debugfs_create_file("eeprom", S_IRUSR, sc->debug.debugfs_phy, sc,
|
|
+ &fops_eeprom);
|
|
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,
|