From 42845708363fc92a190f5c47e6fe750e3919f867 Mon Sep 17 00:00:00 2001 From: Thierry Reding Date: Thu, 1 Sep 2011 02:43:03 -0300 Subject: [PATCH] [media] tm6000: Add fast USB access quirk Some devices support fast access to registers using the USB interface while others require a certain delay after each operation. This commit adds a quirk that can be enabled by devices that don't need the delay. Signed-off-by: Thierry Reding Signed-off-by: Mauro Carvalho Chehab --- drivers/staging/tm6000/tm6000-core.c | 3 ++- drivers/staging/tm6000/tm6000.h | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/staging/tm6000/tm6000-core.c b/drivers/staging/tm6000/tm6000-core.c index b3c4e05..6d0803c 100644 --- a/drivers/staging/tm6000/tm6000-core.c +++ b/drivers/staging/tm6000/tm6000-core.c @@ -619,7 +619,8 @@ int tm6000_reset(struct tm6000_core *dev) return err; } - msleep(5); + if ((dev->quirks & TM6000_QUIRK_NO_USB_DELAY) == 0) + msleep(5); /* * Not all devices have int_in defined diff --git a/drivers/staging/tm6000/tm6000.h b/drivers/staging/tm6000/tm6000.h index dac2063..5bdce84 100644 --- a/drivers/staging/tm6000/tm6000.h +++ b/drivers/staging/tm6000/tm6000.h @@ -169,6 +169,8 @@ struct tm6000_endpoint { unsigned maxsize; }; +#define TM6000_QUIRK_NO_USB_DELAY (1 << 0) + struct tm6000_core { /* generic device properties */ char name[30]; /* name (including minor) of the device */ @@ -260,6 +262,8 @@ struct tm6000_core { struct usb_isoc_ctl isoc_ctl; spinlock_t slock; + + unsigned long quirks; }; enum tm6000_ops_type { -- 2.7.4