How? What API are you using it allow it to be modified? Why cannot youMDIO controller supports 1MHz, 2.5MHz, 12.5MHz, and 25MHz+ seq_printf(s, "mdio frequency: %u\n", specs->mdio_frequency);Is this interesting? Are you clocking it greater than 2.5MHz?
Of course, we chose and tested 2.5M in actual work, but this can be modified.
get the value using the same API?
We requested three interrupts: "tx", "rx", "err"Please make this a patch of its own, and include this in the commit
The err interrupt is a summary interrupt. We distinguish different errors
based on the status register and mask.
With "cat /proc/interrupts | grep hibmcge",
we can't distinguish the detailed cause of the error,
so we added this file to debugfs.
the following effects are achieved:
[root@localhost sjj]# cat /sys/kernel/debug/hibmcge/0000\:83\:00.1/irq_info
RX : is enabled: true, print: false, count: 2
TX : is enabled: true, print: false, count: 0
MAC_MII_FIFO_ERR : is enabled: false, print: true, count: 0
MAC_PCS_RX_FIFO_ERR : is enabled: false, print: true, count: 0
MAC_PCS_TX_FIFO_ERR : is enabled: false, print: true, count: 0
MAC_APP_RX_FIFO_ERR : is enabled: false, print: true, count: 0
MAC_APP_TX_FIFO_ERR : is enabled: false, print: true, count: 0
SRAM_PARITY_ERR : is enabled: true, print: true, count: 0
TX_AHB_ERR : is enabled: true, print: true, count: 0
RX_BUF_AVL : is enabled: true, print: false, count: 0
REL_BUF_ERR : is enabled: true, print: true, count: 0
TXCFG_AVL : is enabled: true, print: false, count: 0
TX_DROP : is enabled: true, print: false, count: 0
RX_DROP : is enabled: true, print: false, count: 0
RX_AHB_ERR : is enabled: true, print: true, count: 0
MAC_FIFO_ERR : is enabled: true, print: false, count: 0
RBREQ_ERR : is enabled: true, print: false, count: 0
WE_ERR : is enabled: true, print: false, count: 0
The irq framework of hibmcge driver also includes tx/rx interrupts.
Therefore, these interrupts are not distinguished separately in debugfs.
message.
Ideally you need to show there is no standard API for what you want to
put into debugfs, because if there is a standard API, you don't need
debugfs...
Why?Although tx_timeout_cnt is a statistical item, it is not displayed in the ethtool -S.+static int hbg_dbg_nic_state(struct seq_file *s, void *unused)Don't you have this via ethtool -S ?
+{
+ struct net_device *netdev = dev_get_drvdata(s->private);
+ struct hbg_priv *priv = netdev_priv(netdev);
+
+ seq_printf(s, "event handling state: %s\n",
+ hbg_get_bool_str(test_bit(HBG_NIC_STATE_EVENT_HANDLING,
+ &priv->state)));
+
+ seq_printf(s, "tx timeout cnt: %llu\n", priv->stats.tx_timeout_cnt);
Andrew