On Tue, Apr 16, 2024 at 05:20:50AM +0300, Dmitry Baryshkov wrote: > Make typec_set_mode() also handle retimers in addition to muxes. Setting > the USB mode requires retimers to be configured in addition to just > switching the mux configuration. > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> Reviewed-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> > --- > drivers/usb/typec/class.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c > index 9610e647a8d4..28d395535bd1 100644 > --- a/drivers/usb/typec/class.c > +++ b/drivers/usb/typec/class.c > @@ -2095,14 +2095,21 @@ EXPORT_SYMBOL_GPL(typec_get_orientation); > * @mode: Accessory Mode, USB Operation or Safe State > * > * Configure @port for Accessory Mode @mode. This function will configure the > - * muxes needed for @mode. > + * muxes and retimeres needed for @mode. > */ > int typec_set_mode(struct typec_port *port, int mode) > { > + struct typec_retimer_state retimer_state = { }; > struct typec_mux_state state = { }; > + int ret; > > + retimer_state.mode = mode; > state.mode = mode; > > + ret = typec_retimer_set(port->retimer, &retimer_state); > + if (ret) > + return ret; > + > return typec_mux_set(port->mux, &state); > } > EXPORT_SYMBOL_GPL(typec_set_mode); > > -- > 2.39.2 -- heikki