[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