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:
Andy Shevchenko 2021-08-05 14:26:19 +03:00 committed by Pavel Machek
parent 64f67b5240
commit 9cbc861095

View file

@ -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)