On Sat, Jan 13, 2018 at 04:41:47PM +0100, Michael Trimarchi wrote: > evdo bit can be set or reset. We can not trust evdo bit > status after bootloader stage > > Signed-off-by: Michael Trimarchi <michael@xxxxxxxxxxxxxxxxxxxx> > --- > drivers/usb/chipidea/usbmisc_imx.c | 20 ++++++++++++-------- > 1 file changed, 12 insertions(+), 8 deletions(-) > > diff --git a/drivers/usb/chipidea/usbmisc_imx.c b/drivers/usb/chipidea/usbmisc_imx.c > index a52f5a8..1f47ef6 100644 > --- a/drivers/usb/chipidea/usbmisc_imx.c > +++ b/drivers/usb/chipidea/usbmisc_imx.c > @@ -151,14 +151,18 @@ static int usbmisc_imx25_post(struct imx_usbmisc_data *data) > if (data->index) > return 0; > > - if (data->evdo) { > - spin_lock_irqsave(&usbmisc->lock, flags); > - reg = usbmisc->base + MX25_USB_PHY_CTRL_OFFSET; > - val = readl(reg); > - writel(val | MX25_BM_EXTERNAL_VBUS_DIVIDER, reg); > - spin_unlock_irqrestore(&usbmisc->lock, flags); > - usleep_range(5000, 10000); /* needed to stabilize voltage */ > - } > + spin_lock_irqsave(&usbmisc->lock, flags); > + reg = usbmisc->base + MX25_USB_PHY_CTRL_OFFSET; > + val = readl(reg); > + > + if (data->evdo) > + val |= MX25_BM_EXTERNAL_VBUS_DIVIDER; > + else > + val &= ~MX25_BM_EXTERNAL_VBUS_DIVIDER; > + > + writel(val, reg); > + spin_unlock_irqrestore(&usbmisc->lock, flags); > + usleep_range(5000, 10000); /* needed to stabilize voltage */ Acked-by: Peter Chen <peter.chen@xxxxxxx> Peter -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html