source: branches/backfire/package/mac80211/patches/500-ath9k_eeprom_debugfs.patch @ 27431

Last change on this file since 27431 was 27431, checked in by nbd, 5 years ago

mac80211: backport latest version from trunk as of r27395

File size: 1.6 KB
  • drivers/net/wireless/ath/ath9k/debug.c

    a b static const struct file_operations fops 
    11811181        .llseek = default_llseek,/* read accesses f_pos */ 
    11821182}; 
    11831183 
     1184static ssize_t read_file_eeprom(struct file *file, char __user *user_buf, 
     1185                             size_t count, loff_t *ppos) 
     1186{ 
     1187        struct ath_softc *sc = file->private_data; 
     1188        struct ath_hw *ah = sc->sc_ah; 
     1189        struct ath_common *common = ath9k_hw_common(ah); 
     1190        int bytes = 0; 
     1191        int pos = *ppos; 
     1192        int size = 4096; 
     1193        u16 val; 
     1194        int i; 
     1195 
     1196        if (AR_SREV_9300_20_OR_LATER(ah)) 
     1197                size = 16384; 
     1198 
     1199        if (*ppos < 0) 
     1200                return -EINVAL; 
     1201 
     1202        if (count > size - *ppos) 
     1203                count = size - *ppos; 
     1204 
     1205        for (i = *ppos / 2; count > 0; count -= bytes, *ppos += bytes, i++) { 
     1206                void *from = &val; 
     1207 
     1208                if (!common->bus_ops->eeprom_read(common, i, &val)) 
     1209                        val = 0xffff; 
     1210 
     1211                if (*ppos % 2) { 
     1212                        from++; 
     1213                        bytes = 1; 
     1214                } else if (count == 1) { 
     1215                        bytes = 1; 
     1216                } else { 
     1217                        bytes = 2; 
     1218                } 
     1219                copy_to_user(user_buf, from, bytes); 
     1220                user_buf += bytes; 
     1221        } 
     1222        return *ppos - pos; 
     1223} 
     1224 
     1225static const struct file_operations fops_eeprom = { 
     1226        .read = read_file_eeprom, 
     1227        .open = ath9k_debugfs_open, 
     1228        .owner = THIS_MODULE 
     1229}; 
     1230 
    11841231int ath9k_init_debug(struct ath_hw *ah) 
    11851232{ 
    11861233        struct ath_common *common = ath9k_hw_common(ah); 
    int ath9k_init_debug(struct ath_hw *ah) 
    12311278        debugfs_create_u32("gpio_val", S_IRUSR | S_IWUSR, 
    12321279                           sc->debug.debugfs_phy, &sc->sc_ah->gpio_val); 
    12331280 
     1281        debugfs_create_file("eeprom", S_IRUSR, sc->debug.debugfs_phy, sc, 
     1282                            &fops_eeprom); 
     1283 
    12341284        sc->debug.regidx = 0; 
    12351285        return 0; 
    12361286} 
Note: See TracBrowser for help on using the repository browser.