2023-12-08 12:38:10

by Johan Hovold

[permalink] [raw]
Subject: [PATCH] usb: typec: ucsi: fix gpio-based orientation detection

Fix the recently added connector sanity check which was off by one and
prevented orientation notifications from being handled correctly for the
second port when using GPIOs to determine orientation.

Fixes: c6165ed2f425 ("usb: ucsi: glink: use the connector orientation GPIO to provide switch events")
Cc: Neil Armstrong <[email protected]>
Signed-off-by: Johan Hovold <[email protected]>
---

I found this one through inspection when skimming the driver.

Johan


drivers/usb/typec/ucsi/ucsi_glink.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/typec/ucsi/ucsi_glink.c b/drivers/usb/typec/ucsi/ucsi_glink.c
index db6e248f8208..4853141cd10c 100644
--- a/drivers/usb/typec/ucsi/ucsi_glink.c
+++ b/drivers/usb/typec/ucsi/ucsi_glink.c
@@ -228,7 +228,7 @@ static void pmic_glink_ucsi_notify(struct work_struct *work)

con_num = UCSI_CCI_CONNECTOR(cci);
if (con_num) {
- if (con_num < PMIC_GLINK_MAX_PORTS &&
+ if (con_num <= PMIC_GLINK_MAX_PORTS &&
ucsi->port_orientation[con_num - 1]) {
int orientation = gpiod_get_value(ucsi->port_orientation[con_num - 1]);

--
2.41.0


2023-12-08 12:38:18

by Dmitry Baryshkov

[permalink] [raw]
Subject: Re: [PATCH] usb: typec: ucsi: fix gpio-based orientation detection

On Fri, 8 Dec 2023 at 14:37, Johan Hovold <[email protected]> wrote:
>
> Fix the recently added connector sanity check which was off by one and
> prevented orientation notifications from being handled correctly for the
> second port when using GPIOs to determine orientation.
>
> Fixes: c6165ed2f425 ("usb: ucsi: glink: use the connector orientation GPIO to provide switch events")
> Cc: Neil Armstrong <[email protected]>
> Signed-off-by: Johan Hovold <[email protected]>

Reviewed-by: Dmitry Baryshkov <[email protected]>

> ---
>
> I found this one through inspection when skimming the driver.
>
> Johan
>
>
> drivers/usb/typec/ucsi/ucsi_glink.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/typec/ucsi/ucsi_glink.c b/drivers/usb/typec/ucsi/ucsi_glink.c
> index db6e248f8208..4853141cd10c 100644
> --- a/drivers/usb/typec/ucsi/ucsi_glink.c
> +++ b/drivers/usb/typec/ucsi/ucsi_glink.c
> @@ -228,7 +228,7 @@ static void pmic_glink_ucsi_notify(struct work_struct *work)
>
> con_num = UCSI_CCI_CONNECTOR(cci);
> if (con_num) {
> - if (con_num < PMIC_GLINK_MAX_PORTS &&
> + if (con_num <= PMIC_GLINK_MAX_PORTS &&
> ucsi->port_orientation[con_num - 1]) {
> int orientation = gpiod_get_value(ucsi->port_orientation[con_num - 1]);
>
> --
> 2.41.0
>


--
With best wishes
Dmitry

2023-12-08 13:57:06

by Heikki Krogerus

[permalink] [raw]
Subject: Re: [PATCH] usb: typec: ucsi: fix gpio-based orientation detection

On Fri, Dec 08, 2023 at 01:36:02PM +0100, Johan Hovold wrote:
> Fix the recently added connector sanity check which was off by one and
> prevented orientation notifications from being handled correctly for the
> second port when using GPIOs to determine orientation.
>
> Fixes: c6165ed2f425 ("usb: ucsi: glink: use the connector orientation GPIO to provide switch events")
> Cc: Neil Armstrong <[email protected]>
> Signed-off-by: Johan Hovold <[email protected]>

Reviewed-by: Heikki Krogerus <[email protected]>

> ---
>
> I found this one through inspection when skimming the driver.
>
> Johan
>
>
> drivers/usb/typec/ucsi/ucsi_glink.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/typec/ucsi/ucsi_glink.c b/drivers/usb/typec/ucsi/ucsi_glink.c
> index db6e248f8208..4853141cd10c 100644
> --- a/drivers/usb/typec/ucsi/ucsi_glink.c
> +++ b/drivers/usb/typec/ucsi/ucsi_glink.c
> @@ -228,7 +228,7 @@ static void pmic_glink_ucsi_notify(struct work_struct *work)
>
> con_num = UCSI_CCI_CONNECTOR(cci);
> if (con_num) {
> - if (con_num < PMIC_GLINK_MAX_PORTS &&
> + if (con_num <= PMIC_GLINK_MAX_PORTS &&
> ucsi->port_orientation[con_num - 1]) {
> int orientation = gpiod_get_value(ucsi->port_orientation[con_num - 1]);
>
> --
> 2.41.0

--
heikki