leds: lgm-sso: Propagate error codes from callee to caller
The one of the latest change to the driver reveals the problem that the error codes from callee aren't propagated to the caller of __sso_led_dt_parse(). Fix this accordingly. Fixes:9999908ca1
("leds: lgm-sso: Put fwnode in any case during ->probe()") Fixes:c3987cd2bc
("leds: lgm: Add LED controller driver for LGM SoC") Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Pavel Machek <pavel@ucw.cz>
This commit is contained in:
parent
64f67b5240
commit
9cbc861095
@ -640,7 +640,7 @@ __sso_led_dt_parse(struct sso_led_priv *priv, struct fwnode_handle *fw_ssoled)
|
||||
fwnode_child,
|
||||
GPIOD_ASIS, NULL);
|
||||
if (IS_ERR(led->gpiod)) {
|
||||
dev_err_probe(dev, PTR_ERR(led->gpiod), "led: get gpio fail!\n");
|
||||
ret = dev_err_probe(dev, PTR_ERR(led->gpiod), "led: get gpio fail!\n");
|
||||
goto __dt_err;
|
||||
}
|
||||
|
||||
@ -660,8 +660,11 @@ __sso_led_dt_parse(struct sso_led_priv *priv, struct fwnode_handle *fw_ssoled)
|
||||
desc->panic_indicator = 1;
|
||||
|
||||
ret = fwnode_property_read_u32(fwnode_child, "reg", &prop);
|
||||
if (ret != 0 || prop >= SSO_LED_MAX_NUM) {
|
||||
if (ret)
|
||||
goto __dt_err;
|
||||
if (prop >= SSO_LED_MAX_NUM) {
|
||||
dev_err(dev, "invalid LED pin:%u\n", prop);
|
||||
ret = -EINVAL;
|
||||
goto __dt_err;
|
||||
}
|
||||
desc->pin = prop;
|
||||
@ -697,7 +700,8 @@ __sso_led_dt_parse(struct sso_led_priv *priv, struct fwnode_handle *fw_ssoled)
|
||||
desc->brightness = LED_FULL;
|
||||
}
|
||||
|
||||
if (sso_create_led(priv, led, fwnode_child))
|
||||
ret = sso_create_led(priv, led, fwnode_child);
|
||||
if (ret)
|
||||
goto __dt_err;
|
||||
}
|
||||
|
||||
@ -709,7 +713,7 @@ __dt_err:
|
||||
list_for_each_entry(led, &priv->led_list, list)
|
||||
sso_led_shutdown(led);
|
||||
|
||||
return -EINVAL;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int sso_led_dt_parse(struct sso_led_priv *priv)
|
||||
|
Loading…
Reference in New Issue
Block a user