lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170411001543.1338-1-tony@atomide.com>
Date:   Mon, 10 Apr 2017 17:15:43 -0700
From:   Tony Lindgren <tony@...mide.com>
To:     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>,
        Keshava Munegowda <keshava_mgowda@...com>,
        Marcel Partap <mpartap@....net>,
        Michael Scott <michael.scott@...aro.org>,
        Roger Quadros <rogerq@...com>,
        Sebastian Reichel <sre@...nel.org>
Subject: [PATCH] mfd: omap-usb-tll: Fix inverted bit use for USB TLL mode

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.

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) {
 				/*
-- 
2.12.2

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ