mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
backlight: qcom-wled: Fix WLED3 brightness register stride
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: 775d2ffb4a ("backlight: qcom-wled: Restructure the driver for WLED3")
Cc: stable@vger.kernel.org
Assisted-by: LLM
Signed-off-by: David Heidelberg <david@ixit.cz>
Reviewed-by: Daniel Thompson (RISCstar) <danielt@kernel.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://patch.msgid.link/20260921-qcom-wled-backlight-v4-2-bab8c7ef73cb@ixit.cz
Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
parent
1dbd46d4b2
commit
22672f81f0
|
|
@ -59,7 +59,7 @@
|
|||
#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 * 0x2))
|
||||
|
||||
#define WLED3_SINK_REG_STR_MOD_EN(n) (0x60 + (n * 0x10))
|
||||
#define WLED3_SINK_REG_STR_MOD_MASK BIT(7)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user