]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
usb: typec: ucsi: glink: be more precise on orientation-aware ports
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Sat, 9 Nov 2024 00:04:15 +0000 (02:04 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 14 Dec 2024 19:04:08 +0000 (20:04 +0100)
[ Upstream commit de9df030ccb5d3e31ee0c715d74cd77c619748f8 ]

Instead of checking if any of the USB-C ports have orientation GPIO and
thus is orientation-aware, check for the GPIO for the port being
registered. There are no boards that are affected by this change at this
moment, so the patch is not marked as a fix, but it might affect other
boards in future.

Reviewed-by: Abel Vesa <abel.vesa@linaro.org>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Johan Hovold <johan+linaro@kernel.org>
Tested-by: Johan Hovold <johan+linaro@kernel.org>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20241109-ucsi-glue-fixes-v2-2-8b21ff4f9fbe@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/usb/typec/ucsi/ucsi_glink.c

index f7000d383a4e62f9d937c047c2767b2497fa74e3..9b6cb76e632807f64f4a1fef5beac4eb3b6aba04 100644 (file)
@@ -172,12 +172,12 @@ static int pmic_glink_ucsi_async_control(struct ucsi *__ucsi, u64 command)
 static void pmic_glink_ucsi_update_connector(struct ucsi_connector *con)
 {
        struct pmic_glink_ucsi *ucsi = ucsi_get_drvdata(con->ucsi);
-       int i;
 
-       for (i = 0; i < PMIC_GLINK_MAX_PORTS; i++) {
-               if (ucsi->port_orientation[i])
-                       con->typec_cap.orientation_aware = true;
-       }
+       if (con->num > PMIC_GLINK_MAX_PORTS ||
+           !ucsi->port_orientation[con->num - 1])
+               return;
+
+       con->typec_cap.orientation_aware = true;
 }
 
 static void pmic_glink_ucsi_connector_status(struct ucsi_connector *con)