Re: [PATCH RFC] usb: typec: ucsi: Set orientation as none when connector is unplugged

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 17/10/2024 17:01, Abel Vesa wrote:
Currently, the ucsi glink client is only reporting orientation normal or
reversed, based on the level of the gpio. On unplug, it defaults to
orientation normal instead of none. This confuses some of the orientation
switches drivers as they might rely on orientation none in order to
configure the HW in some sort of safe mode. So propagate the orientation
none instead when the connector status flags says cable is disconnected.

Signed-off-by: Abel Vesa <abel.vesa@xxxxxxxxxx>
---
  drivers/usb/typec/ucsi/ucsi_glink.c | 5 +++++
  1 file changed, 5 insertions(+)

diff --git a/drivers/usb/typec/ucsi/ucsi_glink.c b/drivers/usb/typec/ucsi/ucsi_glink.c
index 3e4d88ab338e50d4265df15fc960907c36675282..b3bc02e4b0427a894c5b5df470af47433145243e 100644
--- a/drivers/usb/typec/ucsi/ucsi_glink.c
+++ b/drivers/usb/typec/ucsi/ucsi_glink.c
@@ -185,6 +185,11 @@ static void pmic_glink_ucsi_connector_status(struct ucsi_connector *con)
  	struct pmic_glink_ucsi *ucsi = ucsi_get_drvdata(con->ucsi);
  	int orientation;
+ if (!(con->status.flags & UCSI_CONSTAT_CONNECTED)) {
+		typec_set_orientation(con->port, TYPEC_ORIENTATION_NONE);
+		return;
+	}
+
  	if (con->num >= PMIC_GLINK_MAX_PORTS ||
  	    !ucsi->port_orientation[con->num - 1])
  		return;

---
base-commit: d61a00525464bfc5fe92c6ad713350988e492b88
change-id: 20241017-usb-typec-ucsi-glink-add-orientation-none-73f1f2522999

Best regards,

We discussed this on a meeting and the logic makes perfect sense i.e. when the cable gets yanked the orientation shouldn't be assumed to be anything => orientation is none.

Re Johan's comments needs a Fixes tag though, assuming that's applied.

Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux