All of lore.kernel.org
 help / color / mirror / Atom feed
From: William McVicker <willmcvicker@google.com>
To: Guenter Roeck <linux@roeck-us.net>
Cc: Badhri Jagan Sridharan <badhri@google.com>,
	gregkh@linuxfoundation.org, heikki.krogerus@linux.intel.com,
	kyletso@google.com, linux-usb@vger.kernel.org,
	linux-kernel@vger.kernel.org, stable@vger.kernel.org
Subject: Re: [PATCH v3] usb: typec: tcpm: Fix sink caps op current check
Date: Tue, 7 Nov 2023 17:25:40 -0800	[thread overview]
Message-ID: <ZUrjlO7mtMFl96f1@google.com> (raw)
In-Reply-To: <feb4297d-eaa4-40b0-824d-af2c6bdb97e3@roeck-us.net>

On 10/31/2023, Guenter Roeck wrote:
> On 10/31/23 18:28, Badhri Jagan Sridharan wrote:
> > TCPM checks for sink caps operational current even when PD is disabled.
> > This incorrectly sets tcpm_set_charge() when PD is disabled.
> > Check for sink caps only when PD is enabled.
> > 
> > [   97.572342] Start toggling
> > [   97.578949] CC1: 0 -> 0, CC2: 0 -> 0 [state TOGGLING, polarity 0, disconnected]
> > [   99.571648] CC1: 0 -> 0, CC2: 0 -> 4 [state TOGGLING, polarity 0, connected]
> > [   99.571658] state change TOGGLING -> SNK_ATTACH_WAIT [rev3 NONE_AMS]
> > [   99.571673] pending state change SNK_ATTACH_WAIT -> SNK_DEBOUNCED @ 170 ms [rev3 NONE_AMS]
> > [   99.741778] state change SNK_ATTACH_WAIT -> SNK_DEBOUNCED [delayed 170 ms]
> > [   99.789283] CC1: 0 -> 0, CC2: 4 -> 5 [state SNK_DEBOUNCED, polarity 0, connected]
> > [   99.789306] state change SNK_DEBOUNCED -> SNK_DEBOUNCED [rev3 NONE_AMS]
> > [   99.903584] VBUS on
> > [   99.903591] state change SNK_DEBOUNCED -> SNK_ATTACHED [rev3 NONE_AMS]
> > [   99.903600] polarity 1
> > [   99.910155] enable vbus discharge ret:0
> > [   99.910160] Requesting mux state 1, usb-role 2, orientation 2
> > [   99.946791] state change SNK_ATTACHED -> SNK_STARTUP [rev3 NONE_AMS]
> > [   99.946798] state change SNK_STARTUP -> SNK_DISCOVERY [rev3 NONE_AMS]
> > [   99.946800] Setting voltage/current limit 5000 mV 500 mA
> > [   99.946803] vbus=0 charge:=1
> > [  100.027139] state change SNK_DISCOVERY -> SNK_READY [rev3 NONE_AMS]
> > [  100.027145] Setting voltage/current limit 5000 mV 3000 mA
> > [  100.466830] VBUS on
> > 
> > Cc: stable@vger.kernel.org
> > Fixes: 803b1c8a0cea ("usb: typec: tcpm: not sink vbus if operational current is 0mA")
> > Signed-off-by: Badhri Jagan Sridharan <badhri@google.com>
> 
> Reviewed-by: Guenter Roeck <linux@roeck-us.net>

Thanks for catching this Badhri! I verified this fixes the charging issues seen
on Pixel 6 and 7 with the mainline and v6.1 kernel. Feel free to add

Tested-by: Will McVicker <willmcvicker@google.com>

Thanks,
Will
> 
> > ---
> > Changes since v2:
> > * Fix the "Fixes" tag
> > * Refactor code based on Guenter Roeck's suggestion.
> > 
> > Changes since v1:
> > * Fix commit title and description to address comments from Guenter Roeck
> > ---
> >   drivers/usb/typec/tcpm/tcpm.c | 3 ++-
> >   1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c
> > index 058d5b853b57..afc791ab6d4f 100644
> > --- a/drivers/usb/typec/tcpm/tcpm.c
> > +++ b/drivers/usb/typec/tcpm/tcpm.c
> > @@ -4273,7 +4273,8 @@ static void run_state_machine(struct tcpm_port *port)
> >   				current_lim = PD_P_SNK_STDBY_MW / 5;
> >   			tcpm_set_current_limit(port, current_lim, 5000);
> >   			/* Not sink vbus if operational current is 0mA */
> > -			tcpm_set_charge(port, !!pdo_max_current(port->snk_pdo[0]));
> > +			tcpm_set_charge(port, !port->pd_supported ||
> > +					pdo_max_current(port->snk_pdo[0]));
> >   			if (!port->pd_supported)
> >   				tcpm_set_state(port, SNK_READY, 0);
> > 
> > base-commit: c70793fb7632a153862ee9060e6d48131469a29c
> 

  reply	other threads:[~2023-11-08  1:25 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-01  1:28 [PATCH v3] usb: typec: tcpm: Fix sink caps op current check Badhri Jagan Sridharan
2023-11-01  1:48 ` Guenter Roeck
2023-11-08  1:25   ` William McVicker [this message]
2023-11-08  7:38 ` Heikki Krogerus

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=ZUrjlO7mtMFl96f1@google.com \
    --to=willmcvicker@google.com \
    --cc=badhri@google.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=kyletso@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --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 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.