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
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb