Re: fw1 not created for dv-camera
Brought to you by:
aeb,
bencollins
From: Stefan R. <st...@s5...> - 2011-08-04 21:25:28
|
The following simple modification helps somewhat: --- a/drivers/firewire/core-device.c +++ b/drivers/firewire/core-device.c @@ -432,6 +432,8 @@ static int read_rom(struct fw_device *de /* device->node_id, accessed below, must not be older than generation */ smp_rmb(); + msleep(10); + rcode = fw_run_transaction(device->card, TCODE_READ_QUADLET_REQUEST, device->node_id, generation, device->max_speed, (CSR_REGISTER_BASE | CSR_CONFIG_ROM) + index * 4, Aug 4 23:05:57 mini kernel: firewire_ohci: IRQ 00000010 AR_req Aug 4 23:05:57 mini kernel: firewire_ohci: AR evt_bus_reset, generation 22 Aug 4 23:05:57 mini kernel: firewire_ohci: IRQ 00010000 selfID Aug 4 23:05:57 mini kernel: firewire_ohci: 4 selfIDs, generation 22, local node ID ffc2 Aug 4 23:05:57 mini kernel: firewire_ohci: selfID 0: 807f0880, phy 0 [p..] S100 gc=63 +0W Lc Aug 4 23:05:57 mini kernel: firewire_ohci: selfID 0: 813f8465, phy 1 [-p-] S400 gc=63 -3W Aug 4 23:05:57 mini kernel: firewire_ohci: selfID n: 8181d000, phy 1 [-c-.....] Aug 4 23:05:57 mini kernel: firewire_ohci: selfID 0: 827f88d4, phy 2 [c--] S400 gc=63 +0W Lc Aug 4 23:05:57 mini kernel: firewire_core: phy config: card 0, new root=ffc2, gap_count=7 Aug 4 23:05:57 mini kernel: firewire_ohci: IRQ 00000001 AT_req Aug 4 23:05:57 mini kernel: firewire_ohci: AT ack_complete, phy config packet, 02c70000 Aug 4 23:05:57 mini kernel: firewire_ohci: IRQ 00000010 AR_req Aug 4 23:05:57 mini kernel: firewire_ohci: AR evt_bus_reset, generation 23 Aug 4 23:05:57 mini kernel: firewire_ohci: AR evt_bus_reset, generation 24 Aug 4 23:05:57 mini kernel: firewire_ohci: IRQ 00010000 selfID Aug 4 23:05:57 mini kernel: firewire_ohci: 4 selfIDs, generation 24, local node ID ffc2 Aug 4 23:05:57 mini kernel: firewire_ohci: selfID 0: 80470880, phy 0 [p..] S100 gc=7 +0W Lc Aug 4 23:05:57 mini kernel: firewire_ohci: selfID 0: 81078465, phy 1 [-p-] S400 gc=7 -3W Aug 4 23:05:57 mini kernel: firewire_ohci: selfID n: 8181d000, phy 1 [-c-.....] Aug 4 23:05:57 mini kernel: firewire_ohci: selfID 0: 824788d4, phy 2 [c--] S400 gc=7 +0W Lc Aug 4 23:05:57 mini kernel: firewire_core: skipped bus generations, destroying all nodes Aug 4 23:05:57 mini kernel: firewire_core: giving up on config rom for node id ffc0 Aug 4 23:05:57 mini kernel: firewire_core: rediscovered device fw0 Aug 4 23:05:57 mini kernel: firewire_ohci: IRQ 00000001 AT_req Aug 4 23:05:57 mini kernel: firewire_ohci: AT spd 0 tl 1b, ffc2 -> ffc0, ack_pending , QR req, fffff0000400 Aug 4 23:05:57 mini kernel: firewire_ohci: IRQ 00000020 AR_resp Aug 4 23:05:57 mini kernel: firewire_ohci: AR spd 0 tl 1b, ffc0 -> ffc2, ack_complete, QR resp = 040fc824 Aug 4 23:05:57 mini kernel: firewire_ohci: IRQ 00000001 AT_req Aug 4 23:05:57 mini kernel: firewire_ohci: AT spd 0 tl 1c, ffc2 -> ffc0, ack_busy_X, QR req, fffff0000404 Aug 4 23:06:00 mini kernel: firewire_ohci: IRQ 00000001 AT_req Aug 4 23:06:00 mini kernel: firewire_ohci: AT spd 0 tl 1f, ffc2 -> ffc0, ack_pending , QR req, fffff0000400 Aug 4 23:06:00 mini kernel: firewire_ohci: IRQ 00000020 AR_resp Aug 4 23:06:00 mini kernel: firewire_ohci: AR spd 0 tl 1f, ffc0 -> ffc2, ack_complete, QR resp = 040fc824 Aug 4 23:06:00 mini kernel: firewire_ohci: IRQ 00000001 AT_req Aug 4 23:06:00 mini kernel: firewire_ohci: AT spd 0 tl 20, ffc2 -> ffc0, ack_busy_X, QR req, fffff0000404 Aug 4 23:06:03 mini kernel: firewire_ohci: IRQ 00000001 AT_req Aug 4 23:06:03 mini kernel: firewire_ohci: AT spd 0 tl 21, ffc2 -> ffc0, ack_pending , QR req, fffff0000400 Aug 4 23:06:03 mini kernel: firewire_ohci: IRQ 00000020 AR_resp Aug 4 23:06:03 mini kernel: firewire_ohci: AR spd 0 tl 21, ffc0 -> ffc2, ack_complete, QR resp = 040fc824 Aug 4 23:06:03 mini kernel: firewire_ohci: IRQ 00000001 AT_req Aug 4 23:06:03 mini kernel: firewire_ohci: AT spd 0 tl 22, ffc2 -> ffc0, ack_pending , QR req, fffff0000404 Aug 4 23:06:03 mini kernel: firewire_ohci: IRQ 00000020 AR_resp Aug 4 23:06:03 mini kernel: firewire_ohci: AR spd 0 tl 22, ffc0 -> ffc2, ack_complete, QR resp = 31333934 Aug 4 23:06:03 mini kernel: firewire_ohci: IRQ 00000001 AT_req Aug 4 23:06:03 mini kernel: firewire_ohci: AT spd 0 tl 23, ffc2 -> ffc0, ack_pending , QR req, fffff0000408 Aug 4 23:06:03 mini kernel: firewire_ohci: IRQ 00000020 AR_resp Aug 4 23:06:03 mini kernel: firewire_ohci: AR spd 0 tl 23, ffc0 -> ffc2, ack_complete, QR resp = e0643000 Aug 4 23:06:03 mini kernel: firewire_ohci: IRQ 00000001 AT_req Aug 4 23:06:03 mini kernel: firewire_ohci: AT spd 0 tl 24, ffc2 -> ffc0, ack_pending , QR req, fffff000040c Aug 4 23:06:04 mini kernel: firewire_ohci: IRQ 00000020 AR_resp [...] Aug 4 23:06:04 mini kernel: firewire_ohci: IRQ 00000001 AT_req Aug 4 23:06:04 mini kernel: firewire_ohci: AT spd 0 tl 2f, ffc2 -> ffc0, ack_pending , QR req, fffff0000438 Aug 4 23:06:04 mini kernel: firewire_ohci: IRQ 00000020 AR_resp Aug 4 23:06:04 mini kernel: firewire_ohci: AR spd 0 tl 2f, ffc0 -> ffc2, ack_complete, QR resp = 00804580 Aug 4 23:06:04 mini kernel: firewire_ohci: IRQ 00000001 AT_req Aug 4 23:06:04 mini kernel: firewire_ohci: AT spd 0 tl 30, ffc2 -> ffc0, ack_pending , QR req, fffff000043c Aug 4 23:06:04 mini kernel: firewire_ohci: IRQ 00000020 AR_resp Aug 4 23:06:04 mini kernel: firewire_ohci: AR spd 0 tl 30, ffc0 -> ffc2, ack_complete, QR resp = 1086917b Aug 4 23:06:04 mini kernel: firewire_core: created device fw1: GUID 008045801086917b, S100, 2 config ROM retries After that, kino shows video from the camcorder in the capture pane. But it is unable to determine the status of the camcorder due to many I/O errors of the sort of rom1394_2 warning: read failed: 0x0000fffff0000414 (and at other offsets). he kernel logs these as ack_busy_X failures again. Kino's status bar at the bottom shows "No AV/C compliant cam connected or not switched on?" With ohci1394 + ieee1394 + raw1394, there are a few of such I/O failures in Kino too (also "AVC status error" now and then), but they happen at a far lower frequency. The stats bar generally shows "AV/C Controls Enabled". I need to have a closer look at firewire-ohci vs. ohci1394, whether there are any differences WRT busy-retries (I was under the impression there wasn't) or WRT setup of the local PHY as far as it might affect bus arbitration (though firewire-ohci in 2.6.33 does not enable some 1394a stuff as newer versions do). -- Stefan Richter -=====-==-== =--- --=-- http://arcgraph.de/sr/ |