From 717a1066fcaa19eecb124fa58510e02dee4b4456 Mon Sep 17 00:00:00 2001 From: Patrick Boettcher Date: Thu, 14 Apr 2005 07:55:31 +0000 Subject: on fast (or slow) machines it is important for some devices to delay the actual read on a read operation --- linux/drivers/media/dvb/dvb-usb/dtt200u.c | 1 + linux/drivers/media/dvb/dvb-usb/dvb-usb-urb.c | 3 +++ linux/drivers/media/dvb/dvb-usb/dvb-usb.h | 2 ++ 3 files changed, 6 insertions(+) (limited to 'linux') diff --git a/linux/drivers/media/dvb/dvb-usb/dtt200u.c b/linux/drivers/media/dvb/dvb-usb/dtt200u.c index d57ad0499..3b5785380 100644 --- a/linux/drivers/media/dvb/dvb-usb/dtt200u.c +++ b/linux/drivers/media/dvb/dvb-usb/dtt200u.c @@ -122,6 +122,7 @@ static struct dvb_usb_properties dtt200u_properties = { .init_rc = dtt200u_rc_init, .generic_bulk_ctrl_endpoint = 0x01, + .rw_delay_ms = 50, /* parameter for the MPEG2-data transfer */ .urb = { diff --git a/linux/drivers/media/dvb/dvb-usb/dvb-usb-urb.c b/linux/drivers/media/dvb/dvb-usb/dvb-usb-urb.c index 80b3ff91f..e5bff4157 100644 --- a/linux/drivers/media/dvb/dvb-usb/dvb-usb-urb.c +++ b/linux/drivers/media/dvb/dvb-usb/dvb-usb-urb.c @@ -39,6 +39,9 @@ int dvb_usb_generic_rw(struct dvb_usb_device *d, u8 *wbuf, u16 wlen, u8 *rbuf, /* an answer is expected, and no error before */ if (!ret && rbuf && rlen) { + if (d->props.rw_delay_ms) + msleep(d->props.rw_delay_ms); + ret = usb_bulk_msg(d->udev,usb_rcvbulkpipe(d->udev, d->props.generic_bulk_ctrl_endpoint),rbuf,rlen,&actlen, 2*HZ); diff --git a/linux/drivers/media/dvb/dvb-usb/dvb-usb.h b/linux/drivers/media/dvb/dvb-usb/dvb-usb.h index 8fdafd2b3..89cc0c5a0 100644 --- a/linux/drivers/media/dvb/dvb-usb/dvb-usb.h +++ b/linux/drivers/media/dvb/dvb-usb/dvb-usb.h @@ -100,6 +100,8 @@ struct dvb_usb_properties { /* endpoint for generic bulk read/write operations (used by many drivers for controlling the device) */ int generic_bulk_ctrl_endpoint; +/* delay between the two transfers of a read operation */ + int rw_delay_ms; /* MPEG2 TS transfer description */ struct { -- cgit v1.2.3