]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
usb: typec: ucsi: psy: Set max current to zero when disconnected
authorJameson Thies <jthies@google.com>
Tue, 2 Dec 2025 00:49:46 +0000 (19:49 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 6 Dec 2025 21:12:45 +0000 (06:12 +0900)
[ Upstream commit 23379a17334fc24c4a9cbd9967d33dcd9323cc7c ]

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")
Cc: stable@vger.kernel.org
Signed-off-by: Jameson Thies <jthies@google.com>
Reviewed-by: Benson Leung <bleung@chromium.org>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Tested-by: Kenneth R. Crudup <kenny@panix.com>
Rule: add
Link: https://lore.kernel.org/stable/20251017000051.2094101-1-jthies%40google.com
Link: https://patch.msgid.link/20251106011446.2052583-1-jthies@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[ adapted UCSI_CONSTAT() macro to direct flag access ]
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/ucsi/psy.c

index 9b0157063df0a36638f73378483d31951dd84103..c80c23d3384e896605a8b39dce543f2de1c4604f 100644 (file)
@@ -144,6 +144,11 @@ static int ucsi_psy_get_current_max(struct ucsi_connector *con,
 {
        u32 pdo;
 
+       if (!(con->status.flags & UCSI_CONSTAT_CONNECTED)) {
+               val->intval = 0;
+               return 0;
+       }
+
        switch (UCSI_CONSTAT_PWR_OPMODE(con->status.flags)) {
        case UCSI_CONSTAT_PWR_OPMODE_PD:
                if (con->num_pdos > 0) {