Subject: [PATCH] usb: typec: ucsi: psy: Set max current to zero when disconnected

From: Jameson Thies <[email-masked]>
Date: Fri, 17 Oct 2025 00:00:51 +0000

The ucsi_psy_get_current_max function defaults to 0.1A when it is not
clear how much current the partner device can support. But this does
not check the port is connected, and will report 0.1A max current when
nothing is connected. Update ucsi_psy_get_current_max to report 0A when
there is no connection.

Fixes: af833e7f7db3 ("usb: typec: ucsi: psy: Set current max to 100mA for BC 1.2 and Default")
Signed-off-by: Jameson Thies <[email-masked]>
Reviewed-by: Benson Leung <[email-masked]>
Reviewed-by: Heikki Krogerus <[email-masked]>
---
 drivers/usb/typec/ucsi/psy.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/usb/typec/ucsi/psy.c b/drivers/usb/typec/ucsi/psy.c
index 62a9d68bb66d..8ae900c8c132 100644
--- a/drivers/usb/typec/ucsi/psy.c
+++ b/drivers/usb/typec/ucsi/psy.c
@@ -145,6 +145,11 @@ static int ucsi_psy_get_current_max(struct ucsi_connector *con,
 {
 	u32 pdo;
 
+	if (!UCSI_CONSTAT(con, CONNECTED)) {
+		val->intval = 0;
+		return 0;
+	}
+
 	switch (UCSI_CONSTAT(con, PWR_OPMODE)) {
 	case UCSI_CONSTAT_PWR_OPMODE_PD:
 		if (con->num_pdos > 0) {

base-commit: e40b984b6c4ce3f80814f39f86f87b2a48f2e662
-- 
2.51.0.858.gf9c4a03a3a-goog

---

From: Kenneth Crudup <[email-masked]>
Date: Thu, 16 Oct 2025 17:24:27 -0700

Tested-By: Kenneth R. Crudup <[email-masked]>

-- 
Kenneth R. Crudup / Sr. SW Engineer, Scott County Consulting, Orange 
County CA

---

From: Kenneth Crudup <[email-masked]>
Date: Thu, 16 Oct 2025 17:26:40 -0700

I wonder if this is the reason my (Kubuntu 25.04, FWIW) system will 
sometimes show the battery icon as "Charging" even when it's discharging 
(or nothing is plugged into either USB-C port)?

-Kenny