On Wed, Feb 14, 2018 at 06:08:29PM +0200, Andy Shevchenko wrote: > ...instead of open coding file operations followed by custom ->open() > callbacks per each attribute. > > Cc: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> > Cc: Guenter Roeck <linux@xxxxxxxxxxxx> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Reviewed-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> > --- > drivers/usb/typec/fusb302/fusb302.c | 17 +++-------------- > drivers/usb/typec/tcpm.c | 17 +++-------------- > 2 files changed, 6 insertions(+), 28 deletions(-) > > diff --git a/drivers/usb/typec/fusb302/fusb302.c b/drivers/usb/typec/fusb302/fusb302.c > index 9ce4756adad6..da179aaf789e 100644 > --- a/drivers/usb/typec/fusb302/fusb302.c > +++ b/drivers/usb/typec/fusb302/fusb302.c > @@ -199,7 +199,7 @@ static void fusb302_log(struct fusb302_chip *chip, const char *fmt, ...) > va_end(args); > } > > -static int fusb302_seq_show(struct seq_file *s, void *v) > +static int fusb302_debug_show(struct seq_file *s, void *v) > { > struct fusb302_chip *chip = (struct fusb302_chip *)s->private; > int tail; > @@ -216,18 +216,7 @@ static int fusb302_seq_show(struct seq_file *s, void *v) > > return 0; > } > - > -static int fusb302_debug_open(struct inode *inode, struct file *file) > -{ > - return single_open(file, fusb302_seq_show, inode->i_private); > -} > - > -static const struct file_operations fusb302_debug_operations = { > - .open = fusb302_debug_open, > - .llseek = seq_lseek, > - .read = seq_read, > - .release = single_release, > -}; > +DEFINE_SHOW_ATTRIBUTE(fusb302_debug); > > static struct dentry *rootdir; > > @@ -242,7 +231,7 @@ static int fusb302_debugfs_init(struct fusb302_chip *chip) > > chip->dentry = debugfs_create_file(dev_name(chip->dev), > S_IFREG | 0444, rootdir, > - chip, &fusb302_debug_operations); > + chip, &fusb302_debug_fops); > > return 0; > } > diff --git a/drivers/usb/typec/tcpm.c b/drivers/usb/typec/tcpm.c > index f4d563ee7690..a163ba55b061 100644 > --- a/drivers/usb/typec/tcpm.c > +++ b/drivers/usb/typec/tcpm.c > @@ -506,7 +506,7 @@ static void tcpm_log_source_caps(struct tcpm_port *port) > } > } > > -static int tcpm_seq_show(struct seq_file *s, void *v) > +static int tcpm_debug_show(struct seq_file *s, void *v) > { > struct tcpm_port *port = (struct tcpm_port *)s->private; > int tail; > @@ -523,18 +523,7 @@ static int tcpm_seq_show(struct seq_file *s, void *v) > > return 0; > } > - > -static int tcpm_debug_open(struct inode *inode, struct file *file) > -{ > - return single_open(file, tcpm_seq_show, inode->i_private); > -} > - > -static const struct file_operations tcpm_debug_operations = { > - .open = tcpm_debug_open, > - .llseek = seq_lseek, > - .read = seq_read, > - .release = single_release, > -}; > +DEFINE_SHOW_ATTRIBUTE(tcpm_debug); > > static struct dentry *rootdir; > > @@ -550,7 +539,7 @@ static int tcpm_debugfs_init(struct tcpm_port *port) > > port->dentry = debugfs_create_file(dev_name(port->dev), > S_IFREG | 0444, rootdir, > - port, &tcpm_debug_operations); > + port, &tcpm_debug_fops); > > return 0; > } > -- > 2.15.1 -- heikki -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html