Unverified Commit e23c0a59 authored by André Draszik's avatar André Draszik Committed by Mark Brown
Browse files

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: 433e294c ("regulator: core: forward undervoltage events downstream by default")
Signed-off-by: default avatarAndré Draszik <andre.draszik@linaro.org>
Link: https://patch.msgid.link/20260109-regulators-defer-v2-6-1a25dc968e60@linaro.org


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent bdbdc4b3
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -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() */