regulator: core: don't ignore errors from event forwarding setup

Receiving and forwarding critical supply events seems like they're
important information and we shouldn't ignore errors occurring during
registration for such events.

With this change the supply is unset on event registration failure,
allowing us to potentially retry another time.

Fixes: 433e294c3c ("regulator: core: forward undervoltage events downstream by default")
Signed-off-by: André Draszik <andre.draszik@linaro.org>
Link: https://patch.msgid.link/20260109-regulators-defer-v2-6-1a25dc968e60@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
André Draszik 2026-01-09 08:38:42 +00:00 committed by Mark Brown
parent bdbdc4b398
commit e23c0a59da
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -2273,10 +2273,21 @@ static int regulator_resolve_supply(struct regulator_dev *rdev)
* under-voltage.
*/
ret = register_regulator_event_forwarding(rdev);
if (ret < 0)
if (ret < 0) {
struct regulator *supply;
rdev_warn(rdev, "Failed to register event forwarding: %pe\n",
ERR_PTR(ret));
supply = rdev->supply;
rdev->supply = NULL;
regulator_unlock_two(rdev, supply->rdev, &ww_ctx);
regulator_put(supply);
goto out;
}
regulator_unlock_two(rdev, r, &ww_ctx);
/* rdev->supply was created in set_supply() */