usb: typec: tcpm: Ignore Vsafe0v in PR_SWAP_SNK_SRC_SOURCE_ON state

Message ID 20210615173206.1646477-1-kyletso@google.com
State New
Headers show
Series
  • usb: typec: tcpm: Ignore Vsafe0v in PR_SWAP_SNK_SRC_SOURCE_ON state
Related show

Commit Message

Kyle Tso June 15, 2021, 5:32 p.m.
In PR_SWAP_SNK_SRC_SOURCE_ON state, Vsafe0v is expected as well so do
nothing here to avoid state machine going into SNK_UNATTACHED.

Fixes: 28b43d3d746b ("usb: typec: tcpm: Introduce vsafe0v for vbus")
Signed-off-by: Kyle Tso <kyletso@google.com>
---
 drivers/usb/typec/tcpm/tcpm.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Badhri Jagan Sridharan June 15, 2021, 5:45 p.m. | #1
On Tue, Jun 15, 2021 at 10:32 AM Kyle Tso <kyletso@google.com> wrote:
>
> In PR_SWAP_SNK_SRC_SOURCE_ON state, Vsafe0v is expected as well so do
> nothing here to avoid state machine going into SNK_UNATTACHED.
>
> Fixes: 28b43d3d746b ("usb: typec: tcpm: Introduce vsafe0v for vbus")
> Signed-off-by: Kyle Tso <kyletso@google.com>
Reviewed-by: Badhri Jagan Sridharan <badhri@google.com>
> ---
>  drivers/usb/typec/tcpm/tcpm.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c
> index 197556038ba4..e11e9227107d 100644
> --- a/drivers/usb/typec/tcpm/tcpm.c
> +++ b/drivers/usb/typec/tcpm/tcpm.c
> @@ -5212,6 +5212,7 @@ static void _tcpm_pd_vbus_vsafe0v(struct tcpm_port *port)
>                 }
>                 break;
>         case PR_SWAP_SNK_SRC_SINK_OFF:
> +       case PR_SWAP_SNK_SRC_SOURCE_ON:
>                 /* Do nothing, vsafe0v is expected during transition */
>                 break;
>         default:
> --
> 2.32.0.272.g935e593368-goog
>
Guenter Roeck June 15, 2021, 9:39 p.m. | #2
On Wed, Jun 16, 2021 at 01:32:06AM +0800, Kyle Tso wrote:
> In PR_SWAP_SNK_SRC_SOURCE_ON state, Vsafe0v is expected as well so do
> nothing here to avoid state machine going into SNK_UNATTACHED.
> 
> Fixes: 28b43d3d746b ("usb: typec: tcpm: Introduce vsafe0v for vbus")
> Signed-off-by: Kyle Tso <kyletso@google.com>

Reviewed-by: Guenter Roeck <linux@roeck-us.net>

> ---
>  drivers/usb/typec/tcpm/tcpm.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c
> index 197556038ba4..e11e9227107d 100644
> --- a/drivers/usb/typec/tcpm/tcpm.c
> +++ b/drivers/usb/typec/tcpm/tcpm.c
> @@ -5212,6 +5212,7 @@ static void _tcpm_pd_vbus_vsafe0v(struct tcpm_port *port)
>  		}
>  		break;
>  	case PR_SWAP_SNK_SRC_SINK_OFF:
> +	case PR_SWAP_SNK_SRC_SOURCE_ON:
>  		/* Do nothing, vsafe0v is expected during transition */
>  		break;
>  	default:
> -- 
> 2.32.0.272.g935e593368-goog
>
Heikki Krogerus June 16, 2021, 1:41 p.m. | #3
On Wed, Jun 16, 2021 at 01:32:06AM +0800, Kyle Tso wrote:
> In PR_SWAP_SNK_SRC_SOURCE_ON state, Vsafe0v is expected as well so do

> nothing here to avoid state machine going into SNK_UNATTACHED.

> 

> Fixes: 28b43d3d746b ("usb: typec: tcpm: Introduce vsafe0v for vbus")

> Signed-off-by: Kyle Tso <kyletso@google.com>


Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>


> ---

>  drivers/usb/typec/tcpm/tcpm.c | 1 +

>  1 file changed, 1 insertion(+)

> 

> diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c

> index 197556038ba4..e11e9227107d 100644

> --- a/drivers/usb/typec/tcpm/tcpm.c

> +++ b/drivers/usb/typec/tcpm/tcpm.c

> @@ -5212,6 +5212,7 @@ static void _tcpm_pd_vbus_vsafe0v(struct tcpm_port *port)

>  		}

>  		break;

>  	case PR_SWAP_SNK_SRC_SINK_OFF:

> +	case PR_SWAP_SNK_SRC_SOURCE_ON:

>  		/* Do nothing, vsafe0v is expected during transition */

>  		break;

>  	default:

> -- 

> 2.32.0.272.g935e593368-goog


-- 
heikki

Patch

diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c
index 197556038ba4..e11e9227107d 100644
--- a/drivers/usb/typec/tcpm/tcpm.c
+++ b/drivers/usb/typec/tcpm/tcpm.c
@@ -5212,6 +5212,7 @@  static void _tcpm_pd_vbus_vsafe0v(struct tcpm_port *port)
 		}
 		break;
 	case PR_SWAP_SNK_SRC_SINK_OFF:
+	case PR_SWAP_SNK_SRC_SOURCE_ON:
 		/* Do nothing, vsafe0v is expected during transition */
 		break;
 	default: