musb: Add workqueue for URB giveback
authorAjay Kumar Gupta <ajay.gupta@ti.com>
Thu, 25 Nov 2010 12:55:47 +0000 (18:25 +0530)
committerVaibhav Hiremath <hvaibhav@ti.com>
Mon, 23 Jan 2012 19:14:08 +0000 (00:44 +0530)
commitcf41b6504ec187995900edf1d42a2b9317c9f08a
treee4527d67f5223b00960dc7ad740e4660c4b1b7c5
parent1f93f2761ea4564c7a562db37436fd210595f2dd
musb: Add workqueue for URB giveback

Current musb host driver does the giveback of completed urb first and
then start the next request. This is significantly affecting the streaming
from an USB camera wherein we observe huge delay between the two IN tokens
from musb host. This is due to the fact that UVC driver is doing decoding
and further processing in giveback context.

The patch tries to defer the giveback part to a workqueue and continues
with the start of new request in completion path.

the giveback workqueue has only succesfull completed URBs, it is safe to
giveback URBs without taking musb spinlocks.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Sriramakrishnan A G <srk@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
drivers/usb/musb/musb_core.c
drivers/usb/musb/musb_core.h
drivers/usb/musb/musb_host.c
include/linux/usb.h