2023-01-20 21:12:49

by Prashant Malani

[permalink] [raw]
Subject: [PATCH v2 1/2] usb: typec: altmodes/displayport: Update active state

Update the altmode "active" state when we receive Acks for Enter and
Exit Mode commands. Having the right state is necessary to change Pin
Assignments using the 'pin_assignment" sysfs file.

Cc: Heikki Krogerus <[email protected]>
Reviewed-by: Benson Leung <[email protected]>
Signed-off-by: Prashant Malani <[email protected]>
---

Changes since v1:
- Dropped the Fixes and Cc: stable tags; given the discussion in [1]
I no longer think this constitutes a fix.
- Added Reviewed-by tag from Benson.

[1] https://lore.kernel.org/linux-usb/[email protected]/

drivers/usb/typec/altmodes/displayport.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/usb/typec/altmodes/displayport.c b/drivers/usb/typec/altmodes/displayport.c
index 06fb4732f8cd..bc1c556944d6 100644
--- a/drivers/usb/typec/altmodes/displayport.c
+++ b/drivers/usb/typec/altmodes/displayport.c
@@ -277,9 +277,11 @@ static int dp_altmode_vdm(struct typec_altmode *alt,
case CMDT_RSP_ACK:
switch (cmd) {
case CMD_ENTER_MODE:
+ typec_altmode_update_active(alt, true);
dp->state = DP_STATE_UPDATE;
break;
case CMD_EXIT_MODE:
+ typec_altmode_update_active(alt, false);
dp->data.status = 0;
dp->data.conf = 0;
break;
--
2.39.0.246.g2a6d74b583-goog


2023-01-20 21:32:58

by Prashant Malani

[permalink] [raw]
Subject: [PATCH v2 2/2] usb: typec: tcpm: Remove altmode active state updates

Since the "active" state for partner altmodes is now being taken care of
by the altmode driver itself (specifically, DisplayPort altmode), we
no longer need to do so from the port driver. So remove the calls to
typec_altmode_update_active() from TCPM.

Suggested-by: Heikki Krogerus <[email protected]>
Signed-off-by: Prashant Malani <[email protected]>
---

Changes since v1:
- Patch first introduced in v2.

drivers/usb/typec/tcpm/tcpm.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c
index 904c7b4ce2f0..0f5a9d4db105 100644
--- a/drivers/usb/typec/tcpm/tcpm.c
+++ b/drivers/usb/typec/tcpm/tcpm.c
@@ -1693,14 +1693,11 @@ static int tcpm_pd_svdm(struct tcpm_port *port, struct typec_altmode *adev,
}
break;
case CMD_ENTER_MODE:
- if (adev && pdev) {
- typec_altmode_update_active(pdev, true);
+ if (adev && pdev)
*adev_action = ADEV_QUEUE_VDM_SEND_EXIT_MODE_ON_FAIL;
- }
return 0;
case CMD_EXIT_MODE:
if (adev && pdev) {
- typec_altmode_update_active(pdev, false);
/* Back to USB Operation */
*adev_action = ADEV_NOTIFY_USB_AND_QUEUE_VDM;
return 0;
--
2.39.0.246.g2a6d74b583-goog

2023-01-20 22:00:04

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] usb: typec: altmodes/displayport: Update active state

On 1/20/23 12:58, Prashant Malani wrote:
> Update the altmode "active" state when we receive Acks for Enter and
> Exit Mode commands. Having the right state is necessary to change Pin
> Assignments using the 'pin_assignment" sysfs file.
>
> Cc: Heikki Krogerus <[email protected]>
> Reviewed-by: Benson Leung <[email protected]>
> Signed-off-by: Prashant Malani <[email protected]>

Reviewed-by: Guenter Roeck <[email protected]>

> ---
>
> Changes since v1:
> - Dropped the Fixes and Cc: stable tags; given the discussion in [1]
> I no longer think this constitutes a fix.
> - Added Reviewed-by tag from Benson.
>
> [1] https://lore.kernel.org/linux-usb/[email protected]/
>
> drivers/usb/typec/altmodes/displayport.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/usb/typec/altmodes/displayport.c b/drivers/usb/typec/altmodes/displayport.c
> index 06fb4732f8cd..bc1c556944d6 100644
> --- a/drivers/usb/typec/altmodes/displayport.c
> +++ b/drivers/usb/typec/altmodes/displayport.c
> @@ -277,9 +277,11 @@ static int dp_altmode_vdm(struct typec_altmode *alt,
> case CMDT_RSP_ACK:
> switch (cmd) {
> case CMD_ENTER_MODE:
> + typec_altmode_update_active(alt, true);
> dp->state = DP_STATE_UPDATE;
> break;
> case CMD_EXIT_MODE:
> + typec_altmode_update_active(alt, false);
> dp->data.status = 0;
> dp->data.conf = 0;
> break;

2023-01-20 23:29:56

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] usb: typec: tcpm: Remove altmode active state updates

On 1/20/23 12:58, Prashant Malani wrote:
> Since the "active" state for partner altmodes is now being taken care of
> by the altmode driver itself (specifically, DisplayPort altmode), we
> no longer need to do so from the port driver. So remove the calls to
> typec_altmode_update_active() from TCPM.
>
> Suggested-by: Heikki Krogerus <[email protected]>
> Signed-off-by: Prashant Malani <[email protected]>

Reviewed-by: Guenter Roeck <[email protected]>

> ---
>
> Changes since v1:
> - Patch first introduced in v2.
>
> drivers/usb/typec/tcpm/tcpm.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c
> index 904c7b4ce2f0..0f5a9d4db105 100644
> --- a/drivers/usb/typec/tcpm/tcpm.c
> +++ b/drivers/usb/typec/tcpm/tcpm.c
> @@ -1693,14 +1693,11 @@ static int tcpm_pd_svdm(struct tcpm_port *port, struct typec_altmode *adev,
> }
> break;
> case CMD_ENTER_MODE:
> - if (adev && pdev) {
> - typec_altmode_update_active(pdev, true);
> + if (adev && pdev)
> *adev_action = ADEV_QUEUE_VDM_SEND_EXIT_MODE_ON_FAIL;
> - }
> return 0;
> case CMD_EXIT_MODE:
> if (adev && pdev) {
> - typec_altmode_update_active(pdev, false);
> /* Back to USB Operation */
> *adev_action = ADEV_NOTIFY_USB_AND_QUEUE_VDM;
> return 0;

2023-01-24 11:02:47

by Heikki Krogerus

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] usb: typec: altmodes/displayport: Update active state

On Fri, Jan 20, 2023 at 08:58:26PM +0000, Prashant Malani wrote:
> Update the altmode "active" state when we receive Acks for Enter and
> Exit Mode commands. Having the right state is necessary to change Pin
> Assignments using the 'pin_assignment" sysfs file.
>
> Cc: Heikki Krogerus <[email protected]>
> Reviewed-by: Benson Leung <[email protected]>
> Signed-off-by: Prashant Malani <[email protected]>

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

> ---
>
> Changes since v1:
> - Dropped the Fixes and Cc: stable tags; given the discussion in [1]
> I no longer think this constitutes a fix.
> - Added Reviewed-by tag from Benson.
>
> [1] https://lore.kernel.org/linux-usb/[email protected]/
>
> drivers/usb/typec/altmodes/displayport.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/usb/typec/altmodes/displayport.c b/drivers/usb/typec/altmodes/displayport.c
> index 06fb4732f8cd..bc1c556944d6 100644
> --- a/drivers/usb/typec/altmodes/displayport.c
> +++ b/drivers/usb/typec/altmodes/displayport.c
> @@ -277,9 +277,11 @@ static int dp_altmode_vdm(struct typec_altmode *alt,
> case CMDT_RSP_ACK:
> switch (cmd) {
> case CMD_ENTER_MODE:
> + typec_altmode_update_active(alt, true);
> dp->state = DP_STATE_UPDATE;
> break;
> case CMD_EXIT_MODE:
> + typec_altmode_update_active(alt, false);
> dp->data.status = 0;
> dp->data.conf = 0;
> break;
> --
> 2.39.0.246.g2a6d74b583-goog

--
heikki

2023-01-24 11:04:11

by Heikki Krogerus

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] usb: typec: tcpm: Remove altmode active state updates

On Fri, Jan 20, 2023 at 08:58:28PM +0000, Prashant Malani wrote:
> Since the "active" state for partner altmodes is now being taken care of
> by the altmode driver itself (specifically, DisplayPort altmode), we
> no longer need to do so from the port driver. So remove the calls to
> typec_altmode_update_active() from TCPM.
>
> Suggested-by: Heikki Krogerus <[email protected]>
> Signed-off-by: Prashant Malani <[email protected]>

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

> ---
>
> Changes since v1:
> - Patch first introduced in v2.
>
> drivers/usb/typec/tcpm/tcpm.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c
> index 904c7b4ce2f0..0f5a9d4db105 100644
> --- a/drivers/usb/typec/tcpm/tcpm.c
> +++ b/drivers/usb/typec/tcpm/tcpm.c
> @@ -1693,14 +1693,11 @@ static int tcpm_pd_svdm(struct tcpm_port *port, struct typec_altmode *adev,
> }
> break;
> case CMD_ENTER_MODE:
> - if (adev && pdev) {
> - typec_altmode_update_active(pdev, true);
> + if (adev && pdev)
> *adev_action = ADEV_QUEUE_VDM_SEND_EXIT_MODE_ON_FAIL;
> - }
> return 0;
> case CMD_EXIT_MODE:
> if (adev && pdev) {
> - typec_altmode_update_active(pdev, false);
> /* Back to USB Operation */
> *adev_action = ADEV_NOTIFY_USB_AND_QUEUE_VDM;
> return 0;
> --
> 2.39.0.246.g2a6d74b583-goog

--
heikki

2023-01-24 15:28:03

by Benson Leung

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] usb: typec: tcpm: Remove altmode active state updates

On Fri, Jan 20, 2023 at 1:00 PM Prashant Malani <[email protected]> wrote:
>
> Since the "active" state for partner altmodes is now being taken care of
> by the altmode driver itself (specifically, DisplayPort altmode), we
> no longer need to do so from the port driver. So remove the calls to
> typec_altmode_update_active() from TCPM.
>
> Suggested-by: Heikki Krogerus <[email protected]>
> Signed-off-by: Prashant Malani <[email protected]>

Reviewed-by: Benson Leung <[email protected]>

> ---
>
> Changes since v1:
> - Patch first introduced in v2.
>
> drivers/usb/typec/tcpm/tcpm.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c
> index 904c7b4ce2f0..0f5a9d4db105 100644
> --- a/drivers/usb/typec/tcpm/tcpm.c
> +++ b/drivers/usb/typec/tcpm/tcpm.c
> @@ -1693,14 +1693,11 @@ static int tcpm_pd_svdm(struct tcpm_port *port, struct typec_altmode *adev,
> }
> break;
> case CMD_ENTER_MODE:
> - if (adev && pdev) {
> - typec_altmode_update_active(pdev, true);
> + if (adev && pdev)
> *adev_action = ADEV_QUEUE_VDM_SEND_EXIT_MODE_ON_FAIL;
> - }
> return 0;
> case CMD_EXIT_MODE:
> if (adev && pdev) {
> - typec_altmode_update_active(pdev, false);
> /* Back to USB Operation */
> *adev_action = ADEV_NOTIFY_USB_AND_QUEUE_VDM;
> return 0;
> --
> 2.39.0.246.g2a6d74b583-goog
>


--
Benson Leung
Staff Software Engineer
Chrome OS Kernel
Google Inc.
[email protected]
Chromium OS Project
[email protected]