From 5441b6ac8991688cb3279bd02c200b41aeee00ac Mon Sep 17 00:00:00 2001 From: Jishnu Prakash Date: Fri, 7 May 2021 14:44:17 +0530 Subject: [PATCH] backlight: qcom-spmi-wled: Update CABC disable sequence for PM7325B WLED Update CABC disable sequence for PM7325B WLED to improve low dimming flicker. Change-Id: Iba55f17c16f35c084477f5871fe2acd265a913fb Signed-off-by: Jishnu Prakash --- drivers/video/backlight/qcom-spmi-wled.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/drivers/video/backlight/qcom-spmi-wled.c b/drivers/video/backlight/qcom-spmi-wled.c index e3b4d7f29ba7..3ac367e1ec32 100644 --- a/drivers/video/backlight/qcom-spmi-wled.c +++ b/drivers/video/backlight/qcom-spmi-wled.c @@ -147,6 +147,9 @@ #define WLED5_SINK_MOD_B_BRT_LSB_REG 0x63 #define WLED5_SINK_MOD_B_BRT_MSB_REG 0x64 +#define WLED5_SINK_CABC_STRETCH_CTL_REG 0x57 +#define WLED5_SINK_EN_CABC_STRETCH BIT(7) + #define WLED5_SINK_MOD_SYNC_BIT_REG 0x65 #define WLED5_SINK_SYNC_MODA_BIT BIT(0) #define WLED5_SINK_SYNC_MODB_BIT BIT(1) @@ -185,6 +188,9 @@ #define WLED5_EN_EXP_LUT BIT(6) #define WLED5_SLEW_RAMP_TIME_SEL GENMASK(3, 0) +#define WLED5_SINK_DIG_HYS_FILT_REG 0xbc +#define WLED5_SINK_LSB_NOISE_THRESH GENMASK(2, 0) + #define WLED5_SINK_DIMMING_EXP_LUT0_LSB_REG 0xc0 #define WLED5_SINK_DIMMING_EXP_LUT0_MSB_REG 0xc1 #define WLED5_SINK_DIMMING_EXP_LUT1_LSB_REG 0xc2 @@ -683,8 +689,22 @@ static int wled5_cabc_config(struct wled *wled, bool enable) return rc; } - if (!wled->cfg.cabc_sel) + if (!wled->cfg.cabc_sel) { wled->cabc_disabled = true; + if (*wled->version == WLED_PM7325B) { + rc = regmap_update_bits(wled->regmap, + wled->sink_addr + WLED5_SINK_CABC_STRETCH_CTL_REG, + WLED5_SINK_EN_CABC_STRETCH, 0); + if (rc < 0) + return rc; + + rc = regmap_update_bits(wled->regmap, + wled->sink_addr + WLED5_SINK_DIG_HYS_FILT_REG, + WLED5_SINK_LSB_NOISE_THRESH, 0); + if (rc < 0) + return rc; + } + } return 0; }