Re: leds: remove led_brightness

From: Bagas Sanjaya
Date: Thu Jul 25 2024 - 23:32:02 EST


On Tue, Jul 23, 2024 at 10:03:52AM -0300, Guilherme Giácomo Simões wrote:
> Hi community, I hope this email finds you well
> I maked a change in kernel linux, for fulfill a TODO in
> drivers/leds/TODO that say:
> >* On/off LEDs should have max_brightness of 1
> >* Get rid of enum led_brightness
> >
> >It is really an integer, as maximum is configurable. Get rid of it, or
> >make it into typedef or something.
>
> Then I removed the led_brightness. And in the files that enum
> led_brightness was used I replace to "int" ... And in the file
> "include/linux/leds.h" I created constants like:
> +#define LED_OFF 0
> +#define LED_ON 1
> +#define LED_HALF 127
> +#define LED_FULL 255
>
> because in some files when has a compare like "brightness == LED_OFF"
> it will work yet.
>
> The includes/linux/leds.h diff:
> -/* This is obsolete/useless. We now support variable maximum brightness. */
> -enum led_brightness {
> - LED_OFF = 0,
> - LED_ON = 1,
> - LED_HALF = 127,
> - LED_FULL = 255,
> -};
> +// default values for leds brightness
> +#define LED_OFF 0
> +#define LED_ON 1
> +#define LED_HALF 127
> +#define LED_FULL 255
>
> enum led_default_state {
> LEDS_DEFSTATE_OFF = 0,
> @@ -127,15 +125,15 @@ struct led_classdev {
> * that can sleep while setting brightness.
> */
> void (*brightness_set)(struct led_classdev *led_cdev,
> - enum led_brightness brightness);
> + int brightness);
> /*
> * Set LED brightness level immediately - it can block the caller for
> * the time required for accessing a LED device register.
> */
> int (*brightness_set_blocking)(struct led_classdev *led_cdev,
> - enum led_brightness brightness);
> + int brightness);
> /* Get LED brightness level */
> - enum led_brightness (*brightness_get)(struct led_classdev *led_cdev);
> + int (*brightness_get)(struct led_classdev *led_cdev);
>
> /*
> * Activate hardware accelerated blink, delays are in milliseconds
> @@ -486,7 +484,7 @@ int devm_led_trigger_register(struct device *dev,
> void led_trigger_register_simple(const char *name,
> struct led_trigger **trigger);
> void led_trigger_unregister_simple(struct led_trigger *trigger);
> -void led_trigger_event(struct led_trigger *trigger, enum
> led_brightness event);
> +void led_trigger_event(struct led_trigger *trigger, int event);
> void led_trigger_blink(struct led_trigger *trigger, unsigned long delay_on,
> unsigned long delay_off);
>
>
>
> How the kernel has a lot of files that use this led_brightness, the
> change is very very big.
> I have some questions:
>
> Does my change make sense?
>
> How can I split the change into several patches for sending to
> different email lists and still have the split change make sense in
> the email lists I'm going to send it to? can I reference the commit in
> which I delete the enum?

tl;dr: send the formal patch (see Documentation/process/submitting-patches.rst
for how to do that). Make sure to Cc: relevant maintainers (see MAINTAINERS
in the kernel source tree).

Bye!

--
An old man doll... just what I always wanted! - Clara

Attachment: signature.asc
Description: PGP signature