]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
usb: typec: ucsi: Report power supply changes on power opmode changes
authorJameson Thies <jthies@google.com>
Thu, 16 Oct 2025 23:59:08 +0000 (23:59 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Oct 2025 08:58:31 +0000 (10:58 +0200)
Report opmode changes from the PPM to the power supply class by calling
ucsi_port_psy_changed(). If the current opmode is USB PD, do not call
ucsi_port_psy_changed(). The power supply class will be updated after
requesting partner source PDOs.

Signed-off-by: Jameson Thies <jthies@google.com>
Reviewed-by: Benson Leung <bleung@chromium.org>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Tested-By: Kenneth R. Crudup <kenny@panix.com>
Link: https://patch.msgid.link/20251016235909.2092917-3-jthies@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/ucsi/ucsi.c

index 3995483a0aa097b822046e819f994164d6183b0d..04047038720e86b091187dc08ec14c27458711f5 100644 (file)
@@ -1022,14 +1022,17 @@ static void ucsi_pwr_opmode_change(struct ucsi_connector *con)
        case UCSI_CONSTAT_PWR_OPMODE_TYPEC1_5:
                con->rdo = 0;
                typec_set_pwr_opmode(con->port, TYPEC_PWR_MODE_1_5A);
+               ucsi_port_psy_changed(con);
                break;
        case UCSI_CONSTAT_PWR_OPMODE_TYPEC3_0:
                con->rdo = 0;
                typec_set_pwr_opmode(con->port, TYPEC_PWR_MODE_3_0A);
+               ucsi_port_psy_changed(con);
                break;
        default:
                con->rdo = 0;
                typec_set_pwr_opmode(con->port, TYPEC_PWR_MODE_USB);
+               ucsi_port_psy_changed(con);
                break;
        }
 }