]> git.karo-electronics.de Git - linux-beck.git/commit
usb: host: ehci-msm: Fix register initialization
authorJack Pham <jackp@codeaurora.org>
Fri, 11 Dec 2015 00:28:56 +0000 (18:28 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 25 Jan 2016 04:51:18 +0000 (20:51 -0800)
commite8f55b91482247b0b11b2f2f12188d9be55bbd19
tree11115ee2a196c39fc00672ac655f08a406735cf2
parentf13f0e65606c4877a9c16b3a8d1272fcaaa987a8
usb: host: ehci-msm: Fix register initialization

The default value for the 'transceiver select' field of
the PORTSC register may not always be correct. Previously
the phy-msm-usb driver would do this for us, but since
ehci-msm can now be instantiated standalone without any PHY
driver, the register needs to be explicitly initialized to
ULPI mode to properly communicate with the PHY.

This is not readily apparent, as firmware or bootloader code
also happen to pre-initialize this for us. However, it can
manifest when performing a driver unbind/rebind as follows:

 cd /sys/bus/platform/drivers/msm_hsusb_host
 echo QCOM8040:00 > unbind
 echo QCOM8040:00 > bind

The EHCI core executes a controller reset as part of this,
and as a result the register in question would revert to
its default state and must be re-initialized properly.
Furthermore this may be useful in the future when adding
PM suspend/resume support.

Signed-off-by: Jack Pham <jackp@codeaurora.org>
Signed-off-by: Timur Tabi <timur@codeaurora.org>
Reviewed-by: Andy Gross <andy.gross@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/ehci-msm.c