Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1270319 > unrolled thread

[PATCH] gpio-tegra: Do not create the debugfs entry by default

Started by"Suzuki K. Poulose" <suzuki.poulose@arm.com>
First post2015-11-16 17:10 +0100
Last post2015-11-17 15:30 +0100
Articles 3 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] gpio-tegra: Do not create the debugfs entry by default "Suzuki K. Poulose" <suzuki.poulose@arm.com> - 2015-11-16 17:10 +0100
    Re: [PATCH] gpio-tegra: Do not create the debugfs entry by default Thierry Reding <thierry.reding@gmail.com> - 2015-11-16 17:50 +0100
    Re: [PATCH] gpio-tegra: Do not create the debugfs entry by default Linus Walleij <linus.walleij@linaro.org> - 2015-11-17 15:30 +0100

#1270319 — [PATCH] gpio-tegra: Do not create the debugfs entry by default

From"Suzuki K. Poulose" <suzuki.poulose@arm.com>
Date2015-11-16 17:10 +0100
Subject[PATCH] gpio-tegra: Do not create the debugfs entry by default
Message-ID<qvuvU-151-23@gated-at.bofh.it>
The tegra gpio driver creates the debugfs entry irrespective of
whether the device exists or not. This is enabled on an arm64_defconfig
and leaves an entry in debugfs on all platforms where it is not
useful. This patch fixes the issue by creating the entry only when
a device exists.

Signed-off-by: Suzuki K. Poulose <suzuki.poulose@arm.com>
---
 drivers/gpio/gpio-tegra.c |  105 ++++++++++++++++++++++++---------------------
 1 file changed, 56 insertions(+), 49 deletions(-)

diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c
index 027e5f4..896bf29 100644
--- a/drivers/gpio/gpio-tegra.c
+++ b/drivers/gpio/gpio-tegra.c
@@ -375,6 +375,60 @@ static int tegra_gpio_irq_set_wake(struct irq_data *d, unsigned int enable)
 }
 #endif
 
+#ifdef	CONFIG_DEBUG_FS
+
+#include <linux/debugfs.h>
+#include <linux/seq_file.h>
+
+static int dbg_gpio_show(struct seq_file *s, void *unused)
+{
+	int i;
+	int j;
+
+	for (i = 0; i < tegra_gpio_bank_count; i++) {
+		for (j = 0; j < 4; j++) {
+			int gpio = tegra_gpio_compose(i, j, 0);
+			seq_printf(s,
+				"%d:%d %02x %02x %02x %02x %02x %02x %06x\n",
+				i, j,
+				tegra_gpio_readl(GPIO_CNF(gpio)),
+				tegra_gpio_readl(GPIO_OE(gpio)),
+				tegra_gpio_readl(GPIO_OUT(gpio)),
+				tegra_gpio_readl(GPIO_IN(gpio)),
+				tegra_gpio_readl(GPIO_INT_STA(gpio)),
+				tegra_gpio_readl(GPIO_INT_ENB(gpio)),
+				tegra_gpio_readl(GPIO_INT_LVL(gpio)));
+		}
+	}
+	return 0;
+}
+
+static int dbg_gpio_open(struct inode *inode, struct file *file)
+{
+	return single_open(file, dbg_gpio_show, &inode->i_private);
+}
+
+static const struct file_operations debug_fops = {
+	.open		= dbg_gpio_open,
+	.read		= seq_read,
+	.llseek		= seq_lseek,
+	.release	= single_release,
+};
+
+static void tegra_gpio_debuginit(void)
+{
+	(void) debugfs_create_file("tegra_gpio", S_IRUGO,
+					NULL, NULL, &debug_fops);
+}
+
+#else
+
+static inline void tegra_gpio_debuginit(void)
+{
+}
+
+#endif
+
 static struct irq_chip tegra_gpio_irq_chip = {
 	.name		= "GPIO",
 	.irq_ack	= tegra_gpio_irq_ack,
@@ -519,6 +573,8 @@ static int tegra_gpio_probe(struct platform_device *pdev)
 			spin_lock_init(&bank->lvl_lock[j]);
 	}
 
+	tegra_gpio_debuginit();
+
 	return 0;
 }
 
@@ -536,52 +592,3 @@ static int __init tegra_gpio_init(void)
 	return platform_driver_register(&tegra_gpio_driver);
 }
 postcore_initcall(tegra_gpio_init);
-
-#ifdef	CONFIG_DEBUG_FS
-
-#include <linux/debugfs.h>
-#include <linux/seq_file.h>
-
-static int dbg_gpio_show(struct seq_file *s, void *unused)
-{
-	int i;
-	int j;
-
-	for (i = 0; i < tegra_gpio_bank_count; i++) {
-		for (j = 0; j < 4; j++) {
-			int gpio = tegra_gpio_compose(i, j, 0);
-			seq_printf(s,
-				"%d:%d %02x %02x %02x %02x %02x %02x %06x\n",
-				i, j,
-				tegra_gpio_readl(GPIO_CNF(gpio)),
-				tegra_gpio_readl(GPIO_OE(gpio)),
-				tegra_gpio_readl(GPIO_OUT(gpio)),
-				tegra_gpio_readl(GPIO_IN(gpio)),
-				tegra_gpio_readl(GPIO_INT_STA(gpio)),
-				tegra_gpio_readl(GPIO_INT_ENB(gpio)),
-				tegra_gpio_readl(GPIO_INT_LVL(gpio)));
-		}
-	}
-	return 0;
-}
-
-static int dbg_gpio_open(struct inode *inode, struct file *file)
-{
-	return single_open(file, dbg_gpio_show, &inode->i_private);
-}
-
-static const struct file_operations debug_fops = {
-	.open		= dbg_gpio_open,
-	.read		= seq_read,
-	.llseek		= seq_lseek,
-	.release	= single_release,
-};
-
-static int __init tegra_gpio_debuginit(void)
-{
-	(void) debugfs_create_file("tegra_gpio", S_IRUGO,
-					NULL, NULL, &debug_fops);
-	return 0;
-}
-late_initcall(tegra_gpio_debuginit);
-#endif
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1270353

FromThierry Reding <thierry.reding@gmail.com>
Date2015-11-16 17:50 +0100
Message-ID<qvv8B-1ij-11@gated-at.bofh.it>
In reply to#1270319

[Multipart message — attachments visible in raw view] — view raw

On Mon, Nov 16, 2015 at 04:07:10PM +0000, Suzuki K. Poulose wrote:
> The tegra gpio driver creates the debugfs entry irrespective of
> whether the device exists or not. This is enabled on an arm64_defconfig
> and leaves an entry in debugfs on all platforms where it is not
> useful. This patch fixes the issue by creating the entry only when
> a device exists.
> 
> Signed-off-by: Suzuki K. Poulose <suzuki.poulose@arm.com>
> ---
>  drivers/gpio/gpio-tegra.c |  105 ++++++++++++++++++++++++---------------------
>  1 file changed, 56 insertions(+), 49 deletions(-)

Yikes, good catch!

Acked-by: Thierry Reding <treding@nvidia.com>

[toc] | [prev] | [next] | [standalone]


#1271277

FromLinus Walleij <linus.walleij@linaro.org>
Date2015-11-17 15:30 +0100
Message-ID<qvPqG-6b2-11@gated-at.bofh.it>
In reply to#1270319
On Mon, Nov 16, 2015 at 5:07 PM, Suzuki K. Poulose
<suzuki.poulose@arm.com> wrote:

> The tegra gpio driver creates the debugfs entry irrespective of
> whether the device exists or not. This is enabled on an arm64_defconfig
> and leaves an entry in debugfs on all platforms where it is not
> useful. This patch fixes the issue by creating the entry only when
> a device exists.
>
> Signed-off-by: Suzuki K. Poulose <suzuki.poulose@arm.com>

Patch applied for fixes with Thierry's ACK.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web