]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
usb: typec: ucsi: limit the UCSI_NO_PARTNER_PDOS even further
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Fri, 29 Mar 2024 06:15:34 +0000 (08:15 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 4 Apr 2024 15:07:03 +0000 (17:07 +0200)
Reading Partner Source PDOs for the consumer Connectors appears to be
working. Permit getting PDOs in this case in order to populate
capabilities of the connected power supply in the sysfs.

Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20240329-qcom-ucsi-fixes-v2-2-0f5d37ed04db@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/ucsi/ucsi.c

index 29a7d71c9a4084f046edbb39d016fe5fef61abb0..cd0ed3938c21294f5ba585b40eb7e36089a8dd87 100644 (file)
@@ -620,7 +620,9 @@ static int ucsi_read_pdos(struct ucsi_connector *con,
        int ret;
 
        if (is_partner &&
-           ucsi->quirks & UCSI_NO_PARTNER_PDOS)
+           ucsi->quirks & UCSI_NO_PARTNER_PDOS &&
+           ((con->status.flags & UCSI_CONSTAT_PWR_DIR) ||
+            !is_source(role)))
                return 0;
 
        command = UCSI_COMMAND(UCSI_GET_PDOS) | UCSI_CONNECTOR_NUMBER(con->num);