linux-tegra.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 1/2] usb: host: ehci-tegra: Grab the correct UTMI pads reset
@ 2016-05-04 14:39 Thierry Reding
       [not found] ` <1462372800-30900-1-git-send-email-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  0 siblings, 1 reply; 17+ messages in thread
From: Thierry Reding @ 2016-05-04 14:39 UTC (permalink / raw)
  To: Alan Stern, Greg Kroah-Hartman
  Cc: Stephen Warren, Thierry Reding, Alexandre Courbot, Jon Hunter,
	linux-usb, linux-tegra, linux-kernel

From: Thierry Reding <treding@nvidia.com>

There are three EHCI controllers on Tegra SoCs, each with its own reset
line. However, the first controller contains a set of UTMI configuration
registers that are shared with its siblings. These registers will only
be reset as part of the first controller's reset. For proper operation
it must be ensured that the UTMI configuration registers are reset
before any of the EHCI controllers are enabled, irrespective of the
probe order.

Commit a47cc24cd1e5 ("USB: EHCI: tegra: Fix probe order issue leading to
broken USB") introduced code that ensures the first controller is always
reset before setting up any of the controllers, and is never again reset
afterwards.

This code, however, grabs the wrong reset. Each EHCI controller has two
reset controls attached: 1) the USB controller reset and 2) the UTMI
pads reset (really the first controller's reset). In order to reset the
UTMI pads registers the code must grab the second reset, but instead it
grabbing the first.

Signed-off-by: Thierry Reding <treding@nvidia.com>
---
Stephen, Alex, Jon, have you ever encountered cases where UTMI might not
have worked correctly? It seems that this code was pulsing the wrong
reset line and therefore the UTMI pads would never be reset unless the
first USB controller was probed before all others. I've never seen any
such problems myself, so I'm unsure about whether it's worth Cc'ing the
patch to stable@vger.kernel.org.

 drivers/usb/host/ehci-tegra.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/host/ehci-tegra.c b/drivers/usb/host/ehci-tegra.c
index 4031b372008e..c1c1024a054c 100644
--- a/drivers/usb/host/ehci-tegra.c
+++ b/drivers/usb/host/ehci-tegra.c
@@ -89,7 +89,7 @@ static int tegra_reset_usb_controller(struct platform_device *pdev)
 	if (!usb1_reset_attempted) {
 		struct reset_control *usb1_reset;
 
-		usb1_reset = of_reset_control_get(phy_np, "usb");
+		usb1_reset = of_reset_control_get(phy_np, "utmi-pads");
 		if (IS_ERR(usb1_reset)) {
 			dev_warn(&pdev->dev,
 				 "can't get utmi-pads reset from the PHY\n");
-- 
2.8.0

^ permalink raw reply related	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2016-05-05 17:12 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-04 14:39 [PATCH v3 1/2] usb: host: ehci-tegra: Grab the correct UTMI pads reset Thierry Reding
     [not found] ` <1462372800-30900-1-git-send-email-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-05-04 14:40   ` [PATCH v3 2/2] usb: host: ehci-tegra: Avoid getting the same reset twice Thierry Reding
     [not found]     ` <1462372800-30900-2-git-send-email-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-05-04 17:22       ` Philipp Zabel
2016-05-04 20:16         ` Thierry Reding
2016-05-04 17:23       ` Stephen Warren
     [not found]         ` <572A3008.4020602-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2016-05-04 20:25           ` Thierry Reding
2016-05-05  8:05             ` Hans de Goede
     [not found]               ` <fdf3583d-636e-5619-5df6-17b6ae331ac9-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-05-05 16:00                 ` Stephen Warren
     [not found]                   ` <572B6E1B.3060901-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2016-05-05 17:12                     ` Hans de Goede
2016-05-05 17:05       ` Jon Hunter
     [not found]         ` <572B7D48.6010807-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2016-05-05 17:10           ` Jon Hunter
2016-05-04 14:57   ` [PATCH v3 1/2] usb: host: ehci-tegra: Grab the correct UTMI pads reset Greg Kroah-Hartman
     [not found]     ` <20160504145710.GA14708-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2016-05-04 15:26       ` Thierry Reding
     [not found]         ` <20160504152648.GA31420-EkSeR96xj6Pcmrwk2tT4+A@public.gmane.org>
2016-05-05 16:05           ` Tuomas Tynkkynen
2016-05-04 17:14   ` Stephen Warren
     [not found]     ` <572A2E0A.8040408-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2016-05-04 20:30       ` Thierry Reding
2016-05-05  7:39   ` Jon Hunter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).