Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1686360 > unrolled thread

Re: [PATCH v3] backlight: lm3630a: bump REG_MAX value to 0x50 instead of 0x1F

Started byLee Jones <lee.jones@linaro.org>
First post2017-07-13 10:20 +0200
Last post2017-07-13 10:20 +0200
Articles 1 — 1 participant

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH v3] backlight: lm3630a: bump REG_MAX value to 0x50  instead of 0x1F Lee Jones <lee.jones@linaro.org> - 2017-07-13 10:20 +0200

#1686360 — Re: [PATCH v3] backlight: lm3630a: bump REG_MAX value to 0x50 instead of 0x1F

FromLee Jones <lee.jones@linaro.org>
Date2017-07-13 10:20 +0200
SubjectRe: [PATCH v3] backlight: lm3630a: bump REG_MAX value to 0x50 instead of 0x1F
Message-ID<u2HvP-37W-1@gated-at.bofh.it>
On Fri, 23 Jun 2017, Bhushan Shah wrote:

> In the lm3630a_chip_init we try to write to 0x50 register, which is
> higher value then the max_register value, this resulted in regmap_write
> return -EIO.
> 
> Fix this by bumping REG_MAX value to 0x50.
> 
> This code was introduced with the chip revision in commit 28e64a68a2ef,
> however setting filter strength was failing silently because it used
> unsigned int for storing and comparing the return values. Bug related to
> signedness was fixed in 2a0c316bf3cc, which made it error out correctly
> instead of failing silently.
> 
> I found this issue by using this driver on LGE Nexus 5 (hammerhead).
> After this commit lm3630a_chip_init succeeds instead of failing with
> -EIO.
> 
> Fixes: 28e64a68a2ef ("backlight: lm3630: apply chip revision")
> Fixes: 2a0c316bf3cc ("drivers/video/backlight/lm3630a_bl.c: fix
> signedness bug in lm3630a_chip_init()")
> 
> Signed-off-by: Bhushan Shah <bshah@kde.org>
> Suggested-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> ---
> 
> Changes since v2:
>     - Include information about commits which introduced bug in commit message
>     - Include information about test hardware in commit message
>     - Expand define name to REG_FILTER_STRENGTH
> 
>  drivers/video/backlight/lm3630a_bl.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)

Applied, thanks.

> diff --git a/drivers/video/backlight/lm3630a_bl.c b/drivers/video/backlight/lm3630a_bl.c
> index 60d6c2ac87aa..2030a6b77a09 100644
> --- a/drivers/video/backlight/lm3630a_bl.c
> +++ b/drivers/video/backlight/lm3630a_bl.c
> @@ -31,7 +31,8 @@
>  #define REG_FAULT	0x0B
>  #define REG_PWM_OUTLOW	0x12
>  #define REG_PWM_OUTHIGH	0x13
> -#define REG_MAX		0x1F
> +#define REG_FILTER_STRENGTH	0x50
> +#define REG_MAX		0x50
>  
>  #define INT_DEBOUNCE_MSEC	10
>  struct lm3630a_chip {
> @@ -80,7 +81,7 @@ static int lm3630a_chip_init(struct lm3630a_chip *pchip)
>  
>  	usleep_range(1000, 2000);
>  	/* set Filter Strength Register */
> -	rval = lm3630a_write(pchip, 0x50, 0x03);
> +	rval = lm3630a_write(pchip, REG_FILTER_STRENGTH, 0x03);
>  	/* set Cofig. register */
>  	rval |= lm3630a_update(pchip, REG_CONFIG, 0x07, pdata->pwm_ctrl);
>  	/* set boost control */

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

[toc] | [standalone]


Back to top | Article view | linux.kernel


csiph-web