From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753970AbdDKHbc (ORCPT ); Tue, 11 Apr 2017 03:31:32 -0400 Received: from fllnx209.ext.ti.com ([198.47.19.16]:30779 "EHLO fllnx209.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753823AbdDKHaK (ORCPT ); Tue, 11 Apr 2017 03:30:10 -0400 Subject: Re: [PATCH] mfd: omap-usb-tll: Fix inverted bit use for USB TLL mode To: Tony Lindgren , Lee Jones , Samuel Ortiz References: <20170411001543.1338-1-tony@atomide.com> CC: , , Felipe Balbi , Marcel Partap , Michael Scott , Sebastian Reichel From: Roger Quadros Message-ID: <4cd82ba4-435e-cffa-d152-98860716f38b@ti.com> Date: Tue, 11 Apr 2017 10:28:52 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170411001543.1338-1-tony@atomide.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 > Cc: Keshava Munegowda > Cc: Marcel Partap > Cc: Michael Scott > Cc: Roger Quadros > Cc: Sebastian Reichel > Signed-off-by: Tony Lindgren > --- > 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) { > /* >