leds: Change led_trigger_blink[_oneshot]() delay parameters to pass-by-value
authorHans de Goede <hdegoede@redhat.com>
Wed, 10 May 2023 16:22:31 +0000 (18:22 +0200)
committerLee Jones <lee@kernel.org>
Thu, 25 May 2023 11:16:27 +0000 (12:16 +0100)
commite298d8a38b2341865f9feb04591aabb109e8bb13
treef713d72e63db8f85c61635ca0cce46741fffa98a
parentd9ff8a8eecf8ad70aadc54cce39208b3957f2c6a
leds: Change led_trigger_blink[_oneshot]() delay parameters to pass-by-value

led_blink_set[_oneshot]()'s delay_on and delay_off function parameters
are pass by reference, so that hw-blink implementations can report
back the actual achieved delays when the values have been rounded
to something the hw supports.

This is really only interesting for the sysfs API / the timer trigger.
Other triggers don't really care about this and none of the callers of
led_trigger_blink[_oneshot]() do anything with the returned delay values.

Change the led_trigger_blink[_oneshot]() delay parameters to pass-by-value,
there are 2 reasons for this:

1. led_cdev->blink_set() may sleep, while led_trigger_blink() may not.
So on hw where led_cdev->blink_set() sleeps the call needs to be deferred
to a workqueue, in which case the actual achieved delays are unknown
(this is a preparation patch for the deferring).

2. Since the callers don't care about the actual achieved delays, allowing
callers to directly pass a value leads to simpler code for most callers.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Tested-by: Yauhen Kharuzhy <jekhor@gmail.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Acked-by: Florian Westphal <fw@strlen.de>
Link: https://lore.kernel.org/r/20230510162234.291439-2-hdegoede@redhat.com
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/leds/led-triggers.c
drivers/leds/trigger/ledtrig-disk.c
drivers/leds/trigger/ledtrig-mtd.c
drivers/net/arcnet/arcnet.c
drivers/power/supply/power_supply_leds.c
drivers/usb/common/led.c
include/linux/leds.h
net/mac80211/led.c
net/mac80211/led.h
net/netfilter/xt_LED.c