From: Heikki Krogerus <heikki.krogerus@linux.intel.com>
To: Badhri Jagan Sridharan <badhri@google.com>
Cc: gregkh@linuxfoundation.org, linux@roeck-us.net,
kyletso@google.com, linux-usb@vger.kernel.org,
linux-kernel@vger.kernel.org, rdbabiera@google.com,
amitsd@google.com, stable@vger.kernel.org,
frank.wang@rock-chips.com, broonie@kernel.org
Subject: Re: [PATCH v2] usb: typec: tpcm: Fix PORT_RESET behavior for self powered devices
Date: Tue, 12 Mar 2024 11:03:53 +0200 [thread overview]
Message-ID: <ZfAaea3+HJ0P2zXn@kuha.fi.intel.com> (raw)
In-Reply-To: <20240228000512.746252-1-badhri@google.com>
On Wed, Feb 28, 2024 at 12:05:12AM +0000, Badhri Jagan Sridharan wrote:
> While commit 69f89168b310 ("usb: typec: tpcm: Fix issues with power being
> removed during reset") fixes the boot issues for bus powered devices such
> as LibreTech Renegade Elite/Firefly, it trades off the CC pins NOT being
> Hi-Zed during errory recovery (i.e PORT_RESET) for devices which are NOT
> bus powered(a.k.a self powered). This change Hi-Zs the CC pins only for
> self powered devices, thus preventing brown out for bus powered devices
>
> Adhering to spec is gaining more importance due to the Common charger
> initiative enforced by the European Union.
>
> Quoting from the spec:
> 4.5.2.2.2.1 ErrorRecovery State Requirements
> The port shall not drive VBUS or VCONN, and shall present a
> high-impedance to ground (above zOPEN) on its CC1 and CC2 pins.
>
> Hi-Zing the CC pins is the inteded behavior for PORT_RESET.
> CC pins are set to default state after tErrorRecovery in
> PORT_RESET_WAIT_OFF.
>
> 4.5.2.2.2.2 Exiting From ErrorRecovery State
> A Sink shall transition to Unattached.SNK after tErrorRecovery.
> A Source shall transition to Unattached.SRC after tErrorRecovery.
>
> Fixes: 69f89168b310 ("usb: typec: tpcm: Fix issues with power being removed during reset")
> Cc: stable@vger.kernel.org
> Cc: Mark Brown <broonie@kernel.org>
> Signed-off-by: Badhri Jagan Sridharan <badhri@google.com>
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> ---
> Changes since V1:
> * Fix CC for linux stable
> ---
> drivers/usb/typec/tcpm/tcpm.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c
> index c9a78f55ca48..bbe1381232eb 100644
> --- a/drivers/usb/typec/tcpm/tcpm.c
> +++ b/drivers/usb/typec/tcpm/tcpm.c
> @@ -5593,8 +5593,11 @@ static void run_state_machine(struct tcpm_port *port)
> break;
> case PORT_RESET:
> tcpm_reset_port(port);
> - tcpm_set_cc(port, tcpm_default_state(port) == SNK_UNATTACHED ?
> - TYPEC_CC_RD : tcpm_rp_cc(port));
> + if (port->self_powered)
> + tcpm_set_cc(port, TYPEC_CC_OPEN);
> + else
> + tcpm_set_cc(port, tcpm_default_state(port) == SNK_UNATTACHED ?
> + TYPEC_CC_RD : tcpm_rp_cc(port));
> tcpm_set_state(port, PORT_RESET_WAIT_OFF,
> PD_T_ERROR_RECOVERY);
> break;
>
> base-commit: a560a5672826fc1e057068bda93b3d4c98d037a2
> --
> 2.44.0.rc1.240.g4c46232300-goog
--
heikki
prev parent reply other threads:[~2024-03-12 9:03 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-28 0:05 Badhri Jagan Sridharan
2024-02-28 13:11 ` Mark Brown
2024-03-12 9:03 ` Heikki Krogerus [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZfAaea3+HJ0P2zXn@kuha.fi.intel.com \
--to=heikki.krogerus@linux.intel.com \
--cc=amitsd@google.com \
--cc=badhri@google.com \
--cc=broonie@kernel.org \
--cc=frank.wang@rock-chips.com \
--cc=gregkh@linuxfoundation.org \
--cc=kyletso@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=rdbabiera@google.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®