Re: dibusb-common.c FE_HAS_LOCK problem
Am Mon, 23 Nov 2009 10:01:36 +0100 (CET) schrieb Patrick Boettcher : > Hi Mario, > > On Sat, 21 Nov 2009, grafgrim...@gmx.de wrote: > > > Am Thu, 19 Nov 2009 16:37:18 +0100 (CET) > > schrieb Patrick Boettcher : > > > >> On Sat, 7 Nov 2009, Mario Bachmann wrote: > >> > >>> Hi there, > >>> > >>> I tried linux-2.6.31.5 and tuning still does not work: > >>> tuning to 73800 Hz > >>> video pid 0x0131, audio pid 0x0132 > >>> status 00 | signal | snr | ber 001f | unc | > >>> status 00 | signal | snr | ber 001f | unc | > >>> status 00 | signal | snr | ber 001f | unc | > >>> status 04 | signal | snr | ber 001f | unc | > >>> > >>> With some changes for the following file it works again: > >>> /usr/src/linux/drivers/media/dvb/dvb-usb/dibusb-common.c > >>> > >>> diff -Naur dibusb-common.c-ORIGINAL dibusb-common.c > >>> > >>> --- dibusb-common.c-ORIGINAL 2009-11-07 10:30:43.705344308 +0100 > >>> +++ dibusb-common.c 2009-11-07 10:33:49.969345253 +0100 > >>> @@ -133,17 +133,14 @@ > >>> > >>> for (i = 0; i < num; i++) { > >>> /* write/read request */ > >>> - if (i+1 < num && (msg[i].flags & I2C_M_RD) == 0 > >>> - && (msg[i+1].flags & I2C_M_RD)) { > >>> + if (i+1 < num && (msg[i+1].flags & I2C_M_RD)) { > >>> if (dibusb_i2c_msg(d, msg[i].addr, > >>> msg[i].buf,msg[i].len, > >>> msg[i+1].buf,msg[i+1].len) < 0) > >>> break; > >>> i++; > >>> - } else if ((msg[i].flags & I2C_M_RD) == 0) { > >>> + } else > >>> if (dibusb_i2c_msg(d, msg[i].addr, > >>> msg[i].buf,msg[i].len,NULL,0) < 0) > >>> break; > >>> - } else > >>> - break; > >>> } > >> > >> Doing it is reverting a fix which avoids that uncontrolled i2c-access from > >> userspace is destroying the USB-eeprom. > >> > >> I understand that this is breaking the tuning for your board. I'm just not > >> understanding why. > >> > >> If you have some time to debug this issue, could you please try the > >> following: > >> > >> One of the devices for your board is trying to do an I2c access which is > >> falling into the last 'else'-branch - can you add a printk to find out > >> which one it is? The access must be wrongly constructed and must be fixed > >> in that driver. > >> > >> thanks, > >> > >> PS: if you don't have time to do it, please tell so. > >> > >> -- > >> > >> Patrick > >> http://www.kernellabs.com/ > > > > I do not understand exactly. printk what? Could you please give me a > > complete piece of code with the printk command? Would be great! > > > > My printk-tries ends up in an "Oops". > > There is a > } else > break; > > sequence in dibusb_i2c_xfer > > instead of break, please add something like > > printk(KERN_ERR "- hello stupid I2C access \n"); > > recompile and load the new module, then check whether the line is > appearing in /var/log/messages or /var/log/syslog when you tune the board. > > If this is the case, try to identify which device is issuing the access by > printing the i2c-address of struct i2c_msg. > > HTH, > -- > > Patrick > http://www.kernellabs.com/ Hello Patrick, I tried it with Kernel 2.6.31.6 (same as before). I made the printk-change, recompiled and reloaded the modules and pluged in my Twinhan Magic Box... It definately jumps in the last else-branch and shows "hello stupid I2C access", but no KERN_ERR ?! dmesg usb 4-2: new full speed USB device using ohci_hcd and address 4 usb 4-2: configuration #1 chosen from 1 choice dvb-usb: found a 'TwinhanDTV USB-Ter USB1.1 / Magic Box I / HAMA USB1.1 DVB-T device' in cold state, will try to load a firmware usb 4-2: firmware: requesting dvb-usb-dibusb-5.0.0.11.fw dvb-usb: downloading firmware from file 'dvb-usb-dibusb-5.0.0.11.fw' usbcore: registered new interface driver dvb_usb_dibusb_mb usb 4-
dibusb-common.c FE_HAS_LOCK problem
Hi there, I tried linux-2.6.31.5 and tuning still does not work: tuning to 73800 Hz video pid 0x0131, audio pid 0x0132 status 00 | signal | snr | ber 001f | unc | status 00 | signal | snr | ber 001f | unc | status 00 | signal | snr | ber 001f | unc | status 04 | signal | snr | ber 001f | unc | With some changes for the following file it works again: /usr/src/linux/drivers/media/dvb/dvb-usb/dibusb-common.c diff -Naur dibusb-common.c-ORIGINAL dibusb-common.c --- dibusb-common.c-ORIGINAL2009-11-07 10:30:43.705344308 +0100 +++ dibusb-common.c 2009-11-07 10:33:49.969345253 +0100 @@ -133,17 +133,14 @@ for (i = 0; i < num; i++) { /* write/read request */ - if (i+1 < num && (msg[i].flags & I2C_M_RD) == 0 - && (msg[i+1].flags & I2C_M_RD)) { + if (i+1 < num && (msg[i+1].flags & I2C_M_RD)) { if (dibusb_i2c_msg(d, msg[i].addr, msg[i].buf,msg[i].len, msg[i+1].buf,msg[i+1].len) < 0) break; i++; - } else if ((msg[i].flags & I2C_M_RD) == 0) { + } else if (dibusb_i2c_msg(d, msg[i].addr, msg[i].buf,msg[i].len,NULL,0) < 0) break; - } else - break; } mutex_unlock(&d->i2c_mutex); With this patch, tuning works again: tuning to 73800 Hz video pid 0x0131, audio pid 0x0132 status 00 | signal | snr | ber 001f | unc | status 1f | signal | snr 008d | ber 001f | unc | FE_HAS_LOCK status 1f | signal | snr 00a1 | ber 05a4 | unc 0043 | FE_HAS_LOCK status 1f | signal | snr 00a3 | ber 05a4 | unc 0043 | FE_HAS_LOCK status 1f | signal | snr 009d | ber | unc | FE_HAS_LOCK This is my DVB-T-Box (dmesg): usb 4-2: new full speed USB device using ohci_hcd and address 6 usb 4-2: configuration #1 chosen from 1 choice dvb-usb: found a 'TwinhanDTV USB-Ter USB1.1 / Magic Box I / HAMA USB1.1 DVB-T device' in warm state. dvb-usb: will use the device's hardware PID filter (table count: 16). DVB: registering new adapter (TwinhanDTV USB-Ter USB1.1 / Magic Box I / HAMA USB1.1 DVB-T device) DVB: registering adapter 0 frontend 0 (DiBcom 3000M-B DVB-T)... dibusb: This device has the Thomson Cable onboard. Which is default. input: IR-receiver inside an USB DVB receiver as /devices/pci:00/:00:04.0/usb4/4-2/input/input6 dvb-usb: schedule remote query interval to 150 msecs. dvb-usb: TwinhanDTV USB-Ter USB1.1 / Magic Box I / HAMA USB1.1 DVB-T device successfully initialized and connected. Mario -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: 2.6.32 regression: can't tune DVB with firedtv
Am Sat, 17 Oct 2009 21:01:50 +0200 schrieb Stefan Richter : > Hi list, > > I just switched from kernel 2.6.31 to 2.6.32-rc5. Using kaffeine, I > can't tune FireDTV-C and FireDTV-T boxes via the firedtv driver > anymore. Electronic program guide data is still displayed though. > > Under 2.6.31, I used firedtv at the same patchlevel as present in > 2.6.32-rc5, hence I guess that it is a DVB core problem rather than a > driver problem. > > Any suggestions where to look for the cause? > > (I am not subscribed to the list.) Hi there, perhaps it is related: with kernel 2.6.30.8 my "TwinhanDTV USB-Ter USB1.1 / Magic Box I" worked. Now with kernel 2.6.32-rc3 (and 2.6.31.1) the modules seems to be loaded fine, but tzap/kaffeine/mplayer can not tune to a channel. i think the cause must be here: /usr/src/linux-2.6.32-rc3/drivers/media/dvb/dvb-usb/dibusb-common.c line 136 to line 146 i changed this hole section to the version of 2.6.30.8 and it works again. Mario -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: dib3000mb dvb-t with kernel 2.6.32-rc3 do not work
Hi Patrick, I tried linux-2.6.31.4 and tuning still does not work. $ tzap $sender -r status 00 | signal | snr | ber 001f | unc | status 04 | signal | snr | ber 001f | unc | status 04 | signal | snr | ber 001f | unc | status 04 | signal 00b2 | snr | ber 001f | unc | status 04 | signal | snr | ber 001f | unc | status 04 | signal | snr | ber 001f | unc | Did you read my other email? The problem must in this file : /usr/src/linux/drivers/media/dvb/dvb-usb/dibusb-common.c line 136 to line 146 i am not familar with the v4l-dvb-hg-repository. I do not know, which patch exactly causes the problem. Greetings Mario Am Mon, 5 Oct 2009 15:50:13 +0200 (CEST) schrieb Patrick Boettcher : > Hi Mario, > > On Mon, 5 Oct 2009, Mario Bachmann wrote: > > with kernel 2.6.30.8 my "TwinhanDTV USB-Ter USB1.1 / Magic Box I" > > worked. > > > > Now with kernel 2.6.32-rc3 (and 2.6.31.1) the modules seems to be > > loaded fine, but tzap/kaffeine/mplayer can not tune to a channel: > > > > dmesg says: > > dvb-usb: found a 'TwinhanDTV USB-Ter USB1.1 / Magic Box I / HAMA > > USB1.1 DVB-T device' in warm state. dvb-usb: will use the device's > > hardware PID filter (table count: 16). DVB: registering new adapter > > (TwinhanDTV USB-Ter USB1.1 / Magic Box I / HAMA USB1.1 DVB-T > > device) DVB: registering adapter 0 frontend 0 (DiBcom 3000M-B > > DVB-T)... dibusb: This device has the Thomson Cable onboard. Which > > is default. input: IR-receiver inside an USB DVB receiver > > as /devices/pci:00/:00:04.0/usb4/4-2/input/input5 dvb-usb: > > schedule remote query interval to 150 msecs. dvb-usb: TwinhanDTV > > USB-Ter USB1.1 / Magic Box I / HAMA USB1.1 DVB-T device > > successfully initialized and connected. usbcore: registered new > > interface driver dvb_usb_dibusb_mb > > > > [..] > > and so on. The signal-values are zero or near zero, but when i boot > > the old kernel 2.6.30.8, t can tune without problems. > > In a personal email to me you are saying that the differences between > dibusb-common.c in 2.6.30.8 and 2.6.32-rc3 are the main cause for the > problem. > > Is it possible for you find out which exact change is causing the > trouble? > > With the v4l-dvb-hg-repository it is possible to get each intemediate > version of this file. Afaics, there is only 3 modifications for the > timeframe we are talking about. > > best regards, > > -- > > Patrick Boettcher - Kernel Labs > http://www.kernellabs.com/ -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: dib3000mb dvb-t with kernel 2.6.32-rc3 do not work
Am Mon, 5 Oct 2009 15:50:13 +0200 (CEST) schrieb Patrick Boettcher : > Hi Mario, > > On Mon, 5 Oct 2009, Mario Bachmann wrote: > > with kernel 2.6.30.8 my "TwinhanDTV USB-Ter USB1.1 / Magic Box I" > > worked. > > > > Now with kernel 2.6.32-rc3 (and 2.6.31.1) the modules seems to be > > loaded fine, but tzap/kaffeine/mplayer can not tune to a channel: > > > > dmesg says: > > dvb-usb: found a 'TwinhanDTV USB-Ter USB1.1 / Magic Box I / HAMA > > USB1.1 DVB-T device' in warm state. dvb-usb: will use the device's > > hardware PID filter (table count: 16). DVB: registering new adapter > > (TwinhanDTV USB-Ter USB1.1 / Magic Box I / HAMA USB1.1 DVB-T > > device) DVB: registering adapter 0 frontend 0 (DiBcom 3000M-B > > DVB-T)... dibusb: This device has the Thomson Cable onboard. Which > > is default. input: IR-receiver inside an USB DVB receiver > > as /devices/pci:00/:00:04.0/usb4/4-2/input/input5 dvb-usb: > > schedule remote query interval to 150 msecs. dvb-usb: TwinhanDTV > > USB-Ter USB1.1 / Magic Box I / HAMA USB1.1 DVB-T device > > successfully initialized and connected. usbcore: registered new > > interface driver dvb_usb_dibusb_mb > > > > [..] > > and so on. The signal-values are zero or near zero, but when i boot > > the old kernel 2.6.30.8, t can tune without problems. > > In a personal email to me you are saying that the differences between > dibusb-common.c in 2.6.30.8 and 2.6.32-rc3 are the main cause for the > problem. > > Is it possible for you find out which exact change is causing the > trouble? > > With the v4l-dvb-hg-repository it is possible to get each intemediate > version of this file. Afaics, there is only 3 modifications for the > timeframe we are talking about. > > best regards, > > -- > > Patrick Boettcher - Kernel Labs > http://www.kernellabs.com/ i think the cause must be here: /usr/src/linux-2.6.32-rc3/drivers/media/dvb/dvb-usb/dibusb-common.c line 136 to line 146 i changed this hole section to the version of 2.6.30.8: if (i+1 < num && (msg[i+1].flags & I2C_M_RD)) { if (dibusb_i2c_msg(d, msg[i].addr, msg[i].buf,msg[i].len, msg[i+1].buf,msg[i+1].len) < 0) break; i++; } else if (dibusb_i2c_msg(d, msg[i].addr, msg[i].buf,msg[i].len,NULL,0) < 0) break; and it works again. my posted part is inside the "for (i = 0; i < num; i++) { ... }" -Section ! Mario -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
dib3000mb dvb-t with kernel 2.6.32-rc3 do not work
Hi there, with kernel 2.6.30.8 my "TwinhanDTV USB-Ter USB1.1 / Magic Box I" worked. Now with kernel 2.6.32-rc3 (and 2.6.31.1) the modules seems to be loaded fine, but tzap/kaffeine/mplayer can not tune to a channel: dmesg says: dvb-usb: found a 'TwinhanDTV USB-Ter USB1.1 / Magic Box I / HAMA USB1.1 DVB-T device' in warm state. dvb-usb: will use the device's hardware PID filter (table count: 16). DVB: registering new adapter (TwinhanDTV USB-Ter USB1.1 / Magic Box I / HAMA USB1.1 DVB-T device) DVB: registering adapter 0 frontend 0 (DiBcom 3000M-B DVB-T)... dibusb: This device has the Thomson Cable onboard. Which is default. input: IR-receiver inside an USB DVB receiver as /devices/pci:00/:00:04.0/usb4/4-2/input/input5 dvb-usb: schedule remote query interval to 150 msecs. dvb-usb: TwinhanDTV USB-Ter USB1.1 / Magic Box I / HAMA USB1.1 DVB-T device successfully initialized and connected. usbcore: registered new interface driver dvb_usb_dibusb_mb grep DVB .config says (no chaanges between 2.6.30.8 and 2.6.32-rc3): CONFIG_DVB_CORE=m CONFIG_DVB_MAX_ADAPTERS=8 CONFIG_DVB_CAPTURE_DRIVERS=y CONFIG_DVB_USB=m CONFIG_DVB_USB_DIBUSB_MB=m CONFIG_DVB_DIB3000MB=m CONFIG_DVB_PLL=m lsmod |grep dvb dvb_usb_dibusb_mb 16715 0 dvb_usb_dibusb_common 3559 1 dvb_usb_dibusb_mb dvb_pll 8604 1 dvb_usb_dibusb_mb dib3000mb 10969 1 dvb_usb_dibusb_mb dvb_usb13737 2 dvb_usb_dibusb_mb,dvb_usb_dibusb_common dvb_core 85727 1 dvb_usb tzap arte -r using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0' reading channels from file '/home/grafrotz/.tzap/channels.conf' tuning to 60200 Hz video pid 0x00c9, audio pid 0x00ca status 00 | signal | snr | ber 001f | unc | status 00 | signal | snr | ber 001f | unc | status 04 | signal | snr | ber 001f | unc | status 04 | signal | snr | ber 001f | unc | status 04 | signal | snr | ber 001f | unc | status 04 | signal 00b2 | snr | ber 001f | unc | status 04 | signal | snr | ber 001f | unc | status 04 | signal | snr | ber 001f | unc | status 04 | signal | snr | ber 001f | unc | status 04 | signal | snr | ber 001f | unc | status 04 | signal | snr | ber 001f | unc | and so on. The signal-values are zero or near zero, but when i boot the old kernel 2.6.30.8, t can tune without problems. kaffeine DVB says: Using DVB device 0:0 "DiBcom 3000M-B DVB-T" tuning DVB-T to 60200 Hz inv:2 bw:0 fecH:2 fecL:9 mod:1 tm:1 gi:3 hier:0 Not able to lock to the signal on the given frequency Frontend closed Tuning delay: 2611 ms mplayer dvb://arte says: MPlayer SVN-r29699-4.4.1 (C) 2000-2009 MPlayer Team Spiele dvb://arte. dvb_tune Freq: 60200 Not able to lock to the signal on the given frequency, timeout: 30 dvb_tune, TUNING FAILED ERROR, COULDN'T SET CHANNEL 13: Konnte 'dvb://arte' nicht öffnen. Beenden... (Dateiende erreicht) Greetings Mario -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html