Thread: came makes bus angry
Brought to you by:
aeb,
bencollins
From: Carl K. <ca...@pe...> - 2011-07-29 03:40:08
|
ASUS motherboard, one on board firewire, one pci card. plug camera into card, all works fine. plug into on board and things fail (veyepar)juser@cnt2:~$ lspci |grep 13 04:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6315 Series Firewire Controller (rev 01) 08:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (rev 46) (veyepar)juser@cnt2:~$ dvgrab Error: no camera exists [ 1106.523403] firewire_core: skipped bus generations, destroying all nodes [ 1107.020284] firewire_core: rediscovered device fw0 [ 1561.141043] firewire_core: skipped bus generations, destroying all nodes [ 1561.638991] firewire_core: rediscovered device fw0 [ 1561.638999] firewire_core: giving up on config rom for node id ffc0 [ 1572.087990] firewire_ohci: isochronous cycle inconsistent [ 1572.798527] firewire_core: created device fw2: GUID 008045821097902b, S100 [ 1572.798534] firewire_core: phy config: card 1, new root=ffc1, gap_count=5 [ 1572.799208] firewire_core: IRM is not 1394a compliant, making local node (ffc0) root. [ 1572.799211] firewire_core: phy config: card 1, new root=ffc0, gap_count=5 [ 1669.889695] usb 1-1.2: reset high speed USB device using ehci_hcd and address 3 -- Carl K |
From: Clemens L. <cl...@la...> - 2011-07-29 08:00:25
|
Carl Karsten wrote: > ASUS motherboard, one on board firewire, one pci card. PCI or PCI Express? > plug camera into card, all works fine. plug into on board and things fail Which points to a hardware error. > (veyepar)juser@cnt2:~$ lspci |grep 13 > 04:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6315 Series Firewire Controller (rev 01) > 08:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (rev 46) The VT6315 is a rather new PCIe chip; the VT6308 is a rather old PCI chip that is known to have problems. In theory, both should work with a camera like yours, but it's possible that your VT6308 has smaller tolerances, that the signal is degraded because of long lines on the motherboard, or that it's just plain broken. Does it work when you connect the VT6315 directly to the VT6308 (i.e., do you get four devices fw0..fw3)? > (veyepar)juser@cnt2:~$ dvgrab > Error: no camera exists > > ... > [ 1572.087990] firewire_ohci: isochronous cycle inconsistent > [ 1572.798527] firewire_core: created device fw2: GUID 008045821097902b, S100 Here, after many bus resets, a device from Matsushita is found. > [ 1572.798534] firewire_core: phy config: card 1, new root=ffc1, gap_count=5 > [ 1572.799208] firewire_core: IRM is not 1394a compliant, making local node (ffc0) root. But it complies only with the oldest 1394 standard, so it is not allowed to be root (the root node does some bus management functions; if an old node is root, some new 1394a features would not be available). Switching the root node should, in theory, not be a problem, however ... > [ 1572.799211] firewire_core: phy config: card 1, new root=ffc0, gap_count=5 ... after the bus reset that made the switch, the camera has vanished again. This looks very much like this bug <https://bugzilla.redhat.com/show_bug.cgi?id=633260> that was worked around with commit 6044565af458 (fix unstable I/O with Canon camcorder). It's possible that these Canon and Matsushita cameras use the same PHY chip, or the same FireWire interface firmware. Carl, to find out which PHY chip the camera uses, please try to run the lsfirewirephy tool from the jujuutils package (<http://code.google.com/p/jujuutils/>) with the camera connected to the working controller. To check if the Canon workaround works with your camera, recompile firewire-core after changing the value of CANON_OUI in drivers/firewire/core-card.c from 0x000085 to 0x008045. Stefan, might it be a good idea to allow all old IRMs that look like such a camera, i.e., if they are a S100 device? Regards, Clemens |
From: Stefan R. <st...@s5...> - 2011-07-29 13:17:12
|
On Jul 29 Clemens Ladisch wrote: > In theory, both should work with > a camera like yours, but it's possible that your VT6308 has smaller > tolerances, that the signal is degraded because of long lines on the > motherboard, or that it's just plain broken. On PC mainboards, the lines between the PHY and the ports may be very long, may contain many turns, may go through vias --- all pitfalls which are to be avoided in 1394 device board layouts. And if there is a breakout cable to a front panel (one without an own dedicated phy), that makes it only worse. > Stefan, might it be a good idea to allow all old IRMs that look like > such a camera, i.e., if they are a S100 device? Good idea.¹ But then we need to address the bug with Sony's bogus IRM in a different way. http://git.kernel.org/linus/10389536742cefbedecb67a5b2906f155cf3a1c3 E.g. do not act as BM if we are not IRM too. I think I have seen another OS doing exactly this. Carl, it would be very useful to know what happens after the modification of CANON_OUI in drivers/firewire/core-card.c as Clemens suggested. ¹) Not trying to become IRM when a 1394-1995-only IRM is detected goes squarely against 1394a-2000 of course. But there is little choice. -- Stefan Richter -=====-==-== -=== ===-= http://arcgraph.de/sr/ |
From: Clemens L. <cl...@la...> - 2011-07-29 14:52:01
|
Stefan Richter wrote: > On Jul 29 Clemens Ladisch wrote: > > Stefan, might it be a good idea to allow all old IRMs that look like > > such a camera, i.e., if they are a S100 device? > > Good idea.¹ But then we need to address the bug with Sony's bogus IRM in > a different way. > http://git.kernel.org/linus/10389536742cefbedecb67a5b2906f155cf3a1c3 > E.g. do not act as BM if we are not IRM too. I think I have seen another > OS doing exactly this. There are IRM-capable S400 devices that are not BM capable, so I think a S100 check would be appropriate here, too. In other words, (only) if the IRM is S100, leave it completely alone. (I guess there might be some cameras with working firmware, but are there any other S100-only A/V devices?) Regards, Clemens |
From: Stefan R. <st...@s5...> - 2011-07-31 14:07:45
|
On Jul 29 Clemens Ladisch wrote: > (I guess there might be some cameras with working firmware, Sounds ridiculously improbable, but there actually do exist some. My entry-level JVC GR-D725E works properly. > but are there any other S100-only A/V devices?) There are also tape decks and converters which _may_ have S100 ports (or S200 ports in some cases). I don't know about the IRM/BM capabilities and about the bugs of such devices. -- Stefan Richter -=====-==-== -=== ===== http://arcgraph.de/sr/ |
From: Stefan R. <st...@s5...> - 2011-07-31 14:08:45
|
On Jul 28 Carl Karsten wrote: > ASUS motherboard, one on board firewire, one pci card. > > plug camera into card, all works fine. plug into on board and things fail > > (veyepar)juser@cnt2:~$ lspci |grep 13 > 04:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6315 Series > Firewire Controller (rev 01) > 08:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306/7/8 [Fire > II(M)] IEEE 1394 OHCI Controller (rev 46) > > (veyepar)juser@cnt2:~$ dvgrab > Error: no camera exists > > [ 1106.523403] firewire_core: skipped bus generations, destroying all nodes > [ 1107.020284] firewire_core: rediscovered device fw0 > [ 1561.141043] firewire_core: skipped bus generations, destroying all nodes > [ 1561.638991] firewire_core: rediscovered device fw0 > [ 1561.638999] firewire_core: giving up on config rom for node id ffc0 > [ 1572.087990] firewire_ohci: isochronous cycle inconsistent > [ 1572.798527] firewire_core: created device fw2: GUID 008045821097902b, S100 > [ 1572.798534] firewire_core: phy config: card 1, new root=ffc1, gap_count=5 > [ 1572.799208] firewire_core: IRM is not 1394a compliant, making local node (ffc0) root. > [ 1572.799211] firewire_core: phy config: card 1, new root=ffc0, gap_count=5 What is the model designation of this camcorder? If this camcorder is plugged into to the PCI card (with which it works), does the "IRM is not 1394a compliant, making local node (ffc0) root" message show up too? -- Stefan Richter -=====-==-== -=== ===== http://arcgraph.de/sr/ |
From: Carl K. <ca...@pe...> - 2011-08-10 18:25:17
|
I am using this box to test my tests. currently async-test isn't alerting me to a problem, but it seems to be having a problem. so this is a problem :) async-test receive/send... It showed something like (I am doing this from memory, see why below) 4096 packets, 0.17 MB/s same when I switched dmesg shows lots of [482238.255966] usb 1-1.2: reset high speed USB device using ehci_hcd and address 3 I am not sure what all I had done to the box, so rebooted. now async-test ( shows: 20459520 packets, 20.82 MB/s dmesg: [ 70.496550] irq_handler: 33 callbacks suppressed [ 70.496553] firewire_ohci: isochronous cycle inconsistent [ 70.496645] firewire_core: phy config: card 1, new root=ffc1, gap_count=5 [ 70.991546] firewire_core: created device fw2: GUID 001106660000052c, S400 [ 70.991599] firewire_core: created device fw3: GUID 001e8c0000417075, S400 I am fielding around trying to get it back to the problem state. any suggestions? -- Carl K |
From: Clemens L. <cl...@la...> - 2011-08-11 19:51:30
|
Carl Karsten wrote: >dmesg shows lots of > >[482238.255966] usb 1-1.2: reset high speed USB device using ehci_hcd >and address 3 This message indicates that the kernel has decided to reset the device because of some problem, or that the device is resetting itself. I don't see any possibility how the FireWire driver could cause this; this is probably some PCI device blocking the bus for way too long, or electrical noise. >[ 70.496550] irq_handler: 33 callbacks suppressed >[ 70.496553] firewire_ohci: isochronous cycle inconsistent According to Google, this happens with a broken controller. Regards, Clemens |
From: Stefan R. <st...@s5...> - 2011-08-10 21:06:22
|
On Aug 10 Carl Karsten wrote: [...] > async-test receive/send... > > It showed something like (I am doing this from memory, see why below) > 4096 packets, 0.17 MB/s > > same when I switched > > dmesg shows lots of > > [482238.255966] usb 1-1.2: reset high speed USB device using ehci_hcd > and address 3 > > I am not sure what all I had done to the box, so rebooted. [...] Maybe a FireWire kernel driver bug could be the cause and USB a victim, by the FW driver corrupting memory and other kernel subsystems beginning to act strange. Or USB trouble was the cause and FireWire slowdown one result of it. (I don't know whether the above USB message is about the hardware doing something to the kernel, or the kernel doing something to the hardware. grep doesn't find the message in the source with the string fragments that I tried.) -- Stefan Richter -=====-==-== =--- -=-=- http://arcgraph.de/sr/ |
From: Carl K. <ca...@pe...> - 2011-08-10 23:03:19
|
On Wed, Aug 10, 2011 at 4:06 PM, Stefan Richter <st...@s5...> wrote: > On Aug 10 Carl Karsten wrote: > [...] >> async-test receive/send... >> >> It showed something like (I am doing this from memory, see why below) >> 4096 packets, 0.17 MB/s >> >> same when I switched >> >> dmesg shows lots of >> >> [482238.255966] usb 1-1.2: reset high speed USB device using ehci_hcd >> and address 3 >> >> I am not sure what all I had done to the box, so rebooted. > [...] > > Maybe a FireWire kernel driver bug could be the cause and USB a victim, by > the FW driver corrupting memory and other kernel subsystems beginning to > act strange. > > Or USB trouble was the cause and FireWire slowdown one result of it. > > (I don't know whether the above USB message is about the hardware doing > something to the kernel, or the kernel doing something to the hardware. > grep doesn't find the message in the source with the string fragments that > I tried.) running async test and dvgrab for a few hours - no errors reported by either app, dmesg shows: [ 7330.695465] firewire_core: Unsolicited response (source ffc1, tlabel 7) [ 7330.709945] firewire_core: Unsolicited response (source ffc1, tlabel a) [ 7330.710859] firewire_core: Unsolicited response (source ffc1, tlabel a) [ 7330.711482] firewire_core: Unsolicited response (source ffc1, tlabel a) [ 7330.716491] firewire_core: Unsolicited response (source ffc1, tlabel b) [ 7330.721875] firewire_core: Unsolicited response (source ffc1, tlabel c) [ 7330.725817] firewire_core: Unsolicited response (source ffc1, tlabel d) [ 7330.734088] firewire_core: Unsolicited response (source ffc1, tlabel f) [ 7330.734989] firewire_core: Unsolicited response (source ffc1, tlabel f) [ 7330.741211] firewire_core: Unsolicited response (source ffc1, tlabel 11) [ 7330.742833] firewire_core: Unsolicited response (source ffc1, tlabel 11) [ 7330.750206] firewire_core: Unsolicited response (source ffc1, tlabel 11) [ 7330.768571] firewire_core: Unsolicited response (source ffc1, tlabel 17) [ 7330.772457] firewire_core: Unsolicited response (source ffc1, tlabel 18) [ 7330.775688] firewire_core: Unsolicited response (source ffc1, tlabel 18) [ 7330.777571] firewire_core: Unsolicited response (source ffc1, tlabel 19) [ 7330.781273] firewire_core: Unsolicited response (source ffc1, tlabel 19) [ 7330.783561] firewire_core: Unsolicited response (source ffc1, tlabel 19) [ 7330.801291] firewire_core: Unsolicited response (source ffc1, tlabel 1e) [ 7330.803408] firewire_core: Unsolicited response (source ffc1, tlabel 1f) [ 7330.813008] firewire_core: Unsolicited response (source ffc1, tlabel 20) [ 7330.815530] firewire_core: Unsolicited response (source ffc1, tlabel 20) [ 7330.821509] firewire_core: Unsolicited response (source ffc1, tlabel 21) [ 7330.822544] firewire_core: Unsolicited response (source ffc1, tlabel 20) [ 7330.835853] firewire_core: Unsolicited response (source ffc1, tlabel 25) [ 7330.842394] firewire_core: Unsolicited response (source ffc1, tlabel 27) [ 7330.847752] firewire_core: Unsolicited response (source ffc1, tlabel 28) [ 7330.856019] firewire_core: Unsolicited response (source ffc1, tlabel 29) [ 7330.866216] firewire_core: Unsolicited response (source ffc1, tlabel 2b) [ 7330.870480] firewire_core: Unsolicited response (source ffc1, tlabel 2d) [ 7330.876955] firewire_core: Unsolicited response (source ffc1, tlabel 2e) [ 7330.878072] firewire_core: Unsolicited response (source ffc1, tlabel 2e) [ 7330.879999] firewire_core: Unsolicited response (source ffc1, tlabel 2e) [ 7330.880218] firewire_core: Unsolicited response (source ffc1, tlabel 2e) [ 7330.890098] firewire_core: Unsolicited response (source ffc1, tlabel 30) [ 7330.892483] firewire_core: Unsolicited response (source ffc1, tlabel 30) [ 7330.894967] firewire_core: Unsolicited response (source ffc1, tlabel 31) [ 7330.900325] firewire_core: Unsolicited response (source ffc1, tlabel 31) [ 7330.916255] firewire_core: Unsolicited response (source ffc1, tlabel 34) [ 7330.918720] firewire_core: Unsolicited response (source ffc1, tlabel 35) [ 7330.919713] firewire_core: Unsolicited response (source ffc1, tlabel 35) [ 7330.926464] firewire_core: Unsolicited response (source ffc1, tlabel 35) [ 7330.931777] firewire_core: Unsolicited response (source ffc1, tlabel 36) [ 7331.595808] firewire_core: Unsolicited response (source ffc1, tlabel 27) [ 7331.599822] firewire_core: Unsolicited response (source ffc1, tlabel 2d) [ 7331.608193] firewire_core: Unsolicited response (source ffc1, tlabel 39) [ 7331.613035] firewire_core: Unsolicited response (source ffc1, tlabel f) [ 7331.617269] firewire_core: Unsolicited response (source ffc1, tlabel 20) [ 7331.720069] firewire_core: Unsolicited response (source ffc1, tlabel 29) [ 7331.722728] firewire_core: Unsolicited response (source ffc1, tlabel 3) [ 7331.734084] firewire_core: Unsolicited response (source ffc1, tlabel 2a) [ 7331.740303] firewire_core: Unsolicited response (source ffc1, tlabel 10) [ 7331.752684] firewire_core: Unsolicited response (source ffc1, tlabel 32) [ 7331.758550] firewire_core: Unsolicited response (source ffc1, tlabel 37) [ 7331.759681] firewire_core: Unsolicited response (source ffc1, tlabel 39) [ 7331.769806] firewire_core: Unsolicited response (source ffc1, tlabel 7) [ 7331.783678] firewire_core: Unsolicited response (source ffc1, tlabel f) [ 7331.802278] firewire_core: Unsolicited response (source ffc1, tlabel 17) [ 7331.828140] firewire_core: Unsolicited response (source ffc1, tlabel 3b) [ 7331.833643] firewire_core: Unsolicited response (source ffc1, tlabel 1e) [ 7331.842223] firewire_core: Unsolicited response (source ffc1, tlabel 32) [ 7331.941672] firewire_core: Unsolicited response (source ffc1, tlabel 5) [ 7331.945800] firewire_core: Unsolicited response (source ffc1, tlabel 1) [ 7331.953144] firewire_core: Unsolicited response (source ffc1, tlabel e) [ 7331.960263] firewire_core: Unsolicited response (source ffc1, tlabel 23) [ 7331.962266] firewire_core: Unsolicited response (source ffc1, tlabel 23) [ 7331.963792] firewire_core: Unsolicited response (source ffc1, tlabel 23) [ 7331.963913] firewire_core: Unsolicited response (source ffc1, tlabel 23) [ 7331.965637] firewire_core: Unsolicited response (source ffc1, tlabel 1e) [ 7331.972407] firewire_core: Unsolicited response (source ffc1, tlabel 5) [ 7331.985267] firewire_core: Unsolicited response (source ffc1, tlabel 14) [ 7331.993752] firewire_core: Unsolicited response (source ffc1, tlabel 1d) [ 7332.004731] firewire_core: Unsolicited response (source ffc1, tlabel 12) [ 7332.004847] firewire_core: Unsolicited response (source ffc1, tlabel 12) [ 7332.015867] firewire_core: Unsolicited response (source ffc1, tlabel 20) [ 7332.019996] firewire_core: Unsolicited response (source ffc1, tlabel 20) [ 7332.113915] firewire_core: Unsolicited response (source ffc1, tlabel 9) [ 7332.114926] firewire_core: Unsolicited response (source ffc1, tlabel 9) [ 7332.116384] firewire_core: Unsolicited response (source ffc1, tlabel 9) [ 7332.136536] firewire_core: Unsolicited response (source ffc1, tlabel 24) [ 7332.136745] firewire_core: Unsolicited response (source ffc1, tlabel 24) [ 7332.206641] firewire_core: Unsolicited response (source ffc1, tlabel 35) [ 7332.503467] firewire_core: Unsolicited response (source ffc1, tlabel 21) [ 7953.959850] usb 1-1.2: reset high speed USB device using ehci_hcd and address 3 [ 8719.469428] usb 1-1.2: reset high speed USB device using ehci_hcd and address 3 [10626.237564] usb 1-1.2: reset high speed USB device using ehci_hcd and address 3 [16790.288018] usb 1-1.2: reset high speed USB device using ehci_hcd and address 3 [16988.171279] usb 1-1.2: reset high speed USB device using ehci_hcd and address 3 (veyepar)juser@cnt1:~$ Is this anything I should care about? -- Carl K |