On 9/14/26 8:14 PM, David Heidelberg via B4 Relay wrote: > From: David Heidelberg <[email protected]> > > WLED3 has a 16-bit brightness register pair per string, at 0x40 + 2*n, > which is what the pm8941-wled driver wrote to: > > rc = regmap_bulk_write(wled->regmap, > wled->addr + WLED3_CTRL_REG_VAL_BASE + 2 * i, > v, 2); > > The restructuring for WLED3 turned that into WLED3_SINK_REG_BRIGHT(n), > defined as 0x40 + n, so the two byte writes for consecutive strings > overlap: string 1 overwrites the MSB of string 0 with its own LSB, and > with the default three strings only string 1 ends up with the requested > value. > > Use the 2 byte stride. > > Fixes: 775d2ffb4af6 ("backlight: qcom-wled: Restructure the driver for WLED3") > Cc: [email protected] > Assisted-by: LLM > Signed-off-by: David Heidelberg <[email protected]> > --- > drivers/video/backlight/qcom-wled.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/video/backlight/qcom-wled.c > b/drivers/video/backlight/qcom-wled.c > index a76158a298335..e1962c2d90ed4 100644 > --- a/drivers/video/backlight/qcom-wled.c > +++ b/drivers/video/backlight/qcom-wled.c > @@ -54,17 +54,17 @@ > #define WLED3_SINK_REG_SYNC 0x47 > #define WLED3_SINK_REG_SYNC_CLEAR 0x00 > > #define WLED3_SINK_REG_CURR_SINK 0x4f > #define WLED3_SINK_REG_CURR_SINK_MASK GENMASK(7, 5) > #define WLED3_SINK_REG_CURR_SINK_SHFT 5 > > /* WLED3 specific per-'string' registers below */ > -#define WLED3_SINK_REG_BRIGHT(n) (0x40 + n) > +#define WLED3_SINK_REG_BRIGHT(n) (0x40 + (n * 0x10))
You said 2 in the commit message and you set it to 2 in patch 4 Konrad
