root/drivers/crypto/caam/dpseci-debugfs.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. dpseci_dbg_fqs_show
  2. dpseci_dbg_fqs_open
  3. dpaa2_dpseci_debugfs_init
  4. dpaa2_dpseci_debugfs_exit

   1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
   2 /* Copyright 2019 NXP */
   3 
   4 #include <linux/module.h>
   5 #include <linux/device.h>
   6 #include <linux/debugfs.h>
   7 #include "dpseci-debugfs.h"
   8 
   9 static int dpseci_dbg_fqs_show(struct seq_file *file, void *offset)
  10 {
  11         struct dpaa2_caam_priv *priv = (struct dpaa2_caam_priv *)file->private;
  12         u32 fqid, fcnt, bcnt;
  13         int i, err;
  14 
  15         seq_printf(file, "FQ stats for %s:\n", dev_name(priv->dev));
  16         seq_printf(file, "%s%16s%16s\n",
  17                    "Rx-VFQID",
  18                    "Pending frames",
  19                    "Pending bytes");
  20 
  21         for (i = 0; i <  priv->num_pairs; i++) {
  22                 fqid = priv->rx_queue_attr[i].fqid;
  23                 err = dpaa2_io_query_fq_count(NULL, fqid, &fcnt, &bcnt);
  24                 if (err)
  25                         continue;
  26 
  27                 seq_printf(file, "%5d%16u%16u\n", fqid, fcnt, bcnt);
  28         }
  29 
  30         seq_printf(file, "%s%16s%16s\n",
  31                    "Tx-VFQID",
  32                    "Pending frames",
  33                    "Pending bytes");
  34 
  35         for (i = 0; i <  priv->num_pairs; i++) {
  36                 fqid = priv->tx_queue_attr[i].fqid;
  37                 err = dpaa2_io_query_fq_count(NULL, fqid, &fcnt, &bcnt);
  38                 if (err)
  39                         continue;
  40 
  41                 seq_printf(file, "%5d%16u%16u\n", fqid, fcnt, bcnt);
  42         }
  43 
  44         return 0;
  45 }
  46 
  47 static int dpseci_dbg_fqs_open(struct inode *inode, struct file *file)
  48 {
  49         int err;
  50         struct dpaa2_caam_priv *priv;
  51 
  52         priv = (struct dpaa2_caam_priv *)inode->i_private;
  53 
  54         err = single_open(file, dpseci_dbg_fqs_show, priv);
  55         if (err < 0)
  56                 dev_err(priv->dev, "single_open() failed\n");
  57 
  58         return err;
  59 }
  60 
  61 static const struct file_operations dpseci_dbg_fq_ops = {
  62         .open = dpseci_dbg_fqs_open,
  63         .read = seq_read,
  64         .llseek = seq_lseek,
  65         .release = single_release,
  66 };
  67 
  68 void dpaa2_dpseci_debugfs_init(struct dpaa2_caam_priv *priv)
  69 {
  70         priv->dfs_root = debugfs_create_dir(dev_name(priv->dev), NULL);
  71 
  72         debugfs_create_file("fq_stats", 0444, priv->dfs_root, priv,
  73                             &dpseci_dbg_fq_ops);
  74 }
  75 
  76 void dpaa2_dpseci_debugfs_exit(struct dpaa2_caam_priv *priv)
  77 {
  78         debugfs_remove_recursive(priv->dfs_root);
  79 }

/* [<][>][^][v][top][bottom][index][help] */