Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
0002 /* Copyright 2019 NXP */
0003 
0004 #include <linux/module.h>
0005 #include <linux/device.h>
0006 #include <linux/debugfs.h>
0007 #include "dpseci-debugfs.h"
0008 
0009 static int dpseci_dbg_fqs_show(struct seq_file *file, void *offset)
0010 {
0011     struct dpaa2_caam_priv *priv = (struct dpaa2_caam_priv *)file->private;
0012     u32 fqid, fcnt, bcnt;
0013     int i, err;
0014 
0015     seq_printf(file, "FQ stats for %s:\n", dev_name(priv->dev));
0016     seq_printf(file, "%s%16s%16s\n",
0017            "Rx-VFQID",
0018            "Pending frames",
0019            "Pending bytes");
0020 
0021     for (i = 0; i <  priv->num_pairs; i++) {
0022         fqid = priv->rx_queue_attr[i].fqid;
0023         err = dpaa2_io_query_fq_count(NULL, fqid, &fcnt, &bcnt);
0024         if (err)
0025             continue;
0026 
0027         seq_printf(file, "%5d%16u%16u\n", fqid, fcnt, bcnt);
0028     }
0029 
0030     seq_printf(file, "%s%16s%16s\n",
0031            "Tx-VFQID",
0032            "Pending frames",
0033            "Pending bytes");
0034 
0035     for (i = 0; i <  priv->num_pairs; i++) {
0036         fqid = priv->tx_queue_attr[i].fqid;
0037         err = dpaa2_io_query_fq_count(NULL, fqid, &fcnt, &bcnt);
0038         if (err)
0039             continue;
0040 
0041         seq_printf(file, "%5d%16u%16u\n", fqid, fcnt, bcnt);
0042     }
0043 
0044     return 0;
0045 }
0046 
0047 DEFINE_SHOW_ATTRIBUTE(dpseci_dbg_fqs);
0048 
0049 void dpaa2_dpseci_debugfs_init(struct dpaa2_caam_priv *priv)
0050 {
0051     priv->dfs_root = debugfs_create_dir(dev_name(priv->dev), NULL);
0052 
0053     debugfs_create_file("fq_stats", 0444, priv->dfs_root, priv,
0054                 &dpseci_dbg_fqs_fops);
0055 }
0056 
0057 void dpaa2_dpseci_debugfs_exit(struct dpaa2_caam_priv *priv)
0058 {
0059     debugfs_remove_recursive(priv->dfs_root);
0060 }