The qcom-wled OVP interrupt is enabled at probe whenever the module is already on, but the driver still believes the backlight is off, so the first brightness update re-enables the interrupt and trips "Unbalanced enable for IRQ". sdm845-mainline has carried a workaround for years and Joel posted a flag-based version last October [1], which Konrad and Daniel asked to be replaced by something that does not track the IRQ state by hand.
The first patch is unrelated and fell out of writing the readback: the WLED3 brightness register stride has been one byte instead of two since the 2019 restructuring, so multi-string pm8941 boards only program one string correctly. Untested, I have no WLED3 board; it restores what pm8941-wled.c did and matches the downstream leds-qpnp.c layout. [1] https://lore.kernel.org/all/20251021-qcom-wled-fix-unbalanced-ovp-irq-enable-v2-1-7ff115b4f...@joelselvaraj.com/ Signed-off-by: David Heidelberg <[email protected]> --- Changes in v2: - Add a fix for the WLED3 brightness register stride. - Add patch reading the programmed brightness back via backlight_ops.get_brightness. (Konrad) - Note the brightness readback is done in the follow-up to the first patch. - Link to v1: https://patch.msgid.link/[email protected] --- David Heidelberg (3): backlight: qcom-wled: Fix WLED3 brightness register stride backlight: qcom-wled: Fix unbalanced OVP IRQ enable at probe backlight: qcom-wled: Read back the programmed brightness at probe drivers/video/backlight/qcom-wled.c | 88 +++++++++++++++++++++++++++++++------ 1 file changed, 75 insertions(+), 13 deletions(-) --- base-commit: 944a035ecca915ae947905dcfb03f2b9dc6d032c change-id: 20260908-qcom-wled-backlight-fd9574027353 Best regards, -- David Heidelberg <[email protected]>

