Hi Tony, On 11/04/17 03:15, Tony Lindgren wrote: > Commit 16fa3dc75c22 ("mfd: omap-usb-tll: HOST TLL platform driver") > added support for USB TLL, but uses OMAP_TLL_CHANNEL_CONF_ULPINOBITSTUFF > bit the wrong way. The comments in the code are mostly correct, but the > inverted use of OMAP_TLL_CHANNEL_CONF_ULPINOBITSTUFF causes the register > to be enabled instead of disabled like the comments say. And the > idle mode should be only disabled for UTMIAUTOIDLE while ULPIAUTOIDLE > can be enabled. > > This matches the TLL_CHANNEL_CONF_i register configuration for ehci-tll > in the Motorola Linux kernel tree for Wrigley 3G LTE modem on droid 4. > Without this patch the modem can only be pinged few times before it > stops responding. Also lsub -v output shows errors without this patch. This patch does 2 things. - Fixes the bad commit by correctly disabling Bitstuffing - Enables ULPI Autoidle. Is enabling ULPI autoidle required to fix the LTE modem issue? If not I'd put it in a separate patch. cheers, -roger > > Fixes: 16fa3dc75c22 ("mfd: omap-usb-tll: HOST TLL platform driver") > Cc: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> > Cc: Keshava Munegowda <keshava_mgowda@xxxxxx> > Cc: Marcel Partap <mpartap@xxxxxxx> > Cc: Michael Scott <michael.scott@xxxxxxxxxx> > Cc: Roger Quadros <rogerq@xxxxxx> > Cc: Sebastian Reichel <sre@xxxxxxxxxx> > Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx> > --- > drivers/mfd/omap-usb-tll.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/drivers/mfd/omap-usb-tll.c b/drivers/mfd/omap-usb-tll.c > --- a/drivers/mfd/omap-usb-tll.c > +++ b/drivers/mfd/omap-usb-tll.c > @@ -373,12 +373,13 @@ int omap_tll_init(struct usbhs_omap_platform_data *pdata) > } else if (pdata->port_mode[i] == > OMAP_EHCI_PORT_MODE_TLL) { > /* > - * Disable AutoIdle, BitStuffing > - * and use SDR Mode > + * Disable UTMI AutoIdle, BitStuffing > + * and use SDR Mode. Enable ULPI AutoIdle. > */ > - reg &= ~(OMAP_TLL_CHANNEL_CONF_UTMIAUTOIDLE > - | OMAP_TLL_CHANNEL_CONF_ULPINOBITSTUFF > - | OMAP_TLL_CHANNEL_CONF_ULPIDDRMODE); > + reg &= ~(OMAP_TLL_CHANNEL_CONF_UTMIAUTOIDLE | > + OMAP_TLL_CHANNEL_CONF_ULPIDDRMODE); > + reg |= OMAP_TLL_CHANNEL_CONF_ULPINOBITSTUFF; > + reg |= OMAP_TLL_CHANNEL_CONF_ULPI_ULPIAUTOIDLE; > } else if (pdata->port_mode[i] == > OMAP_EHCI_PORT_MODE_HSIC) { > /* > -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html