Skip to content

Commit d32394f

Browse files
Arend van Sprielgregkh
authored andcommitted
ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries
Use the helper to get rid of the file operations per debugfs file. The struct ath9k_softc pointer is set as device driver data to be obtained in the seq_file read operation. Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 631bee2 commit d32394f

File tree

3 files changed

+24
-100
lines changed

3 files changed

+24
-100
lines changed

drivers/net/wireless/ath/ath9k/ahb.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ static int ath_ahb_probe(struct platform_device *pdev)
126126
sc = hw->priv;
127127
sc->hw = hw;
128128
sc->dev = &pdev->dev;
129+
dev_set_drvdata(sc->dev, sc);
129130
sc->mem = mem;
130131
sc->irq = irq;
131132

drivers/net/wireless/ath/ath9k/debug.c

Lines changed: 22 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,7 @@ static const struct file_operations fops_antenna_diversity = {
403403

404404
static int read_file_dma(struct seq_file *file, void *data)
405405
{
406-
struct ath_softc *sc = file->private;
406+
struct ath_softc *sc = dev_get_drvdata(file->private);
407407
struct ath_hw *ah = sc->sc_ah;
408408
u32 val[ATH9K_NUM_DMA_DEBUG_REGS];
409409
int i, qcuOffset = 0, dcuOffset = 0;
@@ -470,20 +470,6 @@ static int read_file_dma(struct seq_file *file, void *data)
470470
return 0;
471471
}
472472

473-
static int open_file_dma(struct inode *inode, struct file *f)
474-
{
475-
return single_open(f, read_file_dma, inode->i_private);
476-
}
477-
478-
static const struct file_operations fops_dma = {
479-
.open = open_file_dma,
480-
.read = seq_read,
481-
.owner = THIS_MODULE,
482-
.llseek = seq_lseek,
483-
.release = single_release,
484-
};
485-
486-
487473
void ath_debug_stat_interrupt(struct ath_softc *sc, enum ath9k_int status)
488474
{
489475
if (status)
@@ -539,7 +525,7 @@ void ath_debug_stat_interrupt(struct ath_softc *sc, enum ath9k_int status)
539525

540526
static int read_file_interrupt(struct seq_file *file, void *data)
541527
{
542-
struct ath_softc *sc = file->private;
528+
struct ath_softc *sc = dev_get_drvdata(file->private);
543529

544530
#define PR_IS(a, s) \
545531
do { \
@@ -600,22 +586,9 @@ static int read_file_interrupt(struct seq_file *file, void *data)
600586
return 0;
601587
}
602588

603-
static int open_file_interrupt(struct inode *inode, struct file *f)
604-
{
605-
return single_open(f, read_file_interrupt, inode->i_private);
606-
}
607-
608-
static const struct file_operations fops_interrupt = {
609-
.read = seq_read,
610-
.open = open_file_interrupt,
611-
.owner = THIS_MODULE,
612-
.llseek = seq_lseek,
613-
.release = single_release,
614-
};
615-
616589
static int read_file_xmit(struct seq_file *file, void *data)
617590
{
618-
struct ath_softc *sc = file->private;
591+
struct ath_softc *sc = dev_get_drvdata(file->private);
619592

620593
seq_printf(file, "%30s %10s%10s%10s\n\n", "BE", "BK", "VI", "VO");
621594

@@ -661,7 +634,7 @@ static void print_queue(struct ath_softc *sc, struct ath_txq *txq,
661634

662635
static int read_file_queues(struct seq_file *file, void *data)
663636
{
664-
struct ath_softc *sc = file->private;
637+
struct ath_softc *sc = dev_get_drvdata(file->private);
665638
struct ath_txq *txq;
666639
int i;
667640
static const char *qname[4] = {
@@ -682,7 +655,7 @@ static int read_file_queues(struct seq_file *file, void *data)
682655

683656
static int read_file_misc(struct seq_file *file, void *data)
684657
{
685-
struct ath_softc *sc = file->private;
658+
struct ath_softc *sc = dev_get_drvdata(file->private);
686659
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
687660
struct ath9k_vif_iter_data iter_data;
688661
struct ath_chanctx *ctx;
@@ -772,7 +745,7 @@ static int read_file_misc(struct seq_file *file, void *data)
772745

773746
static int read_file_reset(struct seq_file *file, void *data)
774747
{
775-
struct ath_softc *sc = file->private;
748+
struct ath_softc *sc = dev_get_drvdata(file->private);
776749

777750
seq_printf(file, "%17s: %2d\n", "Baseband Hang",
778751
sc->debug.stats.reset[RESET_TYPE_BB_HANG]);
@@ -833,58 +806,6 @@ void ath_debug_stat_tx(struct ath_softc *sc, struct ath_buf *bf,
833806
TX_STAT_INC(qnum, delim_underrun);
834807
}
835808

836-
static int open_file_xmit(struct inode *inode, struct file *f)
837-
{
838-
return single_open(f, read_file_xmit, inode->i_private);
839-
}
840-
841-
static const struct file_operations fops_xmit = {
842-
.read = seq_read,
843-
.open = open_file_xmit,
844-
.owner = THIS_MODULE,
845-
.llseek = seq_lseek,
846-
.release = single_release,
847-
};
848-
849-
static int open_file_queues(struct inode *inode, struct file *f)
850-
{
851-
return single_open(f, read_file_queues, inode->i_private);
852-
}
853-
854-
static const struct file_operations fops_queues = {
855-
.read = seq_read,
856-
.open = open_file_queues,
857-
.owner = THIS_MODULE,
858-
.llseek = seq_lseek,
859-
.release = single_release,
860-
};
861-
862-
static int open_file_misc(struct inode *inode, struct file *f)
863-
{
864-
return single_open(f, read_file_misc, inode->i_private);
865-
}
866-
867-
static const struct file_operations fops_misc = {
868-
.read = seq_read,
869-
.open = open_file_misc,
870-
.owner = THIS_MODULE,
871-
.llseek = seq_lseek,
872-
.release = single_release,
873-
};
874-
875-
static int open_file_reset(struct inode *inode, struct file *f)
876-
{
877-
return single_open(f, read_file_reset, inode->i_private);
878-
}
879-
880-
static const struct file_operations fops_reset = {
881-
.read = seq_read,
882-
.open = open_file_reset,
883-
.owner = THIS_MODULE,
884-
.llseek = seq_lseek,
885-
.release = single_release,
886-
};
887-
888809
void ath_debug_stat_rx(struct ath_softc *sc, struct ath_rx_status *rs)
889810
{
890811
ath9k_cmn_debug_stat_rx(&sc->debug.stats.rxstats, rs);
@@ -1014,7 +935,7 @@ static const struct file_operations fops_regdump = {
1014935

1015936
static int read_file_dump_nfcal(struct seq_file *file, void *data)
1016937
{
1017-
struct ath_softc *sc = file->private;
938+
struct ath_softc *sc = dev_get_drvdata(file->private);
1018939
struct ath_hw *ah = sc->sc_ah;
1019940
struct ath9k_nfcal_hist *h = sc->cur_chan->caldata.nfCalHist;
1020941
struct ath_common *common = ath9k_hw_common(ah);
@@ -1256,14 +1177,14 @@ int ath9k_init_debug(struct ath_hw *ah)
12561177
ath9k_tx99_init_debug(sc);
12571178
ath9k_spectral_init_debug(sc);
12581179

1259-
debugfs_create_file("dma", S_IRUSR, sc->debug.debugfs_phy, sc,
1260-
&fops_dma);
1261-
debugfs_create_file("interrupt", S_IRUSR, sc->debug.debugfs_phy, sc,
1262-
&fops_interrupt);
1263-
debugfs_create_file("xmit", S_IRUSR, sc->debug.debugfs_phy, sc,
1264-
&fops_xmit);
1265-
debugfs_create_file("queues", S_IRUSR, sc->debug.debugfs_phy, sc,
1266-
&fops_queues);
1180+
debugfs_create_devm_seqfile(sc->dev, "dma", sc->debug.debugfs_phy,
1181+
read_file_dma);
1182+
debugfs_create_devm_seqfile(sc->dev, "interrupt", sc->debug.debugfs_phy,
1183+
read_file_interrupt);
1184+
debugfs_create_devm_seqfile(sc->dev, "xmit", sc->debug.debugfs_phy,
1185+
read_file_xmit);
1186+
debugfs_create_devm_seqfile(sc->dev, "queues", sc->debug.debugfs_phy,
1187+
read_file_queues);
12671188
debugfs_create_u32("qlen_bk", S_IRUSR | S_IWUSR, sc->debug.debugfs_phy,
12681189
&sc->tx.txq_max_pending[IEEE80211_AC_BK]);
12691190
debugfs_create_u32("qlen_be", S_IRUSR | S_IWUSR, sc->debug.debugfs_phy,
@@ -1272,10 +1193,10 @@ int ath9k_init_debug(struct ath_hw *ah)
12721193
&sc->tx.txq_max_pending[IEEE80211_AC_VI]);
12731194
debugfs_create_u32("qlen_vo", S_IRUSR | S_IWUSR, sc->debug.debugfs_phy,
12741195
&sc->tx.txq_max_pending[IEEE80211_AC_VO]);
1275-
debugfs_create_file("misc", S_IRUSR, sc->debug.debugfs_phy, sc,
1276-
&fops_misc);
1277-
debugfs_create_file("reset", S_IRUSR, sc->debug.debugfs_phy, sc,
1278-
&fops_reset);
1196+
debugfs_create_devm_seqfile(sc->dev, "misc", sc->debug.debugfs_phy,
1197+
read_file_misc);
1198+
debugfs_create_devm_seqfile(sc->dev, "reset", sc->debug.debugfs_phy,
1199+
read_file_reset);
12791200

12801201
ath9k_cmn_debug_recv(sc->debug.debugfs_phy, &sc->debug.stats.rxstats);
12811202
ath9k_cmn_debug_phy_err(sc->debug.debugfs_phy, &sc->debug.stats.rxstats);
@@ -1297,8 +1218,9 @@ int ath9k_init_debug(struct ath_hw *ah)
12971218
&ah->config.cwm_ignore_extcca);
12981219
debugfs_create_file("regdump", S_IRUSR, sc->debug.debugfs_phy, sc,
12991220
&fops_regdump);
1300-
debugfs_create_file("dump_nfcal", S_IRUSR, sc->debug.debugfs_phy, sc,
1301-
&fops_dump_nfcal);
1221+
debugfs_create_devm_seqfile(sc->dev, "dump_nfcal",
1222+
sc->debug.debugfs_phy,
1223+
read_file_dump_nfcal);
13021224

13031225
ath9k_cmn_debug_base_eeprom(sc->debug.debugfs_phy, sc->sc_ah);
13041226
ath9k_cmn_debug_modal_eeprom(sc->debug.debugfs_phy, sc->sc_ah);

drivers/net/wireless/ath/ath9k/pci.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -856,6 +856,7 @@ static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
856856
sc = hw->priv;
857857
sc->hw = hw;
858858
sc->dev = &pdev->dev;
859+
dev_set_drvdata(sc->dev, sc);
859860
sc->mem = pcim_iomap_table(pdev)[0];
860861
sc->driver_data = id->driver_data;
861862

0 commit comments

Comments
 (0)