xhci: tegra: rewind firmware log buffer across ELPG
authorJC Kuo <jckuo@nvidia.com>
Fri, 5 Jul 2013 11:38:35 +0000 (19:38 +0800)
committerDan Willemsen <dwillemsen@nvidia.com>
Sat, 14 Sep 2013 20:31:44 +0000 (13:31 -0700)
commit5b6531a0fa3c708f7468567b52cacc32afd87676
tree60574be006f699233f2f1e1cb35bcae889b5e3da
parent15231ccc53c90b4304648d3635800d6440e7f601
xhci: tegra: rewind firmware log buffer across ELPG

In ELPG, firmware log context is gone. Firmware doesn't save and
restore log enqueue pointer, dequeue pointer, and sequence number at
CSS/CRS.
In order to minimize complexity of firmware design, driver has to
  1) make sure all firmware log is processed after enters ELPG,
  2) rewind firmware log buffer before exit ELPG,
so that firmware will not have a chance to corrupt log buffer.

This commit also wakes firmware log thread in xhci isr. Idea is that
when driver gets interrupted, there must be some firmware logs unread.
xhci isr is a perfect timing to wake log thread up.

bug 1320242

Change-Id: Idbdcf347bc30cbae3249176036eb15672664dadc
Signed-off-by: JC Kuo <jckuo@nvidia.com>
Reviewed-on: http://git-master/r/247960
Reviewed-by: Ajay Gupta <ajayg@nvidia.com>
Tested-by: Ajay Gupta <ajayg@nvidia.com>
Reviewed-by: Chao Xu <cxu@nvidia.com>
drivers/usb/host/xhci-tegra.c