Re: [PATCH] leds: ledtrig-pattern: Use last_repeat when applying hw pattern

From: Bjorn Andersson
Date: Fri Apr 30 2021 - 09:41:31 EST


On Sun 18 Apr 16:34 CDT 2021, Marijn Suijten wrote:

> `last_repeat` holds the actual value requested by the user whereas
> `repeat` is a software iteration variable that is unused in hardware
> patterns.
>
> Furthermore `last_repeat` is the field returned to the user when reading
> the `repeat` sysfs property. This field is initialized to `-1` which is
> - together with `1` - the only valid value in the upcoming Qualcomm LPG
> driver. It is thus unexpected when `repeat` with an initialization
> value of `0` is passed into the the driver, when the sysfs property
> clearly presents a value of `-1`.
>

Reviewed-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>
Tested-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>

Regards,
Bjorn

> Signed-off-by: Marijn Suijten <marijn.suijten@xxxxxxxxxxxxxx>
> ---
> drivers/leds/trigger/ledtrig-pattern.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/leds/trigger/ledtrig-pattern.c b/drivers/leds/trigger/ledtrig-pattern.c
> index 4d138d5317e9..2853b75df338 100644
> --- a/drivers/leds/trigger/ledtrig-pattern.c
> +++ b/drivers/leds/trigger/ledtrig-pattern.c
> @@ -126,7 +126,8 @@ static int pattern_trig_start_pattern(struct led_classdev *led_cdev)
>
> if (data->is_hw_pattern) {
> return led_cdev->pattern_set(led_cdev, data->patterns,
> - data->npatterns, data->repeat);
> + data->npatterns,
> + data->last_repeat);
> }
>
> /* At least 2 tuples for software pattern. */
> --
> 2.31.1
>