diff mbox series

[05/11] olpc: x01: convert platform driver to use dev_groups

Message ID 20190704084617.3602-6-gregkh@linuxfoundation.org (mailing list archive)
State Deferred, archived
Headers show
Series Platform drivers, provide a way to add sysfs groups easily | expand

Commit Message

Greg KH July 4, 2019, 8:46 a.m. UTC
Platform drivers now have the option to have the platform core create
and remove any needed sysfs attribute files.  So take advantage of that
and do not register "by hand" a lid sysfs file.

Cc: Darren Hart <dvhart@infradead.org>
Cc: Andy Shevchenko <andy@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: x86@kernel.org
Cc: platform-driver-x86@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/x86/platform/olpc/olpc-xo1-sci.c | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

Comments

Andy Shevchenko July 4, 2019, 1:28 p.m. UTC | #1
On Thu, Jul 4, 2019 at 11:47 AM Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
>
> Platform drivers now have the option to have the platform core create
> and remove any needed sysfs attribute files.  So take advantage of that
> and do not register "by hand" a lid sysfs file.
>

Acked-by: Andy Shevchenko <andy.shevchenko@gmail.com>

> Cc: Darren Hart <dvhart@infradead.org>
> Cc: Andy Shevchenko <andy@infradead.org>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: Borislav Petkov <bp@alien8.de>
> Cc: "H. Peter Anvin" <hpa@zytor.com>
> Cc: x86@kernel.org
> Cc: platform-driver-x86@vger.kernel.org
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---
>  arch/x86/platform/olpc/olpc-xo1-sci.c | 17 +++++++----------
>  1 file changed, 7 insertions(+), 10 deletions(-)
>
> diff --git a/arch/x86/platform/olpc/olpc-xo1-sci.c b/arch/x86/platform/olpc/olpc-xo1-sci.c
> index 25ce1b3b0732..ce1948918dd2 100644
> --- a/arch/x86/platform/olpc/olpc-xo1-sci.c
> +++ b/arch/x86/platform/olpc/olpc-xo1-sci.c
> @@ -157,6 +157,12 @@ static ssize_t lid_wake_mode_set(struct device *dev,
>  static DEVICE_ATTR(lid_wake_mode, S_IWUSR | S_IRUGO, lid_wake_mode_show,
>                    lid_wake_mode_set);
>
> +static struct attribute *lid_attrs[] = {
> +       &dev_attr_lid_wake_mode.attr,
> +       NULL,
> +};
> +ATTRIBUTE_GROUPS(lid);
> +
>  /*
>   * Process all items in the EC's SCI queue.
>   *
> @@ -510,17 +516,8 @@ static int setup_lid_switch(struct platform_device *pdev)
>                 goto err_register;
>         }
>
> -       r = device_create_file(&lid_switch_idev->dev, &dev_attr_lid_wake_mode);
> -       if (r) {
> -               dev_err(&pdev->dev, "failed to create wake mode attr: %d\n", r);
> -               goto err_create_attr;
> -       }
> -
>         return 0;
>
> -err_create_attr:
> -       input_unregister_device(lid_switch_idev);
> -       lid_switch_idev = NULL;
>  err_register:
>         input_free_device(lid_switch_idev);
>         return r;
> @@ -528,7 +525,6 @@ static int setup_lid_switch(struct platform_device *pdev)
>
>  static void free_lid_switch(void)
>  {
> -       device_remove_file(&lid_switch_idev->dev, &dev_attr_lid_wake_mode);
>         input_unregister_device(lid_switch_idev);
>  }
>
> @@ -629,6 +625,7 @@ static struct platform_driver xo1_sci_driver = {
>         .remove = xo1_sci_remove,
>         .suspend = xo1_sci_suspend,
>         .resume = xo1_sci_resume,
> +       .dev_groups = lid_groups,
>  };
>
>  static int __init xo1_sci_init(void)
> --
> 2.22.0
>
diff mbox series

Patch

diff --git a/arch/x86/platform/olpc/olpc-xo1-sci.c b/arch/x86/platform/olpc/olpc-xo1-sci.c
index 25ce1b3b0732..ce1948918dd2 100644
--- a/arch/x86/platform/olpc/olpc-xo1-sci.c
+++ b/arch/x86/platform/olpc/olpc-xo1-sci.c
@@ -157,6 +157,12 @@  static ssize_t lid_wake_mode_set(struct device *dev,
 static DEVICE_ATTR(lid_wake_mode, S_IWUSR | S_IRUGO, lid_wake_mode_show,
 		   lid_wake_mode_set);
 
+static struct attribute *lid_attrs[] = {
+	&dev_attr_lid_wake_mode.attr,
+	NULL,
+};
+ATTRIBUTE_GROUPS(lid);
+
 /*
  * Process all items in the EC's SCI queue.
  *
@@ -510,17 +516,8 @@  static int setup_lid_switch(struct platform_device *pdev)
 		goto err_register;
 	}
 
-	r = device_create_file(&lid_switch_idev->dev, &dev_attr_lid_wake_mode);
-	if (r) {
-		dev_err(&pdev->dev, "failed to create wake mode attr: %d\n", r);
-		goto err_create_attr;
-	}
-
 	return 0;
 
-err_create_attr:
-	input_unregister_device(lid_switch_idev);
-	lid_switch_idev = NULL;
 err_register:
 	input_free_device(lid_switch_idev);
 	return r;
@@ -528,7 +525,6 @@  static int setup_lid_switch(struct platform_device *pdev)
 
 static void free_lid_switch(void)
 {
-	device_remove_file(&lid_switch_idev->dev, &dev_attr_lid_wake_mode);
 	input_unregister_device(lid_switch_idev);
 }
 
@@ -629,6 +625,7 @@  static struct platform_driver xo1_sci_driver = {
 	.remove = xo1_sci_remove,
 	.suspend = xo1_sci_suspend,
 	.resume = xo1_sci_resume,
+	.dev_groups = lid_groups,
 };
 
 static int __init xo1_sci_init(void)