[linux-dvb] [PATCH] Nova-T 500 issues - losing one tuner

2008-02-04 Thread Jonas Anden
Hi all, 

 I have a hunch about this problem...
...
 This, ... leads me to believe that this is timer-induced. Something
 can't keep up. Adding debugging makes the operations slightly slower
 (the module needs to do additional IO to speak to syslogd), and this
 delay seems to be enough to keep it operational.

Attached is an extremely simple patch which seems to resolve the issue
for me. Before turning streaming on/off, I have inserted a tiny delay or
10 ms-

Just using 'debug=1' wasn't enough to keep tuner 2 from dying. I set it
up yesterday morning with debug=1, and when I got back home in the
evening the second tuner was dead again. I then made the attached patch
and the system has been stable since then (~24 hrs).

I also made a slight change by removing a | 0x00 from the code. It
performs absolutely nothing (and is probably removed by the compiler in
optimization) but confuse when reading the code, imho... Patrick, if you
really want it there I can recreate the patch with the or statement
back ;)

Feel free to try it out.

  // J
diff -r c08115f8f1f3 linux/drivers/media/dvb/dvb-usb/dib0700_core.c
--- a/linux/drivers/media/dvb/dvb-usb/dib0700_core.c	Sun Jan 27 17:24:26 2008 +
+++ b/linux/drivers/media/dvb/dvb-usb/dib0700_core.c	Mon Feb 04 19:17:03 2008 +0100
@@ -243,7 +243,7 @@ int dib0700_streaming_ctrl(struct dvb_us
 	u8 b[4];
 
 	b[0] = REQUEST_ENABLE_VIDEO;
-	b[1] = (onoff  4) | 0x00; /* this bit gives a kind of command, rather than enabling something or not */
+	b[1] = (onoff  4); /* this bit gives a kind of command, rather than enabling something or not */
 	b[2] = (0x01  4); /* Master mode */
 	b[3] = 0x00;
 
@@ -256,6 +256,7 @@ int dib0700_streaming_ctrl(struct dvb_us
 
 	b[2] |= st-channel_state;
 
+	msleep(10);
 	deb_info(data for streaming: %x %x\n,b[1],b[2]);
 
 	return dib0700_ctrl_wr(adap-dev, b, 4);
___
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

Re: [linux-dvb] [PATCH] Nova-T 500 issues - losing one tuner

2008-02-04 Thread Jonas Anden
Hmm... typical, isn't it? Just about ten minutes after I've sent out the
patch, the second tuner died again. It appears this is *not* enough to
fix the issue. Please discard the previous mail.

  // J

On Mon, 2008-02-04 at 19:28 +0100, Jonas Anden wrote:
 Hi all, 
 
  I have a hunch about this problem...
 ...
  This, ... leads me to believe that this is timer-induced. Something
  can't keep up. Adding debugging makes the operations slightly slower
  (the module needs to do additional IO to speak to syslogd), and this
  delay seems to be enough to keep it operational.
 
 Attached is an extremely simple patch which seems to resolve the issue
 for me. Before turning streaming on/off, I have inserted a tiny delay or
 10 ms-
 
 Just using 'debug=1' wasn't enough to keep tuner 2 from dying. I set it
 up yesterday morning with debug=1, and when I got back home in the
 evening the second tuner was dead again. I then made the attached patch
 and the system has been stable since then (~24 hrs).
 
 I also made a slight change by removing a | 0x00 from the code. It
 performs absolutely nothing (and is probably removed by the compiler in
 optimization) but confuse when reading the code, imho... Patrick, if you
 really want it there I can recreate the patch with the or statement
 back ;)
 
 Feel free to try it out.
 
   // J
 ___
 linux-dvb mailing list
 linux-dvb@linuxtv.org
 http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb


___
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb