On Fri, Mar 29, 2024 at 08:15:36AM +0200, Dmitry Baryshkov wrote: > UCSI driver will attempt to set a USB PD device only if it was able to > read PDOs from the firmware. This results in suboptimal behaviour, since > the PD device will be created anyway. Move calls to > typec_port_set_usb_power_delivery() out of conditional code and call it > after reading capabilities. > > Fixes: b04e1747fbcc ("usb: typec: ucsi: Register USB Power Delivery Capabilities") > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> Reviewed-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> > --- > drivers/usb/typec/ucsi/ucsi.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c > index 7666142d8bbb..d1a45ce7f660 100644 > --- a/drivers/usb/typec/ucsi/ucsi.c > +++ b/drivers/usb/typec/ucsi/ucsi.c > @@ -1569,7 +1569,6 @@ static int ucsi_register_port(struct ucsi *ucsi, struct ucsi_connector *con) > } > > con->port_source_caps = pd_cap; > - typec_port_set_usb_power_delivery(con->port, con->pd); > } > > memset(&pd_caps, 0, sizeof(pd_caps)); > @@ -1586,9 +1585,10 @@ static int ucsi_register_port(struct ucsi *ucsi, struct ucsi_connector *con) > } > > con->port_sink_caps = pd_cap; > - typec_port_set_usb_power_delivery(con->port, con->pd); > } > > + typec_port_set_usb_power_delivery(con->port, con->pd); > + > /* Alternate modes */ > ret = ucsi_register_altmodes(con, UCSI_RECIPIENT_CON); > if (ret) { > > -- > 2.39.2 -- heikki