diff mbox

dib0700 Nova-TD-Stick problem

Message ID 20090603133631.159278y5l7uv8x0k@www.stud.uni-hannover.de (mailing list archive)
State RFC
Headers show

Commit Message

Soeren.Moch@stud.uni-hannover.de June 3, 2009, 11:36 a.m. UTC
Soeren.Moch wrote:
> For a few weeks I use a Nova-TD-Stick and was annoyed with dvb stream
> errors, although the demod bit-error-rate (BER/UNC) was zero.
>
> I could track down this problem to dib0700_streaming_ctrl:
> When one channel is streaming and the other channel is switched on, the
> stream of the already running channel gets broken.
>
> I think this is a firmware bug and should be fixed there, but I attach a
> driver patch, which solved the problem for me. (Kernel 2.6.29.1, FW
> 1.20, Nova-T-Stick + Nova-TD-Stick used together). Since I had to reduce
> the urb count to 1, I consider this patch as quick hack, not a real
> solution.
>
> Probably the same problem exists with other dib0700 diversity/dual
> devices, without a firmware fix a similar driver patch may be helpful.
>
> Regards,
> Soeren
>

Hi Patrick,

do you see any chance that somebody will fix the firmware? If not, can  
you take
into consideration to remove the dib0700_streaming_ctrl callback as in the
(again) attached patch so solve the switch-on problem?
The patch runs flawlessly on my vdr system for weeks now. There are no  
negative
side effects from reducing the urb count to 1.

If you prefer a patch that removes the callback for all dib0700 devices or
only for all dual devices, I can prepare that. But I can test it only with
Nova-T-Stick and Nova-TD-Stick.

Regards,
Soeren

Comments

Patrick Boettcher June 4, 2009, 8:05 a.m. UTC | #1
Hi Soeren,

On Wed, 3 Jun 2009, Soeren.Moch@stud.uni-hannover.de wrote:

> Soeren.Moch wrote:
>> For a few weeks I use a Nova-TD-Stick and was annoyed with dvb stream
>> errors, although the demod bit-error-rate (BER/UNC) was zero.
>> 
>> I could track down this problem to dib0700_streaming_ctrl:
>> When one channel is streaming and the other channel is switched on, the
>> stream of the already running channel gets broken.
>> 
>> I think this is a firmware bug and should be fixed there, but I attach a
>> driver patch, which solved the problem for me. (Kernel 2.6.29.1, FW
>> 1.20, Nova-T-Stick + Nova-TD-Stick used together). Since I had to reduce
>> the urb count to 1, I consider this patch as quick hack, not a real
>> solution.
>> 
>> Probably the same problem exists with other dib0700 diversity/dual
>> devices, without a firmware fix a similar driver patch may be helpful.
>> 
>> Regards,
>> Soeren
>> 
>
> Hi Patrick,
>
> do you see any chance that somebody will fix the firmware?

No. :(

> If not, can you take into consideration to remove the 
> dib0700_streaming_ctrl callback as in the (again) attached patch so 
> solve the switch-on problem? The patch runs flawlessly on my vdr system 
> for weeks now. There are no negative side effects from reducing the urb 
> count to 1.

There might be a real problem in the dib0700 for the streaming_ctrl 
function. I have to check that.

> If you prefer a patch that removes the callback for all dib0700 devices or
> only for all dual devices, I can prepare that. But I can test it only with
> Nova-T-Stick and Nova-TD-Stick.

I have some new devices here to test as well, I will try to do it during 
the week(end).

Sorry for not reacting in the first place. But I really couldn't do 
anything at that time.

regards,
Patrick.

--
   Mail: patrick.boettcher@desy.de
   WWW:  http://www.wi-bw.tfh-wildau.de/~pboettch/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Patrick Boettcher June 11, 2009, 8:16 a.m. UTC | #2
Hi Soeren,

On Wed, 3 Jun 2009, Soeren.Moch@stud.uni-hannover.de wrote:

> Soeren.Moch wrote:
>> For a few weeks I use a Nova-TD-Stick and was annoyed with dvb stream
>> errors, although the demod bit-error-rate (BER/UNC) was zero.
>> 
>> I could track down this problem to dib0700_streaming_ctrl:
>> When one channel is streaming and the other channel is switched on, the
>> stream of the already running channel gets broken.
>> 
>> I think this is a firmware bug and should be fixed there, but I attach a
>> driver patch, which solved the problem for me. (Kernel 2.6.29.1, FW
>> 1.20, Nova-T-Stick + Nova-TD-Stick used together). Since I had to reduce
>> the urb count to 1, I consider this patch as quick hack, not a real
>> solution.
>> 
>> Probably the same problem exists with other dib0700 diversity/dual
>> devices, without a firmware fix a similar driver patch may be helpful.
>> 
>> Regards,
>> Soeren
>> 
>
> Hi Patrick,
>
> do you see any chance that somebody will fix the firmware?

:/ .

> If not, can you take into consideration to remove the 
> dib0700_streaming_ctrl callback as in the (again) attached patch so 
> solve the switch-on problem?

I'd rather fix the streaming-enable command, which might be not correctly 
implemented. Need to check. :(

> The patch runs flawlessly on my vdr system 
> for weeks now. There are no negative side effects from reducing the urb 
> count to 1.

Hmm, on fast systems certainly not, but once the system is loaded or old 
there might be data losses.

It would be nice to have other people trying this workaround on other 
cards so that we know that it really helps and not just solves the problem 
for you.

Patrick.

--
   Mail: patrick.boettcher@desy.de
   WWW:  http://www.wi-bw.tfh-wildau.de/~pboettch/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

--- drivers/media/dvb/dvb-usb/dib0700_devices.c.orig	2009-04-18 16:45:12.000000000 +0200
+++ drivers/media/dvb/dvb-usb/dib0700_devices.c	2009-04-18 18:58:54.000000000 +0200
@@ -290,6 +290,9 @@  static int stk7700d_frontend_attach(stru
 	adap->fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap,0x80+(adap->id << 1),
 				&stk7700d_dib7000p_mt2266_config[adap->id]);
 
+        adap->props.streaming_ctrl = NULL;
+        dib0700_streaming_ctrl(adap, 1);
+
 	return adap->fe == NULL ? -ENODEV : 0;
 }
 
@@ -1414,7 +1417,7 @@  MODULE_DEVICE_TABLE(usb, dib0700_usb_id_
 	.streaming_ctrl   = dib0700_streaming_ctrl, \
 	.stream = { \
 		.type = USB_BULK, \
-		.count = 4, \
+		.count = 1, \
 		.endpoint = ep, \
 		.u = { \
 			.bulk = { \