Messages in this thread | | | From | "Shaikh, Azhar" <> | Subject | RE: [PATCH] platform/chrome: cros_ec_typec: Avoid setting usb role twice during disconnect | Date | Mon, 3 Aug 2020 15:57:36 +0000 |
| |
Hi,
> -----Original Message----- > From: Heikki Krogerus <heikki.krogerus@linux.intel.com> > Sent: Friday, July 31, 2020 6:37 AM > To: Shaikh, Azhar <azhar.shaikh@intel.com> > Cc: bleung@chromium.org; enric.balletbo@collabora.com; > groeck@chromium.org; pmalani@chromium.org; linux- > kernel@vger.kernel.org; Patel, Utkarsh H <utkarsh.h.patel@intel.com>; > Bowman, Casey G <casey.g.bowman@intel.com>; Mani, Rajmohan > <rajmohan.mani@intel.com> > Subject: Re: [PATCH] platform/chrome: cros_ec_typec: Avoid setting usb > role twice during disconnect > > Hi, > > I guess this is was supposed to be PATCH v2 2/2, right? >
That is correct.
> On Thu, Jul 30, 2020 at 03:52:57PM -0700, Azhar Shaikh wrote: > > On disconnect port partner is removed and usb role is set to NONE. > > But then in cros_typec_port_update() the role is set again. > > Avoid this by moving usb_role_switch_set_role() to > > cros_typec_configure_mux(). > > > > Signed-off-by: Azhar Shaikh <azhar.shaikh@intel.com> > > Suggested-by: Prashant Malani <pmalani@chromium.org> > > Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> > > > --- > > drivers/platform/chrome/cros_ec_typec.c | 10 +++++++--- > > 1 file changed, 7 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/platform/chrome/cros_ec_typec.c > > b/drivers/platform/chrome/cros_ec_typec.c > > index eb4713b7ae14..df97431b2275 100644 > > --- a/drivers/platform/chrome/cros_ec_typec.c > > +++ b/drivers/platform/chrome/cros_ec_typec.c > > @@ -515,6 +515,12 @@ static int cros_typec_configure_mux(struct > cros_typec_data *typec, int port_num, > > if (ret) > > return ret; > > > > + ret = usb_role_switch_set_role(typec->ports[port_num]->role_sw, > > + pd_ctrl->role & > PD_CTRL_RESP_ROLE_DATA > > + ? USB_ROLE_HOST : USB_ROLE_DEVICE); > > + if (ret) > > + return ret; > > + > > if (mux_flags & USB_PD_MUX_TBT_COMPAT_ENABLED) { > > ret = cros_typec_enable_tbt(typec, port_num, pd_ctrl); > > } else if (mux_flags & USB_PD_MUX_DP_ENABLED) { @@ -589,9 > +595,7 @@ > > static int cros_typec_port_update(struct cros_typec_data *typec, int > port_num) > > if (ret) > > dev_warn(typec->dev, "Configure muxes failed, err = %d\n", > ret); > > > > - return usb_role_switch_set_role(typec->ports[port_num]- > >role_sw, > > - resp.role & PD_CTRL_RESP_ROLE_DATA > > - ? USB_ROLE_HOST : USB_ROLE_DEVICE); > > + return ret; > > } > > > > static int cros_typec_get_cmd_version(struct cros_typec_data *typec) > > -- > > 2.17.1 > > thanks, > > -- > heikki
| |