lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 13 Jan 2021 22:46:07 +0800 From: Kyle Tso <kyletso@...gle.com> To: Badhri Jagan Sridharan <badhri@...gle.com> Cc: Heikki Krogerus <heikki.krogerus@...ux.intel.com>, Guenter Roeck <linux@...ck-us.net>, Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Hans de Goede <hdegoede@...hat.com>, USB <linux-usb@...r.kernel.org>, LKML <linux-kernel@...r.kernel.org>, Will McVicker <willmcvicker@...gle.com> Subject: Re: [PATCH v5 1/3] usb: typec: tcpm: AMS and Collision Avoidance On Wed, Jan 13, 2021 at 2:11 PM Badhri Jagan Sridharan <badhri@...gle.com> wrote: > > Hi Kyle, > > Do you want to handle the FAST_ROLE_SWAP case as well ? > I forgot this part.... Thanks for catching this. I will fix it. > You would have to fix up in two places: > > #1 > - if (port->state == SNK_READY) > - tcpm_set_state(port, FR_SWAP_SEND, 0); > - else > + if (port->state == SNK_READY) { > + int ret; > + > + port->upcoming_state = FR_SWAP_SEND; > + ret = tcpm_ams_start(port, FAST_ROLE_SWAP); > + if (ret == -EAGAIN) > + port->upcoming_state = INVALID_STATE; > + } else { > tcpm_log(port, "Discarding FRS_SIGNAL! > Not in sink ready"); > + } > > #2 > --- a/drivers/usb/typec/tcpm/tcpm.c > +++ b/drivers/usb/typec/tcpm/tcpm.c > @@ -4449,9 +4449,14 @@ static void tcpm_enable_frs_work(struct > kthread_work *work) > if (port->state != SNK_READY || port->vdm_state != > VDM_STATE_DONE || port->send_discover) > goto resched; > > - tcpm_set_state(port, GET_SINK_CAP, 0); > - port->sink_cap_done = true; > - > + port->upcoming_state = GET_SINK_CAP; > + ret = tcpm_ams_start(port, GET_SINK_CAPABILITIES); > + if (ret == -EAGAIN) { > + port->upcoming_state = INVALID_STATE; > + } else { > + port->sink_cap_done = true; > + goto unlock; > + } > > Thanks, > Badhri > >
Powered by blists - more mailing lists