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

Last change on this file since 23149 was 23149, checked in by nbd, 6 years ago

mac80211: update to wireless-testing 2010-09-28

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

    a b static const struct file_operations fops 
    930930        .owner = THIS_MODULE 
    931931}; 
    932932 
     933static ssize_t read_file_eeprom(struct file *file, char __user *user_buf, 
     934                             size_t count, loff_t *ppos) 
     935{ 
     936        struct ath_softc *sc = file->private_data; 
     937        struct ath_hw *ah = sc->sc_ah; 
     938        struct ath_common *common = ath9k_hw_common(ah); 
     939        int bytes = 0; 
     940        int pos = *ppos; 
     941        int size = 4096; 
     942        u16 val; 
     943        int i; 
     944 
     945        if (AR_SREV_9300_20_OR_LATER(ah)) 
     946                size = 16384; 
     947 
     948        if (*ppos < 0) 
     949                return -EINVAL; 
     950 
     951        if (count > size - *ppos) 
     952                count = size - *ppos; 
     953 
     954        for (i = *ppos / 2; count > 0; count -= bytes, *ppos += bytes, i++) { 
     955                void *from = &val; 
     956 
     957                if (!common->bus_ops->eeprom_read(common, i, &val)) 
     958                        val = 0xffff; 
     959 
     960                if (*ppos % 2) { 
     961                        from++; 
     962                        bytes = 1; 
     963                } else if (count == 1) { 
     964                        bytes = 1; 
     965                } else { 
     966                        bytes = 2; 
     967                } 
     968                copy_to_user(user_buf, from, bytes); 
     969                user_buf += bytes; 
     970        } 
     971        return *ppos - pos; 
     972} 
     973 
     974static const struct file_operations fops_eeprom = { 
     975        .read = read_file_eeprom, 
     976        .open = ath9k_debugfs_open, 
     977        .owner = THIS_MODULE 
     978}; 
     979 
    933980int ath9k_init_debug(struct ath_hw *ah) 
    934981{ 
    935982        struct ath_common *common = ath9k_hw_common(ah); 
    int ath9k_init_debug(struct ath_hw *ah) 
    9931040                        sc->debug.debugfs_phy, &ah->config.cwm_ignore_extcca)) 
    9941041                goto err; 
    9951042 
     1043        if (!debugfs_create_file("eeprom", S_IRUSR, 
     1044                        sc->debug.debugfs_phy, sc, &fops_eeprom)) 
     1045                goto err; 
     1046 
    9961047        sc->debug.regidx = 0; 
    9971048        return 0; 
    9981049err: 
Note: See TracBrowser for help on using the repository browser.