From a08f06bb7a0743a7fc8d571899c93d882468096e Mon Sep 17 00:00:00 2001 From: Andy Shevchenko Date: Mon, 22 Jan 2018 18:05:43 +0200 Subject: seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro 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. Acked-by: Lee Jones Acked-by: Darren Hart (VMware) Signed-off-by: Andy Shevchenko --- drivers/mfd/ab8500-debugfs.c | 14 -------------- drivers/platform/x86/pmc_atom.c | 14 -------------- 2 files changed, 28 deletions(-) (limited to 'drivers') diff --git a/drivers/mfd/ab8500-debugfs.c b/drivers/mfd/ab8500-debugfs.c index 1afa27de7191..fcb3a92ae85f 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); -- cgit v1.2.3 From b04eb8aaab8d0eef224247075528c7545fd2a50c Mon Sep 17 00:00:00 2001 From: Andy Shevchenko Date: Mon, 22 Jan 2018 18:05:44 +0200 Subject: platform/x86: dell-laptop: Re-use DEFINE_SHOW_ATTRIBUTE() macro ...instead of open coding file operations followed by custom ->open() callbacks per each attribute. Signed-off-by: Andy Shevchenko --- drivers/platform/x86/dell-laptop.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) (limited to 'drivers') diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c index a7b141992cb3..2a68f59d2228 100644 --- a/drivers/platform/x86/dell-laptop.c +++ b/drivers/platform/x86/dell-laptop.c @@ -636,19 +636,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) { -- cgit v1.2.3 From 334c4efd295cda01069cab03bf753537dc20c3eb Mon Sep 17 00:00:00 2001 From: Andy Shevchenko Date: Mon, 22 Jan 2018 18:05:45 +0200 Subject: platform/x86: ideapad-laptop: Re-use DEFINE_SHOW_ATTRIBUTE() macro ...instead of open coding file operations followed by custom ->open() callbacks per each attribute. Signed-off-by: Andy Shevchenko --- drivers/platform/x86/ideapad-laptop.c | 28 ++-------------------------- 1 file changed, 2 insertions(+), 26 deletions(-) (limited to 'drivers') diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c index b2bbddd09a52..5b6f18b18801 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) { -- cgit v1.2.3 From 9a7c551ba7aae3648473179f234e960cfd46eaf4 Mon Sep 17 00:00:00 2001 From: Andy Shevchenko Date: Mon, 22 Jan 2018 18:05:46 +0200 Subject: platform/x86: samsung-laptop: Re-use DEFINE_SHOW_ATTRIBUTE() macro ...instead of open coding file operations followed by custom ->open() callbacks per each attribute. Signed-off-by: Andy Shevchenko --- drivers/platform/x86/samsung-laptop.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) (limited to 'drivers') 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; -- cgit v1.2.3