summaryrefslogtreecommitdiff
path: root/target/linux/ipq806x/patches-4.0/706-net-stmmac-create-one-debugfs-dir-per-net-device.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ipq806x/patches-4.0/706-net-stmmac-create-one-debugfs-dir-per-net-device.patch')
-rw-r--r--target/linux/ipq806x/patches-4.0/706-net-stmmac-create-one-debugfs-dir-per-net-device.patch175
1 files changed, 0 insertions, 175 deletions
diff --git a/target/linux/ipq806x/patches-4.0/706-net-stmmac-create-one-debugfs-dir-per-net-device.patch b/target/linux/ipq806x/patches-4.0/706-net-stmmac-create-one-debugfs-dir-per-net-device.patch
deleted file mode 100644
index a9a2d55..0000000
--- a/target/linux/ipq806x/patches-4.0/706-net-stmmac-create-one-debugfs-dir-per-net-device.patch
+++ /dev/null
@@ -1,175 +0,0 @@
-From df944689d491e6af533173bf2ef448c3dd334f15 Mon Sep 17 00:00:00 2001
-From: Mathieu Olivari <mathieu@codeaurora.org>
-Date: Mon, 11 May 2015 15:15:25 -0700
-Subject: [PATCH 6/8] net: stmmac: create one debugfs dir per net-device
-
-stmmac DebugFS entries are currently global to the driver. As a result,
-having more than one stmmac device in the system creates the following
-error:
-* ERROR stmmaceth, debugfs create directory failed
-* stmmac_hw_setup: failed debugFS registration
-
-This also results in being able to access the debugfs information for
-the first registered device only.
-
-This patch changes the debugfs structure to have one sub-directory per
-net-device. Files under "/sys/kernel/debug/stmmaceth" will now show-up
-under /sys/kernel/debug/stmmaceth/ethN/.
-
-Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org>
----
- drivers/net/ethernet/stmicro/stmmac/stmmac.h | 6 ++
- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 76 ++++++++++++++++-------
- 2 files changed, 59 insertions(+), 23 deletions(-)
-
---- a/drivers/net/ethernet/stmicro/stmmac/stmmac.h
-+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac.h
-@@ -116,6 +116,12 @@ struct stmmac_priv {
- int use_riwt;
- int irq_wake;
- spinlock_t ptp_lock;
-+
-+#ifdef CONFIG_DEBUG_FS
-+ struct dentry *dbgfs_dir;
-+ struct dentry *dbgfs_rings_status;
-+ struct dentry *dbgfs_dma_cap;
-+#endif
- };
-
- int stmmac_mdio_unregister(struct net_device *ndev);
---- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-@@ -119,7 +119,7 @@ static irqreturn_t stmmac_interrupt(int
-
- #ifdef CONFIG_DEBUG_FS
- static int stmmac_init_fs(struct net_device *dev);
--static void stmmac_exit_fs(void);
-+static void stmmac_exit_fs(struct net_device *dev);
- #endif
-
- #define STMMAC_COAL_TIMER(x) (jiffies + usecs_to_jiffies(x))
-@@ -1918,7 +1918,7 @@ static int stmmac_release(struct net_dev
- netif_carrier_off(dev);
-
- #ifdef CONFIG_DEBUG_FS
-- stmmac_exit_fs();
-+ stmmac_exit_fs(dev);
- #endif
-
- stmmac_release_ptp(priv);
-@@ -2510,8 +2510,6 @@ static int stmmac_ioctl(struct net_devic
-
- #ifdef CONFIG_DEBUG_FS
- static struct dentry *stmmac_fs_dir;
--static struct dentry *stmmac_rings_status;
--static struct dentry *stmmac_dma_cap;
-
- static void sysfs_display_ring(void *head, int size, int extend_desc,
- struct seq_file *seq)
-@@ -2650,36 +2648,39 @@ static const struct file_operations stmm
-
- static int stmmac_init_fs(struct net_device *dev)
- {
-- /* Create debugfs entries */
-- stmmac_fs_dir = debugfs_create_dir(STMMAC_RESOURCE_NAME, NULL);
-+ struct stmmac_priv *priv = netdev_priv(dev);
-+
-+ /* Create per netdev entries */
-+ priv->dbgfs_dir = debugfs_create_dir(dev->name, stmmac_fs_dir);
-
-- if (!stmmac_fs_dir || IS_ERR(stmmac_fs_dir)) {
-- pr_err("ERROR %s, debugfs create directory failed\n",
-- STMMAC_RESOURCE_NAME);
-+ if (!priv->dbgfs_dir || IS_ERR(priv->dbgfs_dir)) {
-+ pr_err("ERROR %s/%s, debugfs create directory failed\n",
-+ STMMAC_RESOURCE_NAME, dev->name);
-
- return -ENOMEM;
- }
-
- /* Entry to report DMA RX/TX rings */
-- stmmac_rings_status = debugfs_create_file("descriptors_status",
-- S_IRUGO, stmmac_fs_dir, dev,
-- &stmmac_rings_status_fops);
-+ priv->dbgfs_rings_status =
-+ debugfs_create_file("descriptors_status", S_IRUGO,
-+ priv->dbgfs_dir, dev,
-+ &stmmac_rings_status_fops);
-
-- if (!stmmac_rings_status || IS_ERR(stmmac_rings_status)) {
-+ if (!priv->dbgfs_rings_status || IS_ERR(priv->dbgfs_rings_status)) {
- pr_info("ERROR creating stmmac ring debugfs file\n");
-- debugfs_remove(stmmac_fs_dir);
-+ debugfs_remove_recursive(priv->dbgfs_dir);
-
- return -ENOMEM;
- }
-
- /* Entry to report the DMA HW features */
-- stmmac_dma_cap = debugfs_create_file("dma_cap", S_IRUGO, stmmac_fs_dir,
-- dev, &stmmac_dma_cap_fops);
-+ priv->dbgfs_dma_cap = debugfs_create_file("dma_cap", S_IRUGO,
-+ priv->dbgfs_dir,
-+ dev, &stmmac_dma_cap_fops);
-
-- if (!stmmac_dma_cap || IS_ERR(stmmac_dma_cap)) {
-+ if (!priv->dbgfs_dma_cap || IS_ERR(priv->dbgfs_dma_cap)) {
- pr_info("ERROR creating stmmac MMC debugfs file\n");
-- debugfs_remove(stmmac_rings_status);
-- debugfs_remove(stmmac_fs_dir);
-+ debugfs_remove_recursive(priv->dbgfs_dir);
-
- return -ENOMEM;
- }
-@@ -2687,11 +2688,11 @@ static int stmmac_init_fs(struct net_dev
- return 0;
- }
-
--static void stmmac_exit_fs(void)
-+static void stmmac_exit_fs(struct net_device *dev)
- {
-- debugfs_remove(stmmac_rings_status);
-- debugfs_remove(stmmac_dma_cap);
-- debugfs_remove(stmmac_fs_dir);
-+ struct stmmac_priv *priv = netdev_priv(dev);
-+
-+ debugfs_remove_recursive(priv->dbgfs_dir);
- }
- #endif /* CONFIG_DEBUG_FS */
-
-@@ -3136,6 +3137,35 @@ err:
- __setup("stmmaceth=", stmmac_cmdline_opt);
- #endif /* MODULE */
-
-+static int __init stmmac_init(void)
-+{
-+#ifdef CONFIG_DEBUG_FS
-+ /* Create debugfs main directory if it doesn't exist yet */
-+ if (stmmac_fs_dir == NULL) {
-+ stmmac_fs_dir = debugfs_create_dir(STMMAC_RESOURCE_NAME, NULL);
-+
-+ if (!stmmac_fs_dir || IS_ERR(stmmac_fs_dir)) {
-+ pr_err("ERROR %s, debugfs create directory failed\n",
-+ STMMAC_RESOURCE_NAME);
-+
-+ return -ENOMEM;
-+ }
-+ }
-+#endif
-+
-+ return 0;
-+}
-+
-+static void __exit stmmac_exit(void)
-+{
-+#ifdef CONFIG_DEBUG_FS
-+ debugfs_remove_recursive(stmmac_fs_dir);
-+#endif
-+}
-+
-+module_init(stmmac_init)
-+module_exit(stmmac_exit)
-+
- MODULE_DESCRIPTION("STMMAC 10/100/1000 Ethernet device driver");
- MODULE_AUTHOR("Giuseppe Cavallaro <peppe.cavallaro@st.com>");
- MODULE_LICENSE("GPL");