aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 0324807376cf..b4bb206a510f 100644
--- a/drivers/media/dvb/dvb-usb/cxusb.c
+++ b/drivers/media/dvb/dvb-usb/cxusb.c
@@ -14,9 +14,6 @@
14 * TODO: check if the cx25840-driver (from ivtv) can be used for the analogue 14 * TODO: check if the cx25840-driver (from ivtv) can be used for the analogue
15 * part 15 * part
16 * 16 *
17 * FIXME: We're getting a lock and signal, but the isochronous transfer is empty
18 * for DVB-T.
19 *
20 * Copyright (C) 2005 Patrick Boettcher (patrick.boettcher@desy.de) 17 * Copyright (C) 2005 Patrick Boettcher (patrick.boettcher@desy.de)
21 * 18 *
22 * This program is free software; you can redistribute it and/or modify it 19 * 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)
157 154
158static int cxusb_streaming_ctrl(struct dvb_usb_device *d, int onoff) 155static int cxusb_streaming_ctrl(struct dvb_usb_device *d, int onoff)
159{ 156{
157 u8 buf[2] = { 0x03, 0x00 };
158 if (onoff)
159 cxusb_ctrl_msg(d,0x36, buf, 2, NULL, 0);
160 else
161 cxusb_ctrl_msg(d,0x37, NULL, 0, NULL, 0);
162
160 return 0; 163 return 0;
161} 164}
162 165
163struct cx22702_config cxusb_cx22702_config = { 166struct cx22702_config cxusb_cx22702_config = {
164 .demod_address = 0x63, 167 .demod_address = 0x63,
165 168
169 .output_mode = CX22702_PARALLEL_OUTPUT,
170
166 .pll_init = dvb_usb_pll_init_i2c, 171 .pll_init = dvb_usb_pll_init_i2c,
167 .pll_set = dvb_usb_pll_set_i2c, 172 .pll_set = dvb_usb_pll_set_i2c,
168}; 173};
@@ -182,12 +187,15 @@ static int cxusb_frontend_attach(struct dvb_usb_device *d)
182 u8 buf[2] = { 0x03, 0x00 }; 187 u8 buf[2] = { 0x03, 0x00 };
183 u8 b = 0; 188 u8 b = 0;
184 189
190 if (usb_set_interface(d->udev,0,0) < 0)
191 err("set interface to alts=0 failed");
192
185 cxusb_ctrl_msg(d,0xde,&b,0,NULL,0); 193 cxusb_ctrl_msg(d,0xde,&b,0,NULL,0);
186 cxusb_set_i2c_path(d,PATH_TUNER_OTHER); 194 cxusb_set_i2c_path(d,PATH_TUNER_OTHER);
187 cxusb_ctrl_msg(d,CMD_POWER_OFF, NULL, 0, &b, 1); 195 cxusb_ctrl_msg(d,CMD_POWER_OFF, NULL, 0, &b, 1);
188 196
189 if (usb_set_interface(d->udev,0,6) < 0) 197 if (usb_set_interface(d->udev,0,6) < 0)
190 err("set interface failed\n"); 198 err("set interface failed");
191 199
192 cxusb_ctrl_msg(d,0x36, buf, 2, NULL, 0); 200 cxusb_ctrl_msg(d,0x36, buf, 2, NULL, 0);
193 cxusb_set_i2c_path(d,PATH_CX22702); 201 cxusb_set_i2c_path(d,PATH_CX22702);
@@ -236,9 +244,9 @@ static struct dvb_usb_properties cxusb_properties = {
236 .endpoint = 0x02, 244 .endpoint = 0x02,
237 .u = { 245 .u = {
238 .isoc = { 246 .isoc = {
239 .framesperurb = 64, 247 .framesperurb = 32,
240 .framesize = 940*3, 248 .framesize = 940,
241 .interval = 1, 249 .interval = 5,
242 } 250 }
243 } 251 }
244 }, 252 },