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