On 9/20/23 5:32 AM, Utkarsh Patel wrote: > Mux agent driver can configure cable details such as cable type and > cable speed received as a part of displayport configuration to support > Displayport Alternate mode 2.1. > > Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > Reviewed-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> > Signed-off-by: Utkarsh Patel <utkarsh.h.patel@xxxxxxxxx> > --- > Changes in v4: > - No change. > > Changes in v3: > - No change. > > Changes in v2: > - No change. > > drivers/usb/typec/mux/intel_pmc_mux.c | 24 ++++++++++++++++++++++++ > 1 file changed, 24 insertions(+) > > diff --git a/drivers/usb/typec/mux/intel_pmc_mux.c b/drivers/usb/typec/mux/intel_pmc_mux.c > index 60ed1f809130..233958084b43 100644 > --- a/drivers/usb/typec/mux/intel_pmc_mux.c > +++ b/drivers/usb/typec/mux/intel_pmc_mux.c [...] > @@ -293,6 +299,24 @@ pmc_usb_mux_dp(struct pmc_usb_port *port, struct typec_mux_state *state) > req.mode_data |= (state->mode - TYPEC_STATE_MODAL) << > PMC_USB_ALTMODE_DP_MODE_SHIFT; > > + if (!is_pmc_mux_tbt(port->pmc->iom_adev)) { > + u8 cable_speed = (data->conf & DP_CONF_SIGNALLING_MASK) >> > + DP_CONF_SIGNALLING_SHIFT; > + > + u8 cable_type = (data->conf & DP_CONF_CABLE_TYPE_MASK) >> > + DP_CONF_CABLE_TYPE_SHIFT; > + > + req.mode_data |= PMC_USB_ALTMODE_CABLE_SPD(cable_speed); > + > + if (cable_type == DP_CONF_CABLE_TYPE_OPTICAL) > + req.mode_data |= PMC_USB_ALTMODE_CABLE_TYPE; > + else if (cable_type == DP_CONF_CABLE_TYPE_RE_TIMER) > + req.mode_data |= PMC_USB_ALTMODE_ACTIVE_CABLE | > + PMC_USB_ALTMODE_RETIMER_CABLE; > + else if (cable_type == DP_CONF_CABLE_TYPE_RE_DRIVER) > + req.mode_data |= PMC_USB_ALTMODE_ACTIVE_CABLE; Why not *switch* instead of string of *if*s? > + } > + > ret = pmc_usb_command(port, (void *)&req, sizeof(req)); > if (ret) > return ret; MBR, Sergey