[linux-dvb] Mega Sky 55801 (gl861) strange behaviour
Jonas Larsson
linuxdvb at larsson.eu.com
Sun Feb 11 14:12:42 CET 2007
I had the same problem. After some trial and error I found out that the
usb message sometimes fail with a timeout error code in gl861. The
q1010 and zl10353 then logs the error messages. The tuning then fail.
I have no clue to why the message times out, but if I resend the the
message it always succeed. This makes the device more reliable.
Try the patch (generated agaist http://linuxtv.org/hg/~mkrufky/megasky)
/ Jonas
diff -r 0dd6baab4628 linux/drivers/media/dvb/dvb-usb/gl861.c
--- a/linux/drivers/media/dvb/dvb-usb/gl861.c Sat Jan 27 14:48:04 2007
-0500
+++ b/linux/drivers/media/dvb/dvb-usb/gl861.c Sat Feb 10 23:55:04 2007
+0100
@@ -19,6 +19,8 @@ static int gl861_i2c_msg(struct dvb_usb_
static int gl861_i2c_msg(struct dvb_usb_device *d, u8 addr,
u8 *wbuf, u16 wlen, u8 *rbuf, u16 rlen)
{
+ int err;
+ int tries;
u16 index;
u16 value = addr << 8;
int wo = (rbuf == NULL || rlen == 0); /* write-only */
@@ -45,8 +47,12 @@ static int gl861_i2c_msg(struct dvb_usb_
return -EINVAL;
}
- return usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0),
req, type,
- value, index, rbuf, rlen, 2000);
+ tries = 0;
+ do {
+ err = usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev,
0), req, type,
+ value, index, rbuf, rlen, 2000);
+ } while (err == -ETIMEDOUT && ++tries < 3);
+ return err;
}
/* I2C */
> Hi everyone!
>
> The strange thing:
> i've strange problems with my Mega Sky usb stick...somtimes it finds some channels (happens almost never) and sometimes it finds some (max was 7 chans). As strange as i think that is, often enough even when i scanned and found some channels it's like a 10% chance to me that i can even display (with kaffeine or xine) the channels i just found. That for that part.
>
> System info:
> I'm using Debian/etch 2.6.17-2-486 and installed the megasky modules from your page via mercurial (hg clone and stuff) everything worked fine.
>
> modules loaded, that might interesst you (lsmod):
> dvb_usb_gl861 6020 0
> dvb_usb 19084 1 dvb_usb_gl861
> dvb_core 69544 1 dvb_usb
> firmware_class 9344 2 bttv,dvb_usb
> dvb_pll 13956 1 dvb_usb
> i2c_core 19216 11 qt1010,zl10353,tuner,tvaudio,msp3400,bttv,dvb_usb,i2c_algo_bit,i2c_viapro,dvb_pll,tveeprom
> usbcore 108544 6 dvb_usb_gl861,dvb_usb,usbhid,ehci_hcd,uhci_hcd
> i2c_algo_bit 8328 1 bttv
> i2c_viapro 8084 0
>
> my boot tells me everything worked fine (dmesg):
> input: USB HID v1.01 Keyboard [PC-DTV Receiver PC-DTV Receiver] on usb-0000:00:10.4-4
> dvb-usb: found a 'MSI Mega Sky 55801 DVB-T USB2.0' in warm state.
> dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
> DVB: registering new adapter (MSI Mega Sky 55801 DVB-T USB2.0).
> bttv0: PLL: 28636363 => 35468950 .DVB: registering frontend 0 (Zarlink ZL10353 DVB-T)...
> . ok
> Quantek QT1010 successfully identified.
> dvb-usb: MSI Mega Sky 55801 DVB-T USB2.0 successfully initialized and connected.
> usbcore: registered new driver dvb_usb_gl861
>
> and even lsusb tells me it's there:
> Bus 005 Device 002: ID 0db0:5581 Micro Star International
>
> additional information:
> everytime i scan or try to tune in one channel dmesg displays lots of these things:
> ...
> qt1010 I2C write failed
> qt1010 I2C write failed
> zl10353: write to reg 67 failed (err = 0)!
> zl10353: write to reg 70 failed (err = 0)!
> zl10353_read_register: readreg error (reg=8, ret==0)
> qt1010 I2C write failed
> zl10353: write to reg 69 failed (err = 0)!
> zl10353_read_register: readreg error (reg=16, ret==0)
> zl10353: write to reg 5e failed (err = 0)!
> ...
>
> don't know if it has any bad influence at all (just started using linux). if there's someone who wants direct contact with me to do test/work on some things, you can contact me this way:
> IRC: irc.debian.org - #debian - nick: pferdone
> ICQ: 121645936
>
> if some ppl of the dev-grp want to have a look at my problem, i can set up a sshd and give you access...i think i even remember some ppl of the dev-grp even asked for some systems to test their drivers on.
>
> Best regards and thx in advance,
> pferdone
More information about the linux-dvb
mailing list