[PATCH v3 3/6] leds: aw2013: Use dev_err_probe

From: Paul Sajna

Date: Tue Oct 13 2026 - 01:41:03 EST


Failure to use dev_err_probe() for regulator requests violates
LED subsystem guidelines. (At least according to sashiko [1])

The original driver didn't use it, but it's worth cleaning up
while I'm here.

[1]: https://github.com/sashiko-dev/sashiko/blob/main/third_party/prompts/kernel/subsystem/leds.md?plain=1#L71

Reviewed-by: Griffin Kroah-Hartman <griffin@xxxxxxxxx>
Reviewed-by: David Heidelberg <david@xxxxxxx>

Signed-off-by: Paul Sajna <sajattack@xxxxxxxxxxxxxxxx>
---
drivers/leds/leds-aw2013.c | 28 +++++++++++++---------------
1 file changed, 13 insertions(+), 15 deletions(-)

diff --git a/drivers/leds/leds-aw2013.c b/drivers/leds/leds-aw2013.c
index 4da33a86af16..05d61f4e5804 100644
--- a/drivers/leds/leds-aw2013.c
+++ b/drivers/leds/leds-aw2013.c
@@ -447,9 +447,8 @@ static int aw2013_probe(struct i2c_client *client)

chip->regmap = devm_regmap_init_i2c(client, chip->cdef->regmap_cfg);
if (IS_ERR(chip->regmap)) {
- ret = PTR_ERR(chip->regmap);
- dev_err(&client->dev, "Failed to allocate register map: %d\n",
- ret);
+ ret = dev_err_probe(&client->dev, PTR_ERR(chip->regmap),
+ "Failed to allocate register map\n");
goto error;
}

@@ -459,30 +458,29 @@ static int aw2013_probe(struct i2c_client *client)
ARRAY_SIZE(chip->regulators),
chip->regulators);
if (ret < 0) {
- if (ret != -EPROBE_DEFER)
- dev_err(&client->dev,
- "Failed to request regulators: %d\n", ret);
+ ret = dev_err_probe(&client->dev, ret,
+ "Failed to request regulators\n");
goto error;
}

ret = regulator_bulk_enable(ARRAY_SIZE(chip->regulators),
chip->regulators);
if (ret) {
- dev_err(&client->dev,
- "Failed to enable regulators: %d\n", ret);
+ ret = dev_err_probe(&client->dev, ret,
+ "Failed to enable regulators\n");
goto error;
}

ret = regmap_read(chip->regmap, AW2013_RSTR, &chipid);
if (ret) {
- dev_err(&client->dev, "Failed to read chip ID: %d\n",
- ret);
+ ret = dev_err_probe(&client->dev, ret,
+ "Failed to read chip ID\n");
goto error_reg;
}
if (chipid != chip->cdef->chip_id) {
- dev_err(&client->dev, "Chip reported wrong ID: %x\n",
- chipid);
- ret = -ENODEV;
+ ret = dev_err_probe(&client->dev, -ENODEV,
+ "Chip reported wrong ID: %x\n",
+ chipid);
goto error_reg;
}

@@ -497,8 +495,8 @@ static int aw2013_probe(struct i2c_client *client)
ret = regulator_bulk_disable(ARRAY_SIZE(chip->regulators),
chip->regulators);
if (ret) {
- dev_err(&client->dev,
- "Failed to disable regulators: %d\n", ret);
+ ret = dev_err_probe(&client->dev, ret,
+ "Failed to disable regulators\n");
goto error;
}


--
2.55.0