Re: fw1 not created for dv-camera
Brought to you by:
aeb,
bencollins
From: Stefan R. <st...@s5...> - 2011-08-04 19:21:04
|
On Aug 03 Stefan Richter wrote: > I expect a Panasonic NV-DX110 to arrive in my mail this week. This device > is from the looks and feature set the same as Panasonic AG-EZ30. Besides > under Linux, I will be able to test it on OS X and Windows XP. I may > also be able to capture traffic between those other OSs and the camcorder > by means of a PCILynx card and Linux' FireWire packet sniffer "nosy". OK, I've got my hands on an NV-DX110 now. - Kernel 3.0, x86-64, Agere FW643e controller, - kernel 2.6.33 + firewire updates to current master, x86-32, Agere FW323: behave exactly like with René's Grundig Scenos DLC 2000 and Thomas' Panasonic AG-EZ30. There are always ack-busy-x when the second quadlet of the Configuration ROM is attempted to be read: Aug 4 20:28:44 stein kernel: firewire_ohci: IRQ 00010010 selfID AR_req Aug 4 20:28:44 stein kernel: firewire_ohci: AR evt_bus_reset, generation 54 Aug 4 20:28:44 stein kernel: firewire_ohci: 2 selfIDs, generation 54, local node ID ffc1 Aug 4 20:28:44 stein kernel: firewire_ohci: selfID 0: 807f0880, phy 0 [p..] S100 gc=63 +0W Lc Aug 4 20:28:44 stein kernel: firewire_ohci: selfID 0: 817fcc76, phy 1 [-c-] beta gc=63 -3W Lci Aug 4 20:28:44 stein kernel: firewire_core: phy config: card 0, new root=ffc1, gap_count=5 Aug 4 20:28:44 stein kernel: firewire_ohci: IRQ 00000001 AT_req Aug 4 20:28:44 stein kernel: firewire_ohci: AT ack_complete, PHY 01c50000 fe3affff Aug 4 20:28:44 stein kernel: firewire_ohci: IRQ 00000010 AR_req Aug 4 20:28:44 stein kernel: firewire_ohci: AR evt_bus_reset, generation 55 Aug 4 20:28:44 stein kernel: firewire_ohci: IRQ 00010000 selfID Aug 4 20:28:44 stein kernel: firewire_ohci: 2 selfIDs, generation 55, local node ID ffc1 Aug 4 20:28:44 stein kernel: firewire_ohci: selfID 0: 80450880, phy 0 [p..] S100 gc=5 +0W Lc Aug 4 20:28:44 stein kernel: firewire_ohci: selfID 0: 8145cc76, phy 1 [-c-] beta gc=5 -3W Lci Aug 4 20:28:44 stein kernel: firewire_ohci: IRQ 00000001 AT_req Aug 4 20:28:44 stein kernel: firewire_ohci: AT spd 0 tl 00, ffc1 -> ffc0, ack_pending , QR req, fffff0000400 Aug 4 20:28:44 stein kernel: firewire_ohci: IRQ 00000020 AR_resp Aug 4 20:28:44 stein kernel: firewire_ohci: AR spd 0 tl 00, ffc0 -> ffc1, ack_complete, QR resp = 040fc824 Aug 4 20:28:44 stein kernel: firewire_ohci: IRQ 00000001 AT_req Aug 4 20:28:44 stein kernel: firewire_ohci: AT spd 0 tl 01, ffc1 -> ffc0, ack_busy_X, QR req, fffff0000404 [...] Aug 4 20:29:14 stein kernel: firewire_ohci: IRQ 00000001 AT_req Aug 4 20:29:14 stein kernel: firewire_ohci: AT spd 0 tl 14, ffc1 -> ffc0, ack_pending , QR req, fffff0000400 Aug 4 20:29:14 stein kernel: firewire_ohci: IRQ 00000020 AR_resp Aug 4 20:29:14 stein kernel: firewire_ohci: AR spd 0 tl 14, ffc0 -> ffc1, ack_complete, QR resp = 040fc824 Aug 4 20:29:14 stein kernel: firewire_ohci: IRQ 00000001 AT_req Aug 4 20:29:14 stein kernel: firewire_ohci: AT spd 0 tl 15, ffc1 -> ffc0, ack_busy_X, QR req, fffff0000404 Aug 4 20:29:14 stein kernel: firewire_core: giving up on config rom for node id ffc0 Next test: - Kernel 2.6.33 ohci1394 + ieee1394 + raw1394, x86-32, Agere FW 323, everything works fine. Aug 4 20:34:40 mini kernel: ohci1394 0000:03:03.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19 Aug 4 20:34:40 mini kernel: ohci1394: fw-host0: OHCI-1394 1.0 (PCI): IRQ=[19] MMIO=[90000000-900007ff] Max Packet=[2048] IR/IT contexts=[8/8] Aug 4 20:34:42 mini kernel: ieee1394: Host added: ID:BUS[0-01:1023] GUID[0017f2fffe66fb80] Aug 4 20:34:49 mini kernel: ieee1394: raw1394: /dev/raw1394 device initialized Aug 4 20:35:00 mini kernel: ieee1394: Node added: ID:BUS[0-00:1023] GUID[008045801086917b] Aug 4 20:35:00 mini kernel: ieee1394: Node changed: 0-01:1023 -> 0-02:1023 From there on, gscanbus and kino are able to access the camcorder, and kino shows the live preview in its capture pane. (On the node IDs in the mini log: There is a third node on mini's bus, a 1394a 6-port hub. This doesn't matter for the failure mode with firewire-ohci and firewire-core.) (Unrelated observation: These three 1/4" sensors in the NV-DX110 are a whole different ballgame from the extremely noisy single 1/6" sensor that is in my other two toy camcorders, or the single 1/4" sensor of the Apple iSight or of the Unibrain Fire-i.) Conclusion: This is a regression of the firewire driver stack relative to the ieee1394 driver stack. Now we just need to find out how to make it work with the newer drivers like it did with the older ones. Another quick test: Back on stein with kernel 3.0, Agere FW643e and firewire-core/ohci but now with a 1394b 3port hub between card and camcorder the failure is again the same as before. I added this 1394b hub as a lazy trick to disable gap count optimization: Aug 4 21:08:18 stein kernel: firewire_ohci: IRQ 00010010 selfID AR_req Aug 4 21:08:18 stein kernel: firewire_ohci: AR evt_bus_reset, generation 59 Aug 4 21:08:18 stein kernel: firewire_ohci: 3 selfIDs, generation 59, local node ID ffc2 Aug 4 21:08:18 stein kernel: firewire_ohci: selfID 0: 807f0880, phy 0 [p..] S100 gc=63 +0W Lc Aug 4 21:08:18 stein kernel: firewire_ohci: selfID 0: 813fc478, phy 1 [-cp] beta gc=63 -3W Aug 4 21:08:18 stein kernel: firewire_ohci: selfID 0: 827fcc74, phy 2 [-c-] beta gc=63 -3W Lc Aug 4 21:08:18 stein kernel: firewire_ohci: IRQ 00000001 AT_req Aug 4 21:08:18 stein kernel: firewire_ohci: AT spd 0 tl 37, ffc2 -> ffc0, ack_pending , QR req, fffff0000400 Aug 4 21:08:18 stein kernel: firewire_ohci: IRQ 00000020 AR_resp Aug 4 21:08:18 stein kernel: firewire_ohci: AR spd 0 tl 37, ffc0 -> ffc2, ack_complete, QR resp = 040fc824 Aug 4 21:08:18 stein kernel: firewire_ohci: IRQ 00000001 AT_req Aug 4 21:08:18 stein kernel: firewire_ohci: AT spd 0 tl 38, ffc2 -> ffc0, ack_busy_X, QR req, fffff0000404 [...] Aug 4 21:08:49 stein kernel: firewire_ohci: IRQ 00000001 AT_req Aug 4 21:08:49 stein kernel: firewire_ohci: AT spd 0 tl 0b, ffc2 -> ffc0, ack_pending , QR req, fffff0000400 Aug 4 21:08:49 stein kernel: firewire_ohci: IRQ 00000020 AR_resp Aug 4 21:08:49 stein kernel: firewire_ohci: AR spd 0 tl 0b, ffc0 -> ffc2, ack_complete, QR resp = 040fc824 Aug 4 21:08:49 stein kernel: firewire_ohci: IRQ 00000001 AT_req Aug 4 21:08:49 stein kernel: firewire_ohci: AT spd 0 tl 0c, ffc2 -> ffc0, ack_busy_X, QR req, fffff0000404 Aug 4 21:08:49 stein kernel: firewire_core: giving up on config rom for node id ffc0 So, gap count 5 or 7 or 63 don't matter to the issue here. ieee1394 always leaves the gap count unmodified. gscanbus confirms a gap count of 63 if the Linux node is root node from the beginning, and 44 if the camcorder starts out as root node. ieee1394 forces itself to become root node then because the camcorder's IRM is not 1394a compliant, but that single bus reset still leaves the gap count at 44. ieee1394's bus reset to force a 1394a IRM does not break accessibility of the camcorder. This means that the equivalent routine in firewire-core is not the culprit either. -- Stefan Richter -=====-==-== =--- --=-- http://arcgraph.de/sr/ |