ehci/penwell: Do EHCI hardware workaround.
authorYu Wang <yu.y.wang@intel.com>
Mon, 16 Jan 2012 06:09:12 +0000 (14:09 +0800)
committerbuildbot <buildbot@intel.com>
Wed, 8 Feb 2012 13:13:50 +0000 (05:13 -0800)
commit598950e713cbf65c8d992ba6fb0d38c4e1a4b494
treebe0e2144a3604709daa2a8560bc8183b0e577942
parenteec713cbc47774d5051a45c38c9fdf4ddb2d2c06
ehci/penwell: Do EHCI hardware workaround.

BZ: 18046

Sometimes, the mouse and keyboard will auto disconnect during using. And
after disconnect 60 seconds, host auto re-enum the device.

Rootcause:
On Intel Medfield platform, EHCI hardware update FRINDEX register before
update completed QH's ACTIVE flag. This behavior caused EHCI driver
can't find the completed QH in some cases. So EHCI would not send the
QH which is already completed. It need to SW to re-submit QH. But EHCI
driver lost it, then class driver would not resubmit URB forever.

Change-Id: Ic492e162b001d3cdaf1d098f9366c625e0ad10de
Signed-off-by: Yu Wang <yu.y.wang@intel.com>
Reviewed-on: http://android.intel.com:8080/32125
Reviewed-by: Gross, Mark <mark.gross@intel.com>
Reviewed-by: Wu, Hao <hao.wu@intel.com>
Reviewed-by: Meng, Zhe <zhe.meng@intel.com>
Tested-by: Meng, Zhe <zhe.meng@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
drivers/usb/host/ehci-sched.c
drivers/usb/host/pci-quirks.c
drivers/usb/host/pci-quirks.h