usb: musb: do not use dma for control transfers
authorAnand Gadiyar <gadiyar@ti.com>
Thu, 18 Nov 2010 13:24:17 +0000 (18:54 +0530)
committerFelipe Balbi <balbi@ti.com>
Mon, 22 Nov 2010 10:55:02 +0000 (12:55 +0200)
commit07a8cdd2bb17a4da68136d963b8bc71959bd31a5
treefbc64d9842b38848ee7b4d410bab626ff2abd893
parentbb324b08165d5656d221af013ed9994a54e455be
usb: musb: do not use dma for control transfers

The Inventra DMA engine used with the MUSB controller in many
SoCs cannot use DMA for control transfers on EP0, but can use
DMA for all other transfers.

The USB core maps urbs for DMA if hcd->self.uses_dma is true.
(hcd->self.uses_dma is true for MUSB as well).

Split the uses_dma flag into two - one that says if the
controller needs to use PIO for control transfers, and
another which says if the controller uses DMA (for all
other transfers).

Also, populate this flag for all MUSB by default.

(Tested on OMAP3 and OMAP4 boards, with EHCI and MUSB HCDs
simultaneously in use).

Signed-off-by: Maulik Mankad <x0082077@ti.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
Cc: Oliver Neukum <oliver@neukum.org>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Praveena NADAHALLY <praveen.nadahally@stericsson.com>
Cc: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/core/hcd.c
drivers/usb/musb/musb_core.c
drivers/usb/musb/musb_gadget.c
include/linux/usb.h