From: Jan Remmet Date: Fri, 6 Feb 2026 08:34:31 +0000 (+0100) Subject: usb: typec: hd3ss3220: Check if regulator needs to be switched X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b3f9d6e491fda73c319547881b78cdd2a222b293;p=thirdparty%2Flinux.git usb: typec: hd3ss3220: Check if regulator needs to be switched Check regulator state as peripheral and detach can disable vbus. Without this check we will try to disable the regulator twice if we disconnect host and then connect as device. Fixes: 27fbc19e52b9 ("usb: typec: hd3ss3220: Enable VBUS based on role state") Signed-off-by: Jan Remmet Reviewed-by: Heikki Krogerus Link: https://patch.msgid.link/20260206-wip-jremmet-hd3ss3220_vbus_split-v4-1-ee5b4e402187@phytec.de Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/typec/hd3ss3220.c b/drivers/usb/typec/hd3ss3220.c index a7c54aa8635f..3e39b800e6b5 100644 --- a/drivers/usb/typec/hd3ss3220.c +++ b/drivers/usb/typec/hd3ss3220.c @@ -208,6 +208,9 @@ static void hd3ss3220_regulator_control(struct hd3ss3220 *hd3ss3220, bool on) { int ret; + if (regulator_is_enabled(hd3ss3220->vbus) == on) + return; + if (on) ret = regulator_enable(hd3ss3220->vbus); else