* [PATCH v2 1/2] usb: typec: ucsi: register DP only for NVIDIA DP VDO
@ 2020-01-23 0:58 Ajay Gupta
2020-01-23 0:58 ` [PATCH v2 2/2] usb: ucsi: ccg: disable runtime pm during fw flashing Ajay Gupta
2020-02-10 15:36 ` [PATCH v2 1/2] usb: typec: ucsi: register DP only for NVIDIA DP VDO Heikki Krogerus
0 siblings, 2 replies; 3+ messages in thread
From: Ajay Gupta @ 2020-01-23 0:58 UTC (permalink / raw)
To: heikki.krogerus; +Cc: linux-usb, Ajay Gupta
From: Ajay Gupta <ajayg@nvidia.com>
NVIDIA VirtualLink (svid 0x955) has two altmode, vdo=0x1 for
VirtualLink DP mode and vdo=0x3 for NVIDIA test mode.
Register display altmode driver only for vdo=0x1
Signed-off-by: Ajay Gupta <ajayg@nvidia.com>
---
Changes from v1->v2:
Moved defines from typec_dp.h to ucsi.h based on comments
from Heikki.
drivers/usb/typec/ucsi/ucsi.c | 12 ++++++++++--
drivers/usb/typec/ucsi/ucsi.h | 7 +++++++
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c
index d5a6aac86327..eca9d598a42f 100644
--- a/drivers/usb/typec/ucsi/ucsi.c
+++ b/drivers/usb/typec/ucsi/ucsi.c
@@ -270,9 +270,16 @@ static int ucsi_register_altmode(struct ucsi_connector *con,
switch (desc->svid) {
case USB_TYPEC_DP_SID:
- case USB_TYPEC_NVIDIA_VLINK_SID:
alt = ucsi_register_displayport(con, override, i, desc);
break;
+ case USB_TYPEC_NVIDIA_VLINK_SID:
+ if (desc->vdo == USB_TYPEC_NVIDIA_VLINK_DBG_VDO)
+ alt = typec_port_register_altmode(con->port,
+ desc);
+ else
+ alt = ucsi_register_displayport(con, override,
+ i, desc);
+ break;
default:
alt = typec_port_register_altmode(con->port, desc);
break;
@@ -475,7 +482,8 @@ static void ucsi_unregister_altmodes(struct ucsi_connector *con, u8 recipient)
while (adev[i]) {
if (recipient == UCSI_RECIPIENT_SOP &&
(adev[i]->svid == USB_TYPEC_DP_SID ||
- adev[i]->svid == USB_TYPEC_NVIDIA_VLINK_SID)) {
+ (adev[i]->svid == USB_TYPEC_NVIDIA_VLINK_SID &&
+ adev[i]->vdo != USB_TYPEC_NVIDIA_VLINK_DBG_VDO))) {
pdev = typec_altmode_get_partner(adev[i]);
ucsi_displayport_remove_partner((void *)pdev);
}
diff --git a/drivers/usb/typec/ucsi/ucsi.h b/drivers/usb/typec/ucsi/ucsi.h
index e434b9c9a9eb..a89112b69cd5 100644
--- a/drivers/usb/typec/ucsi/ucsi.h
+++ b/drivers/usb/typec/ucsi/ucsi.h
@@ -340,4 +340,11 @@ static inline void
ucsi_displayport_remove_partner(struct typec_altmode *adev) { }
#endif /* CONFIG_TYPEC_DP_ALTMODE */
+/*
+ * NVIDIA VirtualLink (svid 0x955) has two altmode. VirtualLink
+ * DP mode with vdo=0x1 and NVIDIA test mode with vdo=0x3
+ */
+#define USB_TYPEC_NVIDIA_VLINK_DP_VDO 0x1
+#define USB_TYPEC_NVIDIA_VLINK_DBG_VDO 0x3
+
#endif /* __DRIVER_USB_TYPEC_UCSI_H */
--
2.17.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH v2 2/2] usb: ucsi: ccg: disable runtime pm during fw flashing
2020-01-23 0:58 [PATCH v2 1/2] usb: typec: ucsi: register DP only for NVIDIA DP VDO Ajay Gupta
@ 2020-01-23 0:58 ` Ajay Gupta
2020-02-10 15:36 ` [PATCH v2 1/2] usb: typec: ucsi: register DP only for NVIDIA DP VDO Heikki Krogerus
1 sibling, 0 replies; 3+ messages in thread
From: Ajay Gupta @ 2020-01-23 0:58 UTC (permalink / raw)
To: heikki.krogerus; +Cc: linux-usb, Ajay Gupta
From: Ajay Gupta <ajayg@nvidia.com>
Ucsi ppm is unregistered during fw flashing so disable
runtime pm also and reenable after fw flashing is completed
and ppm is re-registered.
Signed-off-by: Ajay Gupta <ajayg@nvidia.com>
---
Change from v1->v2: None
drivers/usb/typec/ucsi/ucsi_ccg.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/usb/typec/ucsi/ucsi_ccg.c b/drivers/usb/typec/ucsi/ucsi_ccg.c
index a5b8530490db..2658cda5da11 100644
--- a/drivers/usb/typec/ucsi/ucsi_ccg.c
+++ b/drivers/usb/typec/ucsi/ucsi_ccg.c
@@ -1219,6 +1219,7 @@ static int ccg_restart(struct ucsi_ccg *uc)
return status;
}
+ pm_runtime_enable(uc->dev);
return 0;
}
@@ -1234,6 +1235,7 @@ static void ccg_update_firmware(struct work_struct *work)
if (flash_mode != FLASH_NOT_NEEDED) {
ucsi_unregister(uc->ucsi);
+ pm_runtime_disable(uc->dev);
free_irq(uc->irq, uc);
ccg_fw_update(uc, flash_mode);
--
2.17.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v2 1/2] usb: typec: ucsi: register DP only for NVIDIA DP VDO
2020-01-23 0:58 [PATCH v2 1/2] usb: typec: ucsi: register DP only for NVIDIA DP VDO Ajay Gupta
2020-01-23 0:58 ` [PATCH v2 2/2] usb: ucsi: ccg: disable runtime pm during fw flashing Ajay Gupta
@ 2020-02-10 15:36 ` Heikki Krogerus
1 sibling, 0 replies; 3+ messages in thread
From: Heikki Krogerus @ 2020-02-10 15:36 UTC (permalink / raw)
To: Ajay Gupta; +Cc: linux-usb, Ajay Gupta
Hi Ajay,
On Wed, Jan 22, 2020 at 04:58:58PM -0800, Ajay Gupta wrote:
> From: Ajay Gupta <ajayg@nvidia.com>
>
> NVIDIA VirtualLink (svid 0x955) has two altmode, vdo=0x1 for
> VirtualLink DP mode and vdo=0x3 for NVIDIA test mode.
> Register display altmode driver only for vdo=0x1
>
> Signed-off-by: Ajay Gupta <ajayg@nvidia.com>
I'll give this a quick test, and send them forward.
thanks,
--
heikki
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-02-10 15:36 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-01-23 0:58 [PATCH v2 1/2] usb: typec: ucsi: register DP only for NVIDIA DP VDO Ajay Gupta
2020-01-23 0:58 ` [PATCH v2 2/2] usb: ucsi: ccg: disable runtime pm during fw flashing Ajay Gupta
2020-02-10 15:36 ` [PATCH v2 1/2] usb: typec: ucsi: register DP only for NVIDIA DP VDO Heikki Krogerus
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.