Use DEFINE_SHOW_ATTRIBUTE macro to simplify the code. Signed-off-by: Yangtao Li <tiny.win...@gmail.com> --- drivers/mfd/ab3100-core.c | 15 ++------------- drivers/mfd/ab3100-otp.c | 16 +++------------- drivers/mfd/tps65010.c | 14 ++------------ 3 files changed, 7 insertions(+), 38 deletions(-)
diff --git a/drivers/mfd/ab3100-core.c b/drivers/mfd/ab3100-core.c index 099635bed188..3fe448a29389 100644 --- a/drivers/mfd/ab3100-core.c +++ b/drivers/mfd/ab3100-core.c @@ -451,7 +451,7 @@ static irqreturn_t ab3100_irq_handler(int irq, void *data) /* * Some debugfs entries only exposed if we're using debug */ -static int ab3100_registers_print(struct seq_file *s, void *p) +static int ab3100_registers_show(struct seq_file *s, void *p) { struct ab3100 *ab3100 = s->private; u8 value; @@ -466,18 +466,7 @@ static int ab3100_registers_print(struct seq_file *s, void *p) return 0; } -static int ab3100_registers_open(struct inode *inode, struct file *file) -{ - return single_open(file, ab3100_registers_print, inode->i_private); -} - -static const struct file_operations ab3100_registers_fops = { - .open = ab3100_registers_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, - .owner = THIS_MODULE, -}; +DEFINE_SHOW_ATTRIBUTE(ab3100_registers); struct ab3100_get_set_reg_priv { struct ab3100 *ab3100; diff --git a/drivers/mfd/ab3100-otp.c b/drivers/mfd/ab3100-otp.c index 55b207a4b336..24873e1ae865 100644 --- a/drivers/mfd/ab3100-otp.c +++ b/drivers/mfd/ab3100-otp.c @@ -96,7 +96,7 @@ static int __init ab3100_otp_read(struct ab3100_otp *otp) * the contents of the OTP. */ #ifdef CONFIG_DEBUG_FS -static int ab3100_show_otp(struct seq_file *s, void *v) +static int ab3100_otp_show(struct seq_file *s, void *v) { struct ab3100_otp *otp = s->private; @@ -110,24 +110,14 @@ static int ab3100_show_otp(struct seq_file *s, void *v) return 0; } -static int ab3100_otp_open(struct inode *inode, struct file *file) -{ - return single_open(file, ab3100_show_otp, inode->i_private); -} - -static const struct file_operations ab3100_otp_operations = { - .open = ab3100_otp_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; +DEFINE_SHOW_ATTRIBUTE(ab3100_otp); static int __init ab3100_otp_init_debugfs(struct device *dev, struct ab3100_otp *otp) { otp->debugfs = debugfs_create_file("ab3100_otp", S_IFREG | S_IRUGO, NULL, otp, - &ab3100_otp_operations); + &ab3100_otp_fops); if (!otp->debugfs) { dev_err(dev, "AB3100 debugfs OTP file registration failed!\n"); return -ENOENT; diff --git a/drivers/mfd/tps65010.c b/drivers/mfd/tps65010.c index 2ab67386b4ef..4202b5c40f18 100644 --- a/drivers/mfd/tps65010.c +++ b/drivers/mfd/tps65010.c @@ -192,7 +192,7 @@ static inline void show_chgconfig(int por, const char *label, u8 chgconfig) { } #ifdef CONFIG_DEBUG_FS -static int dbg_show(struct seq_file *s, void *_) +static int debug_show(struct seq_file *s, void *_) { struct tps65010 *tps = s->private; u8 value, v2; @@ -296,17 +296,7 @@ static int dbg_show(struct seq_file *s, void *_) return 0; } -static int dbg_tps_open(struct inode *inode, struct file *file) -{ - return single_open(file, dbg_show, inode->i_private); -} - -static const struct file_operations debug_fops = { - .open = dbg_tps_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; +DEFINE_SHOW_ATTRIBUTE(debug); #define DEBUG_FOPS &debug_fops -- 2.17.0