[PATCH] dvb: usb: cxusb DVB-T fixes

cxusb DVB-T fixes.

Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Johannes Stezenbach <js@linuxtv.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
diff --git a/drivers/media/dvb/dvb-usb/cxusb.c b/drivers/media/dvb/dvb-usb/cxusb.c
index 0324807..b4bb206 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_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 @@
 	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 @@
 		.endpoint = 0x02,
 		.u = {
 			.isoc = {
-				.framesperurb = 64,
-				.framesize = 940*3,
-				.interval = 1,
+				.framesperurb = 32,
+				.framesize = 940,
+				.interval = 5,
 			}
 		}
 	},