Re: [PATCH 06/10] platform/x86: toshiba_acpi: use devm_led_classdev_register() for LEDs

2021-03-29 Thread Jonathan Cameron
On Wed, 24 Mar 2021 14:55:44 +0200
Alexandru Ardelean  wrote:

> With this change the deregistration of the LED objects is made symmetrical
> (and in reverse) with the registration. We also can get rid of the calls
> to led_classdev_unregister(), because the LED objects will be cleaned up
> when the reference to the parent device object goes to zero.
> 
> This change also unifies the reference to the parent object from
> '_dev->dev' and '>acpi_dev->dev' to 'parent', since it's the same
> reference, and makes the code-lines a bit shorter.
> 
> Signed-off-by: Alexandru Ardelean 
Reviewed-by: Jonathan Cameron 

> ---
>  drivers/platform/x86/toshiba_acpi.c | 16 +---
>  1 file changed, 9 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/platform/x86/toshiba_acpi.c 
> b/drivers/platform/x86/toshiba_acpi.c
> index ada2a2d8c913..e787c140eec2 100644
> --- a/drivers/platform/x86/toshiba_acpi.c
> +++ b/drivers/platform/x86/toshiba_acpi.c
> @@ -3001,10 +3001,6 @@ static int toshiba_acpi_remove(struct acpi_device 
> *acpi_dev)
>   sysfs_remove_group(>acpi_dev->dev.kobj,
>  _attr_group);
>  
> - led_classdev_unregister(>led_dev);
> - led_classdev_unregister(>kbd_led);
> - led_classdev_unregister(>eco_led);
> -
>   if (dev->wwan_rfk) {
>   rfkill_unregister(dev->wwan_rfk);
>   rfkill_destroy(dev->wwan_rfk);
> @@ -3114,7 +3110,9 @@ static int toshiba_acpi_add(struct acpi_device 
> *acpi_dev)
>   dev->led_dev.max_brightness = 1;
>   dev->led_dev.brightness_set = toshiba_illumination_set;
>   dev->led_dev.brightness_get = toshiba_illumination_get;
> - led_classdev_register(_dev->dev, >led_dev);
> + ret = devm_led_classdev_register(parent, >led_dev);
> + if (ret)
> + return ret;
>   }
>  
>   toshiba_eco_mode_available(dev);
> @@ -3123,7 +3121,9 @@ static int toshiba_acpi_add(struct acpi_device 
> *acpi_dev)
>   dev->eco_led.max_brightness = 1;
>   dev->eco_led.brightness_set = toshiba_eco_mode_set_status;
>   dev->eco_led.brightness_get = toshiba_eco_mode_get_status;
> - led_classdev_register(>acpi_dev->dev, >eco_led);
> + ret = devm_led_classdev_register(parent, >eco_led);
> + if (ret)
> + return ret;
>   }
>  
>   toshiba_kbd_illum_available(dev);
> @@ -3139,7 +3139,9 @@ static int toshiba_acpi_add(struct acpi_device 
> *acpi_dev)
>   dev->kbd_led.max_brightness = 1;
>   dev->kbd_led.brightness_set = toshiba_kbd_backlight_set;
>   dev->kbd_led.brightness_get = toshiba_kbd_backlight_get;
> - led_classdev_register(>acpi_dev->dev, >kbd_led);
> + ret = devm_led_classdev_register(parent, >kbd_led);
> + if (ret)
> + return ret;
>   }
>  
>   ret = toshiba_touchpad_get(dev, );



[PATCH 06/10] platform/x86: toshiba_acpi: use devm_led_classdev_register() for LEDs

2021-03-24 Thread Alexandru Ardelean
With this change the deregistration of the LED objects is made symmetrical
(and in reverse) with the registration. We also can get rid of the calls
to led_classdev_unregister(), because the LED objects will be cleaned up
when the reference to the parent device object goes to zero.

This change also unifies the reference to the parent object from
'_dev->dev' and '>acpi_dev->dev' to 'parent', since it's the same
reference, and makes the code-lines a bit shorter.

Signed-off-by: Alexandru Ardelean 
---
 drivers/platform/x86/toshiba_acpi.c | 16 +---
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/platform/x86/toshiba_acpi.c 
b/drivers/platform/x86/toshiba_acpi.c
index ada2a2d8c913..e787c140eec2 100644
--- a/drivers/platform/x86/toshiba_acpi.c
+++ b/drivers/platform/x86/toshiba_acpi.c
@@ -3001,10 +3001,6 @@ static int toshiba_acpi_remove(struct acpi_device 
*acpi_dev)
sysfs_remove_group(>acpi_dev->dev.kobj,
   _attr_group);
 
-   led_classdev_unregister(>led_dev);
-   led_classdev_unregister(>kbd_led);
-   led_classdev_unregister(>eco_led);
-
if (dev->wwan_rfk) {
rfkill_unregister(dev->wwan_rfk);
rfkill_destroy(dev->wwan_rfk);
@@ -3114,7 +3110,9 @@ static int toshiba_acpi_add(struct acpi_device *acpi_dev)
dev->led_dev.max_brightness = 1;
dev->led_dev.brightness_set = toshiba_illumination_set;
dev->led_dev.brightness_get = toshiba_illumination_get;
-   led_classdev_register(_dev->dev, >led_dev);
+   ret = devm_led_classdev_register(parent, >led_dev);
+   if (ret)
+   return ret;
}
 
toshiba_eco_mode_available(dev);
@@ -3123,7 +3121,9 @@ static int toshiba_acpi_add(struct acpi_device *acpi_dev)
dev->eco_led.max_brightness = 1;
dev->eco_led.brightness_set = toshiba_eco_mode_set_status;
dev->eco_led.brightness_get = toshiba_eco_mode_get_status;
-   led_classdev_register(>acpi_dev->dev, >eco_led);
+   ret = devm_led_classdev_register(parent, >eco_led);
+   if (ret)
+   return ret;
}
 
toshiba_kbd_illum_available(dev);
@@ -3139,7 +3139,9 @@ static int toshiba_acpi_add(struct acpi_device *acpi_dev)
dev->kbd_led.max_brightness = 1;
dev->kbd_led.brightness_set = toshiba_kbd_backlight_set;
dev->kbd_led.brightness_get = toshiba_kbd_backlight_get;
-   led_classdev_register(>acpi_dev->dev, >kbd_led);
+   ret = devm_led_classdev_register(parent, >kbd_led);
+   if (ret)
+   return ret;
}
 
ret = toshiba_touchpad_get(dev, );
-- 
2.30.2