Skip to content

Commit

Permalink
[media] it913x: endpoint size changes
Browse files Browse the repository at this point in the history
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: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Malcolm Priestley authored and Mauro Carvalho Chehab committed Dec 11, 2011
1 parent 48763e2 commit 9c1133c
Showing 1 changed file with 23 additions and 5 deletions.
28 changes: 23 additions & 5 deletions drivers/media/dvb/dvb-usb/it913x.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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,
}
}
}
Expand All @@ -635,8 +653,8 @@ static struct dvb_usb_device_properties it913x_properties = {
.endpoint = 0x05,
.u = {
.bulk = {
.buffersize = 3584,

.buffersize =
TS_BUFFER_SIZE_PID,
}
}
}
Expand Down

0 comments on commit 9c1133c

Please sign in to comment.