kernel: ubnt-ledbar: use dev_err_probe

Handles EPROBE_DEFER and simplifies the code.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16508
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
Rosen Penev 2024-09-22 11:27:13 -07:00 committed by Hauke Mehrtens
parent 4705398bbf
commit f09d973d14

View File

@ -170,7 +170,6 @@ static int ubnt_ledbar_probe(struct i2c_client *client)
{ {
struct device_node *np = client->dev.of_node; struct device_node *np = client->dev.of_node;
struct ubnt_ledbar *ledbar; struct ubnt_ledbar *ledbar;
int ret;
ledbar = devm_kzalloc(&client->dev, sizeof(*ledbar), GFP_KERNEL); ledbar = devm_kzalloc(&client->dev, sizeof(*ledbar), GFP_KERNEL);
if (!ledbar) if (!ledbar)
@ -178,19 +177,13 @@ static int ubnt_ledbar_probe(struct i2c_client *client)
ledbar->enable_gpio = devm_gpiod_get(&client->dev, "enable", GPIOD_OUT_LOW); ledbar->enable_gpio = devm_gpiod_get(&client->dev, "enable", GPIOD_OUT_LOW);
if (IS_ERR(ledbar->enable_gpio)) { if (IS_ERR(ledbar->enable_gpio))
ret = PTR_ERR(ledbar->enable_gpio); return dev_err_probe(&client->dev, PTR_ERR(ledbar->enable_gpio), "Failed to get enable gpio");
dev_err(&client->dev, "Failed to get enable gpio: %d\n", ret);
return ret;
}
ledbar->reset_gpio = devm_gpiod_get_optional(&client->dev, "reset", GPIOD_OUT_LOW); ledbar->reset_gpio = devm_gpiod_get_optional(&client->dev, "reset", GPIOD_OUT_LOW);
if (IS_ERR(ledbar->reset_gpio)) { if (IS_ERR(ledbar->reset_gpio))
ret = PTR_ERR(ledbar->reset_gpio); return dev_err_probe(&client->dev, PTR_ERR(ledbar->reset_gpio), "Failed to get reset gpio");
dev_err(&client->dev, "Failed to get reset gpio: %d\n", ret);
return ret;
}
ledbar->led_count = 1; ledbar->led_count = 1;
of_property_read_u32(np, "led-count", &ledbar->led_count); of_property_read_u32(np, "led-count", &ledbar->led_count);