linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 1/4] seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro
@ 2018-01-22 16:05 Andy Shevchenko
  2018-01-22 16:05 ` [PATCH v1 2/4] platform/x86: dell-laptop: Re-use DEFINE_SHOW_ATTRIBUTE() macro Andy Shevchenko
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Andy Shevchenko @ 2018-01-22 16:05 UTC (permalink / raw)
  To: Darren Hart, platform-driver-x86, Linus Walleij, Lee Jones,
	Marcel Holtmann, linux-kernel
  Cc: Andy Shevchenko

The DEFINE_SHOW_ATTRIBUTE() helper macro would be useful for current
users, which are many of them, and for new comers to decrease code
duplication.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/mfd/ab8500-debugfs.c    | 14 --------------
 drivers/platform/x86/pmc_atom.c | 14 --------------
 include/linux/seq_file.h        | 14 ++++++++++++++
 net/bluetooth/hci_debugfs.c     | 13 -------------
 4 files changed, 14 insertions(+), 41 deletions(-)

diff --git a/drivers/mfd/ab8500-debugfs.c b/drivers/mfd/ab8500-debugfs.c
index f66c458228ec..d878a599c87f 100644
--- a/drivers/mfd/ab8500-debugfs.c
+++ b/drivers/mfd/ab8500-debugfs.c
@@ -1258,20 +1258,6 @@ static struct ab8500_prcmu_ranges ab8540_debug_ranges[AB8500_NUM_BANKS] = {
 	},
 };
 
-#define DEFINE_SHOW_ATTRIBUTE(__name)					      \
-static int __name ## _open(struct inode *inode, struct file *file)	      \
-{									      \
-	return single_open(file, __name ## _show, inode->i_private);	      \
-}									      \
-									      \
-static const struct file_operations __name ## _fops = {			      \
-	.owner		= THIS_MODULE,					      \
-	.open		= __name ## _open,				      \
-	.read		= seq_read,					      \
-	.llseek		= seq_lseek,					      \
-	.release	= single_release,				      \
-}									      \
-
 static irqreturn_t ab8500_debug_handler(int irq, void *data)
 {
 	char buf[16];
diff --git a/drivers/platform/x86/pmc_atom.c b/drivers/platform/x86/pmc_atom.c
index 4b3c37b6288c..8f018b3f3cd4 100644
--- a/drivers/platform/x86/pmc_atom.c
+++ b/drivers/platform/x86/pmc_atom.c
@@ -208,20 +208,6 @@ static const struct pmc_data cht_data = {
 	.clks = cht_clks,
 };
 
-#define DEFINE_SHOW_ATTRIBUTE(__name)					\
-static int __name ## _open(struct inode *inode, struct file *file)	\
-{									\
-	return single_open(file, __name ## _show, inode->i_private);	\
-}									\
-									\
-static const struct file_operations __name ## _fops = {			\
-	.owner		= THIS_MODULE,					\
-	.open		= __name ## _open,				\
-	.read		= seq_read,					\
-	.llseek		= seq_lseek,					\
-	.release	= single_release,				\
-}
-
 static inline u32 pmc_reg_read(struct pmc_dev *pmc, int reg_offset)
 {
 	return readl(pmc->regmap + reg_offset);
diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h
index 802e6944b6ce..11e051388f54 100644
--- a/include/linux/seq_file.h
+++ b/include/linux/seq_file.h
@@ -147,6 +147,20 @@ void *__seq_open_private(struct file *, const struct seq_operations *, int);
 int seq_open_private(struct file *, const struct seq_operations *, int);
 int seq_release_private(struct inode *, struct file *);
 
+#define DEFINE_SHOW_ATTRIBUTE(__name)					\
+static int __name ## _open(struct inode *inode, struct file *file)	\
+{									\
+	return single_open(file, __name ## _show, inode->i_private);	\
+}									\
+									\
+static const struct file_operations __name ## _fops = {			\
+	.owner		= THIS_MODULE,					\
+	.open		= __name ## _open,				\
+	.read		= seq_read,					\
+	.llseek		= seq_lseek,					\
+	.release	= single_release,				\
+}
+
 static inline struct user_namespace *seq_user_ns(struct seq_file *seq)
 {
 #ifdef CONFIG_USER_NS
diff --git a/net/bluetooth/hci_debugfs.c b/net/bluetooth/hci_debugfs.c
index 57403bd567d0..418b76e557b0 100644
--- a/net/bluetooth/hci_debugfs.c
+++ b/net/bluetooth/hci_debugfs.c
@@ -90,19 +90,6 @@ static int __name ## _show(struct seq_file *f, void *ptr)		      \
 									      \
 DEFINE_SHOW_ATTRIBUTE(__name)
 
-#define DEFINE_SHOW_ATTRIBUTE(__name)					      \
-static int __name ## _open(struct inode *inode, struct file *file)	      \
-{									      \
-	return single_open(file, __name ## _show, inode->i_private);	      \
-}									      \
-									      \
-static const struct file_operations __name ## _fops = {			      \
-	.open		= __name ## _open,				      \
-	.read		= seq_read,					      \
-	.llseek		= seq_lseek,					      \
-	.release	= single_release,				      \
-}									      \
-
 static int features_show(struct seq_file *f, void *ptr)
 {
 	struct hci_dev *hdev = f->private;
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v1 2/4] platform/x86: dell-laptop: Re-use DEFINE_SHOW_ATTRIBUTE() macro
  2018-01-22 16:05 [PATCH v1 1/4] seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro Andy Shevchenko
@ 2018-01-22 16:05 ` Andy Shevchenko
  2018-01-22 16:05 ` [PATCH v1 3/4] platform/x86: ideapad-laptop: " Andy Shevchenko
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Andy Shevchenko @ 2018-01-22 16:05 UTC (permalink / raw)
  To: Darren Hart, platform-driver-x86, Linus Walleij, Lee Jones,
	Marcel Holtmann, linux-kernel
  Cc: Andy Shevchenko

...instead of open coding file operations followed by custom ->open()
callbacks per each attribute.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/platform/x86/dell-laptop.c | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)

diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
index a94936a5b6c7..7a6e521b93e6 100644
--- a/drivers/platform/x86/dell-laptop.c
+++ b/drivers/platform/x86/dell-laptop.c
@@ -594,19 +594,7 @@ static int dell_debugfs_show(struct seq_file *s, void *data)
 
 	return 0;
 }
-
-static int dell_debugfs_open(struct inode *inode, struct file *file)
-{
-	return single_open(file, dell_debugfs_show, inode->i_private);
-}
-
-static const struct file_operations dell_debugfs_fops = {
-	.owner = THIS_MODULE,
-	.open = dell_debugfs_open,
-	.read = seq_read,
-	.llseek = seq_lseek,
-	.release = single_release,
-};
+DEFINE_SHOW_ATTRIBUTE(dell_debugfs);
 
 static void dell_update_rfkill(struct work_struct *ignored)
 {
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v1 3/4] platform/x86: ideapad-laptop: Re-use DEFINE_SHOW_ATTRIBUTE() macro
  2018-01-22 16:05 [PATCH v1 1/4] seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro Andy Shevchenko
  2018-01-22 16:05 ` [PATCH v1 2/4] platform/x86: dell-laptop: Re-use DEFINE_SHOW_ATTRIBUTE() macro Andy Shevchenko
@ 2018-01-22 16:05 ` Andy Shevchenko
  2018-01-22 16:05 ` [PATCH v1 4/4] platform/x86: samsung-laptop: " Andy Shevchenko
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Andy Shevchenko @ 2018-01-22 16:05 UTC (permalink / raw)
  To: Darren Hart, platform-driver-x86, Linus Walleij, Lee Jones,
	Marcel Holtmann, linux-kernel
  Cc: Andy Shevchenko

...instead of open coding file operations followed by custom ->open()
callbacks per each attribute.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/platform/x86/ideapad-laptop.c | 28 ++--------------------------
 1 file changed, 2 insertions(+), 26 deletions(-)

diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
index 5ab638d4d243..7e9e9bf78f1d 100644
--- a/drivers/platform/x86/ideapad-laptop.c
+++ b/drivers/platform/x86/ideapad-laptop.c
@@ -284,19 +284,7 @@ static int debugfs_status_show(struct seq_file *s, void *data)
 
 	return 0;
 }
-
-static int debugfs_status_open(struct inode *inode, struct file *file)
-{
-	return single_open(file, debugfs_status_show, inode->i_private);
-}
-
-static const struct file_operations debugfs_status_fops = {
-	.owner = THIS_MODULE,
-	.open = debugfs_status_open,
-	.read = seq_read,
-	.llseek = seq_lseek,
-	.release = single_release,
-};
+DEFINE_SHOW_ATTRIBUTE(debugfs_status);
 
 static int debugfs_cfg_show(struct seq_file *s, void *data)
 {
@@ -337,19 +325,7 @@ static int debugfs_cfg_show(struct seq_file *s, void *data)
 	}
 	return 0;
 }
-
-static int debugfs_cfg_open(struct inode *inode, struct file *file)
-{
-	return single_open(file, debugfs_cfg_show, inode->i_private);
-}
-
-static const struct file_operations debugfs_cfg_fops = {
-	.owner = THIS_MODULE,
-	.open = debugfs_cfg_open,
-	.read = seq_read,
-	.llseek = seq_lseek,
-	.release = single_release,
-};
+DEFINE_SHOW_ATTRIBUTE(debugfs_cfg);
 
 static int ideapad_debugfs_init(struct ideapad_private *priv)
 {
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v1 4/4] platform/x86: samsung-laptop: Re-use DEFINE_SHOW_ATTRIBUTE() macro
  2018-01-22 16:05 [PATCH v1 1/4] seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro Andy Shevchenko
  2018-01-22 16:05 ` [PATCH v1 2/4] platform/x86: dell-laptop: Re-use DEFINE_SHOW_ATTRIBUTE() macro Andy Shevchenko
  2018-01-22 16:05 ` [PATCH v1 3/4] platform/x86: ideapad-laptop: " Andy Shevchenko
@ 2018-01-22 16:05 ` Andy Shevchenko
  2018-01-23  9:15 ` [PATCH v1 1/4] seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro Lee Jones
  2018-02-07 13:09 ` Linus Walleij
  4 siblings, 0 replies; 9+ messages in thread
From: Andy Shevchenko @ 2018-01-22 16:05 UTC (permalink / raw)
  To: Darren Hart, platform-driver-x86, Linus Walleij, Lee Jones,
	Marcel Holtmann, linux-kernel
  Cc: Andy Shevchenko

...instead of open coding file operations followed by custom ->open()
callbacks per each attribute.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/platform/x86/samsung-laptop.c | 18 +++---------------
 1 file changed, 3 insertions(+), 15 deletions(-)

diff --git a/drivers/platform/x86/samsung-laptop.c b/drivers/platform/x86/samsung-laptop.c
index d3cb26f6df73..03305e0b89ff 100644
--- a/drivers/platform/x86/samsung-laptop.c
+++ b/drivers/platform/x86/samsung-laptop.c
@@ -1252,7 +1252,7 @@ static int __init samsung_sysfs_init(struct samsung_laptop *samsung)
 
 }
 
-static int show_call(struct seq_file *m, void *data)
+static int samsung_laptop_call_show(struct seq_file *m, void *data)
 {
 	struct samsung_laptop *samsung = m->private;
 	struct sabi_data *sdata = &samsung->debug.data;
@@ -1274,19 +1274,7 @@ static int show_call(struct seq_file *m, void *data)
 		   sdata->d0, sdata->d1, sdata->d2, sdata->d3);
 	return 0;
 }
-
-static int samsung_debugfs_open(struct inode *inode, struct file *file)
-{
-	return single_open(file, show_call, inode->i_private);
-}
-
-static const struct file_operations samsung_laptop_call_io_ops = {
-	.owner = THIS_MODULE,
-	.open = samsung_debugfs_open,
-	.read = seq_read,
-	.llseek = seq_lseek,
-	.release = single_release,
-};
+DEFINE_SHOW_ATTRIBUTE(samsung_laptop_call);
 
 static void samsung_debugfs_exit(struct samsung_laptop *samsung)
 {
@@ -1351,7 +1339,7 @@ static int samsung_debugfs_init(struct samsung_laptop *samsung)
 
 	dent = debugfs_create_file("call", S_IFREG | S_IRUGO,
 				   samsung->debug.root, samsung,
-				   &samsung_laptop_call_io_ops);
+				   &samsung_laptop_call_fops);
 	if (!dent)
 		goto error_debugfs;
 
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 1/4] seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro
  2018-01-22 16:05 [PATCH v1 1/4] seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro Andy Shevchenko
                   ` (2 preceding siblings ...)
  2018-01-22 16:05 ` [PATCH v1 4/4] platform/x86: samsung-laptop: " Andy Shevchenko
@ 2018-01-23  9:15 ` Lee Jones
  2018-01-24  0:05   ` Darren Hart
  2018-02-07 13:09 ` Linus Walleij
  4 siblings, 1 reply; 9+ messages in thread
From: Lee Jones @ 2018-01-23  9:15 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Darren Hart, platform-driver-x86, Linus Walleij, Marcel Holtmann,
	linux-kernel

On Mon, 22 Jan 2018, Andy Shevchenko wrote:

> The DEFINE_SHOW_ATTRIBUTE() helper macro would be useful for current
> users, which are many of them, and for new comers to decrease code
> duplication.
> 
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
>  drivers/mfd/ab8500-debugfs.c    | 14 --------------

Acked-by: Lee Jones <lee.jones@linaro.org>

>  drivers/platform/x86/pmc_atom.c | 14 --------------
>  include/linux/seq_file.h        | 14 ++++++++++++++
>  net/bluetooth/hci_debugfs.c     | 13 -------------
>  4 files changed, 14 insertions(+), 41 deletions(-)

-- 
Lee Jones
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 1/4] seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro
  2018-01-23  9:15 ` [PATCH v1 1/4] seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro Lee Jones
@ 2018-01-24  0:05   ` Darren Hart
  2018-01-24  7:11     ` Andy Shevchenko
  0 siblings, 1 reply; 9+ messages in thread
From: Darren Hart @ 2018-01-24  0:05 UTC (permalink / raw)
  To: Lee Jones
  Cc: Andy Shevchenko, platform-driver-x86, Linus Walleij,
	Marcel Holtmann, linux-kernel

On Tue, Jan 23, 2018 at 09:15:08AM +0000, Lee Jones wrote:
> On Mon, 22 Jan 2018, Andy Shevchenko wrote:
> 
> > The DEFINE_SHOW_ATTRIBUTE() helper macro would be useful for current
> > users, which are many of them, and for new comers to decrease code
> > duplication.
> > 
> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > ---
> >  drivers/mfd/ab8500-debugfs.c    | 14 --------------
> 
> Acked-by: Lee Jones <lee.jones@linaro.org>

Thanks Andy,

Acked-by: Darren Hart (VMware) <dvhart@infradead.org>


-- 
Darren Hart
VMware Open Source Technology Center

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 1/4] seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro
  2018-01-24  0:05   ` Darren Hart
@ 2018-01-24  7:11     ` Andy Shevchenko
  2018-01-24 15:12       ` Lee Jones
  0 siblings, 1 reply; 9+ messages in thread
From: Andy Shevchenko @ 2018-01-24  7:11 UTC (permalink / raw)
  To: Darren Hart, Lee Jones
  Cc: platform-driver-x86, Linus Walleij, Marcel Holtmann, linux-kernel

On Tue, 2018-01-23 at 16:05 -0800, Darren Hart wrote:
> On Tue, Jan 23, 2018 at 09:15:08AM +0000, Lee Jones wrote:
> > On Mon, 22 Jan 2018, Andy Shevchenko wrote:
> > 
> > > The DEFINE_SHOW_ATTRIBUTE() helper macro would be useful for
> > > current
> > > users, which are many of them, and for new comers to decrease code
> > > duplication.
> > > 
> > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > > ---
> > >  drivers/mfd/ab8500-debugfs.c    | 14 --------------
> > 
> > Acked-by: Lee Jones <lee.jones@linaro.org>
> 
> Thanks Andy,
> 
> Acked-by: Darren Hart (VMware) <dvhart@infradead.org>

Just to clarify a bit.

Since the patch series is based on linux-next, the idea is to push it
and send as second PR to Linus, after others will be ready in mainline.

The rationale is to allow many other current users and perhaps new
comers, e.g. [1], to utilize it already in the next cycle.

[1]: https://patchwork.kernel.org/patch/10172393/

-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 1/4] seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro
  2018-01-24  7:11     ` Andy Shevchenko
@ 2018-01-24 15:12       ` Lee Jones
  0 siblings, 0 replies; 9+ messages in thread
From: Lee Jones @ 2018-01-24 15:12 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Darren Hart, platform-driver-x86, Linus Walleij, Marcel Holtmann,
	linux-kernel

On Wed, 24 Jan 2018, Andy Shevchenko wrote:

> On Tue, 2018-01-23 at 16:05 -0800, Darren Hart wrote:
> > On Tue, Jan 23, 2018 at 09:15:08AM +0000, Lee Jones wrote:
> > > On Mon, 22 Jan 2018, Andy Shevchenko wrote:
> > > 
> > > > The DEFINE_SHOW_ATTRIBUTE() helper macro would be useful for
> > > > current
> > > > users, which are many of them, and for new comers to decrease code
> > > > duplication.
> > > > 
> > > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > > > ---
> > > >  drivers/mfd/ab8500-debugfs.c    | 14 --------------
> > > 
> > > Acked-by: Lee Jones <lee.jones@linaro.org>
> > 
> > Thanks Andy,
> > 
> > Acked-by: Darren Hart (VMware) <dvhart@infradead.org>
> 
> Just to clarify a bit.
> 
> Since the patch series is based on linux-next, the idea is to push it
> and send as second PR to Linus, after others will be ready in mainline.
> 
> The rationale is to allow many other current users and perhaps new
> comers, e.g. [1], to utilize it already in the next cycle.

You already have my Ack.  Knock yourself out.

> [1]: https://patchwork.kernel.org/patch/10172393/

-- 
Lee Jones
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 1/4] seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro
  2018-01-22 16:05 [PATCH v1 1/4] seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro Andy Shevchenko
                   ` (3 preceding siblings ...)
  2018-01-23  9:15 ` [PATCH v1 1/4] seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro Lee Jones
@ 2018-02-07 13:09 ` Linus Walleij
  4 siblings, 0 replies; 9+ messages in thread
From: Linus Walleij @ 2018-02-07 13:09 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Darren Hart, platform-driver-x86, Lee Jones, Marcel Holtmann,
	linux-kernel

On Mon, Jan 22, 2018 at 5:05 PM, Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:

> The DEFINE_SHOW_ATTRIBUTE() helper macro would be useful for current
> users, which are many of them, and for new comers to decrease code
> duplication.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Obviously a good idea.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2018-02-07 13:09 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-22 16:05 [PATCH v1 1/4] seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro Andy Shevchenko
2018-01-22 16:05 ` [PATCH v1 2/4] platform/x86: dell-laptop: Re-use DEFINE_SHOW_ATTRIBUTE() macro Andy Shevchenko
2018-01-22 16:05 ` [PATCH v1 3/4] platform/x86: ideapad-laptop: " Andy Shevchenko
2018-01-22 16:05 ` [PATCH v1 4/4] platform/x86: samsung-laptop: " Andy Shevchenko
2018-01-23  9:15 ` [PATCH v1 1/4] seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro Lee Jones
2018-01-24  0:05   ` Darren Hart
2018-01-24  7:11     ` Andy Shevchenko
2018-01-24 15:12       ` Lee Jones
2018-02-07 13:09 ` Linus Walleij

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).