aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorThierry Reding <thierry.reding@avionic-design.de>2011-09-01 02:43:03 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-09-21 15:59:19 -0300
commit42845708363fc92a190f5c47e6fe750e3919f867 (patch)
treecb7ccac672eb989447045d81bd407c5bf3614d63 /drivers
parent0a54b86a71dfec88d9b12f0e003ebc4ebb4b1f0a (diff)
[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 <thierry.reding@avionic-design.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/staging/tm6000/tm6000-core.c3
-rw-r--r--drivers/staging/tm6000/tm6000.h4
2 files changed, 6 insertions, 1 deletions
diff --git a/drivers/staging/tm6000/tm6000-core.c b/drivers/staging/tm6000/tm6000-core.c
index b3c4e0529f4..6d0803c886b 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 dac20637c69..5bdce84f8d6 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 {