Re: Hauppauge Nova-T 500 USB disconnects.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



El Lunes, 23 de Julio de 2007, Jim Barber escribió:
> What is the status of resolving the USB disconnects with the Nova-T 500?
>
> I find I can still easily trigger them just by flicking through channels in
> MythTV. This has stopped me from being able to put a PC I built to service
> as a media centre.
>
> I'm using Linux kernel 2.6.22 and I used mercurial to get the latest
> v4l-dvb drivers. I compared the dib*.[ch] source files from mercurial
> against the DVB drivers in the kernel sources. They are basically the same
> except the kernel sources removed the '#if 0' sections that won't get
> compiled anyway.
>
> I'm not using EIT with the card as I read this can increase the chances of
> triggering the USB disconnect. Is there any way to avoid the USB
> disconnects with this card?
> Is there some setting; or a custom patch to either USB or the DVB drivers
> to fix it?
>
> Any help on making this card stable is appreciated.
>
> ----------
> Jim Barber
> DDI Health
>

I am using a dirty hack to try to avoid USB disconnects, and  still don't have 
a disconnect in  three days, but I don't know if it solve the problem. I use 
vdr. You can try it.

Jose Alberto


diff -r f96f68c4e5d9 linux/drivers/media/dvb/dvb-usb/dib0700_core.c
--- a/linux/drivers/media/dvb/dvb-usb/dib0700_core.c	Thu Jul 19 18:06:54 2007 -0300
+++ b/linux/drivers/media/dvb/dvb-usb/dib0700_core.c	Fri Jul 20 13:58:07 2007 +0200
@@ -238,6 +238,9 @@ int dib0700_streaming_ctrl(struct dvb_us
 	struct dib0700_state *st = adap->dev->priv;
 	u8 b[4];
 
+	if ((onoff != 2) && (onoff != 3))
+		return 0;
+
 	b[0] = REQUEST_ENABLE_VIDEO;
 	b[1] = 0x00;
 	b[2] = (0x01 << 4); /* Master mode */
@@ -245,7 +248,7 @@ int dib0700_streaming_ctrl(struct dvb_us
 
 	deb_info("modifying (%d) streaming state for %d\n", onoff, adap->id);
 
-	if (onoff)
+	if (onoff == 2)
 		st->channel_state |=   1 << adap->id;
 	else
 		st->channel_state &= ~(1 << adap->id);
diff -r f96f68c4e5d9 linux/drivers/media/dvb/frontends/dib3000mc.c
--- a/linux/drivers/media/dvb/frontends/dib3000mc.c	Thu Jul 19 18:06:54 2007 -0300
+++ b/linux/drivers/media/dvb/frontends/dib3000mc.c	Sat Jul 21 14:30:51 2007 +0200
@@ -21,6 +21,7 @@
 #include "dvb_frontend.h"
 
 #include "dib3000mc.h"
+#include "dvb-usb.h"
 
 static int debug;
 module_param(debug, int, 0644);
@@ -316,6 +317,7 @@ static int dib3000mc_init(struct dvb_fro
 {
 	struct dib3000mc_state *state = demod->demodulator_priv;
 	struct dibx000_agc_config *agc = state->cfg->agc;
+	struct dvb_usb_adapter *adap = demod->dvb->priv;
 
 	// Restart Configuration
 	dib3000mc_write_word(state, 1027, 0x8000);
@@ -429,12 +431,17 @@ static int dib3000mc_init(struct dvb_fro
 	/* close the i2c-gate */
 	dib3000mc_write_word(state, 769, (1 << 7) );
 
+	adap->props.streaming_ctrl(adap,2);
+
 	return 0;
 }
 
 static int dib3000mc_sleep(struct dvb_frontend *demod)
 {
 	struct dib3000mc_state *state = demod->demodulator_priv;
+	struct dvb_usb_adapter *adap = demod->dvb->priv;
+
+	adap->props.streaming_ctrl(adap,3);
 
 	dib3000mc_write_word(state, 1031, 0xFFFF);
 	dib3000mc_write_word(state, 1032, 0xFFFF);
_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux