]> git.baikalelectronics.ru Git - kernel.git/commit
usb: host: ehci-tegra: Grab the correct UTMI pads reset
authorThierry Reding <treding@nvidia.com>
Thu, 26 May 2016 15:23:29 +0000 (17:23 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 Jun 2016 05:15:25 +0000 (22:15 -0700)
commit43cffa98247b9d9ccee84ccf316f9017b883278e
tree270fc9e383c8fb0a9bc90a5833eb63e87e5d4efd
parentf8626076272a8eda3211e175f1af82fed9d86e1d
usb: host: ehci-tegra: Grab the correct UTMI pads reset

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 bf76a7dbdcdf ("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.

Fixes: bf76a7dbdcdf ("USB: EHCI: tegra: Fix probe order issue leading to broken USB")
Acked-by: Jon Hunter <jonathanh@nvidia.com>
Cc: stable@vger.kernel.org
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/ehci-tegra.c