[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4cd82ba4-435e-cffa-d152-98860716f38b@ti.com>
Date: Tue, 11 Apr 2017 10:28:52 +0300
From: Roger Quadros <rogerq@...com>
To: Tony Lindgren <tony@...mide.com>, Lee Jones <lee.jones@...aro.org>,
Samuel Ortiz <sameo@...ux.intel.com>
CC: <linux-kernel@...r.kernel.org>, <linux-omap@...r.kernel.org>,
Felipe Balbi <felipe.balbi@...ux.intel.com>,
Marcel Partap <mpartap@....net>,
Michael Scott <michael.scott@...aro.org>,
Sebastian Reichel <sre@...nel.org>
Subject: Re: [PATCH] mfd: omap-usb-tll: Fix inverted bit use for USB TLL mode
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@...ux.intel.com>
> Cc: Keshava Munegowda <keshava_mgowda@...com>
> Cc: Marcel Partap <mpartap@....net>
> Cc: Michael Scott <michael.scott@...aro.org>
> Cc: Roger Quadros <rogerq@...com>
> Cc: Sebastian Reichel <sre@...nel.org>
> Signed-off-by: Tony Lindgren <tony@...mide.com>
> ---
> 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) {
> /*
>
Powered by blists - more mailing lists