usb: typec: ucsi: Don't update power_supply on power role change if not connected

We only need to update the power_supply on power role change if the port
is connected, because otherwise the online status should be the same for
both cases.

Cc: stable <stable@kernel.org>
Fixes: 7616f006db ("usb: typec: ucsi: Update power_supply on power role change")
Signed-off-by: Myrrh Periwinkle <myrrhperiwinkle@qtmlabs.xyz>
Reported-and-tested-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Link: https://patch.msgid.link/20260519-ucsi-fix-2-v1-2-6f1239535187@qtmlabs.xyz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Myrrh Periwinkle 2026-05-19 18:41:40 +07:00 committed by Greg Kroah-Hartman
parent b80e7d34c7
commit d98d413ca6

View File

@ -1308,7 +1308,12 @@ static void ucsi_handle_connector_change(struct work_struct *work)
if ((change & UCSI_CONSTAT_POWER_DIR_CHANGE) && role != prev_role) {
typec_set_pwr_role(con->port, role);
ucsi_port_psy_changed(con);
/* Some power_supply properties vary depending on the power direction when
* connected
*/
if (UCSI_CONSTAT(con, CONNECTED))
ucsi_port_psy_changed(con);
/* Complete pending power role swap */
if (!completion_done(&con->complete))