]> www.infradead.org Git - users/willy/xarray.git/commitdiff
usb: typec: ucsi: allow non-partner GET_PDOS for Qualcomm devices
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Fri, 29 Mar 2024 06:15:33 +0000 (08:15 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 4 Apr 2024 15:07:03 +0000 (17:07 +0200)
The name and description of the USB_NO_PARTNER_PDOS quirk specifies that
only retrieving PDOS of the attached device is crashing. Retrieving PDOS
of the UCSI device works. Fix the condition to limit the workaround only
to is_partner cases.

Fixes: 1d103d6af241 ("usb: typec: ucsi: fix UCSI on buggy Qualcomm devices")
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-1-0f5d37ed04db@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/ucsi/ucsi.c

index f7157215eed6bbec82b38da1979f5ac605d79d03..29a7d71c9a4084f046edbb39d016fe5fef61abb0 100644 (file)
@@ -619,7 +619,8 @@ static int ucsi_read_pdos(struct ucsi_connector *con,
        u64 command;
        int ret;
 
-       if (ucsi->quirks & UCSI_NO_PARTNER_PDOS)
+       if (is_partner &&
+           ucsi->quirks & UCSI_NO_PARTNER_PDOS)
                return 0;
 
        command = UCSI_COMMAND(UCSI_GET_PDOS) | UCSI_CONNECTOR_NUMBER(con->num);