Commit 9c1133c7 authored by Malcolm Priestley's avatar Malcolm Priestley Committed by Mauro Carvalho Chehab

[media] it913x: endpoint size changes

Previously endpoint had been aligned to packet size (128)

Some early it9135 devices appear to have problems with this.

This patch now aligns with mpeg TS size (188)

With the pid filter off max size is increased to the maxmium
size (348 * 188)
Signed-off-by: default avatarMalcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 48763e2c
...@@ -337,6 +337,13 @@ static int it913x_rc_query(struct dvb_usb_device *d) ...@@ -337,6 +337,13 @@ static int it913x_rc_query(struct dvb_usb_device *d)
return ret; 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, static int it913x_identify_state(struct usb_device *udev,
struct dvb_usb_device_properties *props, struct dvb_usb_device_properties *props,
struct dvb_usb_device_description **desc, struct dvb_usb_device_description **desc,
...@@ -374,6 +381,17 @@ static int it913x_identify_state(struct usb_device *udev, ...@@ -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 info("Dual mode=%x Remote=%x Tuner Type=%x", it913x_config.dual_mode
, remote, it913x_config.tuner_id_0); , 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) { if (firm_no > 0) {
*cold = 0; *cold = 0;
return 0; return 0;
...@@ -511,7 +529,7 @@ static int it913x_frontend_attach(struct dvb_usb_adapter *adap) ...@@ -511,7 +529,7 @@ static int it913x_frontend_attach(struct dvb_usb_adapter *adap)
struct usb_device *udev = adap->dev->udev; struct usb_device *udev = adap->dev->udev;
int ret = 0; int ret = 0;
u8 adap_addr = I2C_BASE_ADDR + (adap->id << 5); 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; u8 pkt_size = 0x80;
if (adap->dev->udev->speed != USB_SPEED_HIGH) if (adap->dev->udev->speed != USB_SPEED_HIGH)
...@@ -610,8 +628,8 @@ static struct dvb_usb_device_properties it913x_properties = { ...@@ -610,8 +628,8 @@ static struct dvb_usb_device_properties it913x_properties = {
.endpoint = 0x04, .endpoint = 0x04,
.u = {/* Keep Low if PID filter on */ .u = {/* Keep Low if PID filter on */
.bulk = { .bulk = {
.buffersize = 3584, .buffersize =
TS_BUFFER_SIZE_PID,
} }
} }
} }
...@@ -635,8 +653,8 @@ static struct dvb_usb_device_properties it913x_properties = { ...@@ -635,8 +653,8 @@ static struct dvb_usb_device_properties it913x_properties = {
.endpoint = 0x05, .endpoint = 0x05,
.u = { .u = {
.bulk = { .bulk = {
.buffersize = 3584, .buffersize =
TS_BUFFER_SIZE_PID,
} }
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment