source: trunk/package/mac80211/patches/500-ath9k_eeprom_debugfs.patch @ 27972

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

ath9k: merge a few more pending fixes, including a fix for the bogus WARN_ON in pci.c and fixes for Rx DMA stop issues

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

    a b static const struct file_operations fops 
    12721272        .llseek = default_llseek, 
    12731273}; 
    12741274 
     1275static ssize_t read_file_eeprom(struct file *file, char __user *user_buf, 
     1276                             size_t count, loff_t *ppos) 
     1277{ 
     1278        struct ath_softc *sc = file->private_data; 
     1279        struct ath_hw *ah = sc->sc_ah; 
     1280        struct ath_common *common = ath9k_hw_common(ah); 
     1281        int bytes = 0; 
     1282        int pos = *ppos; 
     1283        int size = 4096; 
     1284        u16 val; 
     1285        int i; 
     1286 
     1287        if (AR_SREV_9300_20_OR_LATER(ah)) 
     1288                size = 16384; 
     1289 
     1290        if (*ppos < 0) 
     1291                return -EINVAL; 
     1292 
     1293        if (count > size - *ppos) 
     1294                count = size - *ppos; 
     1295 
     1296        for (i = *ppos / 2; count > 0; count -= bytes, *ppos += bytes, i++) { 
     1297                void *from = &val; 
     1298 
     1299                if (!common->bus_ops->eeprom_read(common, i, &val)) 
     1300                        val = 0xffff; 
     1301 
     1302                if (*ppos % 2) { 
     1303                        from++; 
     1304                        bytes = 1; 
     1305                } else if (count == 1) { 
     1306                        bytes = 1; 
     1307                } else { 
     1308                        bytes = 2; 
     1309                } 
     1310                copy_to_user(user_buf, from, bytes); 
     1311                user_buf += bytes; 
     1312        } 
     1313        return *ppos - pos; 
     1314} 
     1315 
     1316static const struct file_operations fops_eeprom = { 
     1317        .read = read_file_eeprom, 
     1318        .open = ath9k_debugfs_open, 
     1319        .owner = THIS_MODULE 
     1320}; 
     1321 
    12751322int ath9k_init_debug(struct ath_hw *ah) 
    12761323{ 
    12771324        struct ath_common *common = ath9k_hw_common(ah); 
    int ath9k_init_debug(struct ath_hw *ah) 
    13281375        debugfs_create_u32("gpio_val", S_IRUSR | S_IWUSR, 
    13291376                           sc->debug.debugfs_phy, &sc->sc_ah->gpio_val); 
    13301377 
     1378        debugfs_create_file("eeprom", S_IRUSR, sc->debug.debugfs_phy, sc, 
     1379                            &fops_eeprom); 
     1380 
    13311381        sc->debug.regidx = 0; 
    13321382        return 0; 
    13331383} 
Note: See TracBrowser for help on using the repository browser.