From 1c4eab01274b7e81aad7492e3e90d2b62c4b2524 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sun, 27 Nov 2011 17:35:06 -0300 Subject: [PATCH] --- yaml --- r: 285343 b: refs/heads/master c: 9c1133c7c89266d4969e36527ce7be958d1b93c6 h: refs/heads/master i: 285341: 84585609b61dafdc4da9dd85e07bc700912493b7 285339: f88fdbce4e3014d9cc0306e2b68a6e0cc5ac725c 285335: 41699e3f4624bca830ea19aed26075ae36c0d2b8 285327: 37baa37cf5712e7e93c64c98c667686a5e511215 285311: 938aa4a383c9b500f46fb4c9a11d885b9daee87d v: v3 --- [refs] | 2 +- trunk/drivers/media/dvb/dvb-usb/it913x.c | 28 +++++++++++++++++++----- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 4f7d1dab852a..7590ae27550e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 48763e2c6e76fbaa64229219593c1a456fd32c67 +refs/heads/master: 9c1133c7c89266d4969e36527ce7be958d1b93c6 diff --git a/trunk/drivers/media/dvb/dvb-usb/it913x.c b/trunk/drivers/media/dvb/dvb-usb/it913x.c index 9abdaee4aa6c..24f04b4ac87c 100644 --- a/trunk/drivers/media/dvb/dvb-usb/it913x.c +++ b/trunk/drivers/media/dvb/dvb-usb/it913x.c @@ -337,6 +337,13 @@ static int it913x_rc_query(struct dvb_usb_device *d) return ret; } + +#define TS_MPEG_PKT_SIZE 188 +#define EP_LOW 21 +#define TS_BUFFER_SIZE_PID (EP_LOW*TS_MPEG_PKT_SIZE) +#define EP_HIGH 348 +#define TS_BUFFER_SIZE_MAX (EP_HIGH*TS_MPEG_PKT_SIZE) + static int it913x_identify_state(struct usb_device *udev, struct dvb_usb_device_properties *props, struct dvb_usb_device_description **desc, @@ -374,6 +381,17 @@ static int it913x_identify_state(struct usb_device *udev, info("Dual mode=%x Remote=%x Tuner Type=%x", it913x_config.dual_mode , remote, it913x_config.tuner_id_0); + /* Select Stream Buffer Size */ + if (pid_filter) + props->adapter[0].fe[0].stream.u.bulk.buffersize = + TS_BUFFER_SIZE_MAX; + else + props->adapter[0].fe[0].stream.u.bulk.buffersize = + TS_BUFFER_SIZE_PID; + if (it913x_config.dual_mode) + props->adapter[1].fe[0].stream.u.bulk.buffersize = + props->adapter[0].fe[0].stream.u.bulk.buffersize; + if (firm_no > 0) { *cold = 0; return 0; @@ -511,7 +529,7 @@ static int it913x_frontend_attach(struct dvb_usb_adapter *adap) struct usb_device *udev = adap->dev->udev; int ret = 0; u8 adap_addr = I2C_BASE_ADDR + (adap->id << 5); - u16 ep_size = adap->props.fe[0].stream.u.bulk.buffersize; + u16 ep_size = adap->props.fe[0].stream.u.bulk.buffersize / 4; u8 pkt_size = 0x80; if (adap->dev->udev->speed != USB_SPEED_HIGH) @@ -610,8 +628,8 @@ static struct dvb_usb_device_properties it913x_properties = { .endpoint = 0x04, .u = {/* Keep Low if PID filter on */ .bulk = { - .buffersize = 3584, - + .buffersize = + TS_BUFFER_SIZE_PID, } } } @@ -635,8 +653,8 @@ static struct dvb_usb_device_properties it913x_properties = { .endpoint = 0x05, .u = { .bulk = { - .buffersize = 3584, - + .buffersize = + TS_BUFFER_SIZE_PID, } } }