mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
leds: qcom-lpg: Propagate errors in .get_state() to the caller
.get_state() can return an error indication. Make use of it to propagate failing hardware accesses. Acked-by: Pavel Machek <pavel@ucw.cz> Acked-by: Conor Dooley <conor.dooley@microchip.com> Link: https://lore.kernel.org/r/20221130152148.2769768-5-u.kleine-koenig@pengutronix.de Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
This commit is contained in:
parent
f00de18066
commit
fea768cf68
@ -982,20 +982,20 @@ static int lpg_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
|
||||
|
||||
ret = regmap_read(lpg->map, chan->base + LPG_SIZE_CLK_REG, &val);
|
||||
if (ret)
|
||||
return 0;
|
||||
return ret;
|
||||
|
||||
refclk = lpg_clk_rates[val & PWM_CLK_SELECT_MASK];
|
||||
if (refclk) {
|
||||
ret = regmap_read(lpg->map, chan->base + LPG_PREDIV_CLK_REG, &val);
|
||||
if (ret)
|
||||
return 0;
|
||||
return ret;
|
||||
|
||||
pre_div = lpg_pre_divs[FIELD_GET(PWM_FREQ_PRE_DIV_MASK, val)];
|
||||
m = FIELD_GET(PWM_FREQ_EXP_MASK, val);
|
||||
|
||||
ret = regmap_bulk_read(lpg->map, chan->base + PWM_VALUE_REG, &pwm_value, sizeof(pwm_value));
|
||||
if (ret)
|
||||
return 0;
|
||||
return ret;
|
||||
|
||||
state->period = DIV_ROUND_UP_ULL((u64)NSEC_PER_SEC * LPG_RESOLUTION * pre_div * (1 << m), refclk);
|
||||
state->duty_cycle = DIV_ROUND_UP_ULL((u64)NSEC_PER_SEC * pwm_value * pre_div * (1 << m), refclk);
|
||||
@ -1006,7 +1006,7 @@ static int lpg_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
|
||||
|
||||
ret = regmap_read(lpg->map, chan->base + PWM_ENABLE_CONTROL_REG, &val);
|
||||
if (ret)
|
||||
return 0;
|
||||
return ret;
|
||||
|
||||
state->enabled = FIELD_GET(LPG_ENABLE_CONTROL_OUTPUT, val);
|
||||
state->polarity = PWM_POLARITY_NORMAL;
|
||||
|
Loading…
Reference in New Issue
Block a user