aboutsummaryrefslogtreecommitdiff
path: root/drivers/media
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/dvb/dvb-usb/cxusb.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/drivers/media/dvb/dvb-usb/cxusb.c b/drivers/media/dvb/dvb-usb/cxusb.c
index 0324807376c..b4bb206a510 100644
--- a/drivers/media/dvb/dvb-usb/cxusb.c
+++ b/drivers/media/dvb/dvb-usb/cxusb.c
@@ -14,9 +14,6 @@
* TODO: check if the cx25840-driver (from ivtv) can be used for the analogue
* part
*
- * FIXME: We're getting a lock and signal, but the isochronous transfer is empty
- * for DVB-T.
- *
* Copyright (C) 2005 Patrick Boettcher (patrick.boettcher@desy.de)
*
* This program is free software; you can redistribute it and/or modify it
@@ -157,12 +154,20 @@ static int cxusb_power_ctrl(struct dvb_usb_device *d, int onoff)
static int cxusb_streaming_ctrl(struct dvb_usb_device *d, int onoff)
{
+ u8 buf[2] = { 0x03, 0x00 };
+ if (onoff)
+ cxusb_ctrl_msg(d,0x36, buf, 2, NULL, 0);
+ else
+ cxusb_ctrl_msg(d,0x37, NULL, 0, NULL, 0);
+
return 0;
}
struct cx22702_config cxusb_cx22702_config = {
.demod_address = 0x63,
+ .output_mode = CX22702_PARALLEL_OUTPUT,
+
.pll_init = dvb_usb_pll_init_i2c,
.pll_set = dvb_usb_pll_set_i2c,
};
@@ -182,12 +187,15 @@ static int cxusb_frontend_attach(struct dvb_usb_device *d)
u8 buf[2] = { 0x03, 0x00 };
u8 b = 0;
+ if (usb_set_interface(d->udev,0,0) < 0)
+ err("set interface to alts=0 failed");
+
cxusb_ctrl_msg(d,0xde,&b,0,NULL,0);
cxusb_set_i2c_path(d,PATH_TUNER_OTHER);
cxusb_ctrl_msg(d,CMD_POWER_OFF, NULL, 0, &b, 1);
if (usb_set_interface(d->udev,0,6) < 0)
- err("set interface failed\n");
+ err("set interface failed");
cxusb_ctrl_msg(d,0x36, buf, 2, NULL, 0);
cxusb_set_i2c_path(d,PATH_CX22702);
@@ -236,9 +244,9 @@ static struct dvb_usb_properties cxusb_properties = {
.endpoint = 0x02,
.u = {
.isoc = {
- .framesperurb = 64,
- .framesize = 940*3,
- .interval = 1,
+ .framesperurb = 32,
+ .framesize = 940,
+ .interval = 5,
}
}
},