xhci: mediatek: support MTK xHCI host controller
authorChunfeng Yun <chunfeng.yun@mediatek.com>
Tue, 24 Nov 2015 11:09:55 +0000 (13:09 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 1 Dec 2015 18:45:51 +0000 (10:45 -0800)
commit0cbd4b34cda9dfd36b6c26b692dee181e0100b67
tree2e90f0a0e59b8289a3497293b81baead68c4c76f
parentc74732e3c5f02b09ad839238622a8bd4fad75f84
xhci: mediatek: support MTK xHCI host controller

There some vendor quirks for MTK xhci host controller:
1. It defines some extra SW scheduling parameters for HW
  to minimize the scheduling effort for synchronous and
  interrupt endpoints. The parameters are put into reseved
  DWs of slot context and endpoint context.
2. Its IMODI unit for Interrupter Moderation register is
  8 times as much as that defined in xHCI spec.
3. Its TDS in  Normal TRB defines a number of packets that
  remains to be transferred for a TD after processing all
  Max packets in all previous TRBs.

Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Tested-by: Daniel Thompson <daniel.thompson@linaro.org>
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/Kconfig
drivers/usb/host/Makefile
drivers/usb/host/xhci-mtk-sch.c [new file with mode: 0644]
drivers/usb/host/xhci-mtk.c [new file with mode: 0644]
drivers/usb/host/xhci-mtk.h [new file with mode: 0644]
drivers/usb/host/xhci-ring.c
drivers/usb/host/xhci.c
drivers/usb/host/xhci.h