No DV data received from MiniDV Camera
Brought to you by:
aeb,
bencollins
From: Tasos S. <ta...@ta...> - 2023-01-21 23:08:53
|
Hello everyone, I have a JVC MiniDV camera (GR-D20E) and I am trying to archive some old tapes. The camera connects and is recognised correctly, and dvgrab starts playback of the tape remotely, however no DV data is ever received and it waits forever for it. Ctrl-Cing it correctly stops playback from the camera too. This is currently being tested with kernel 6.1.6 (firewire_ohci) with the rest of the userspace components being the versions shipped with Ubuntu 20.04. I bisected it successfully all the way back to kernel 2.6.35-rc3 on Ubuntu 10.10, down to commit: b71ab8c2025c ("workqueue: increase max_active of keventd and kill current_is_keventd()"). Unfortunately, that only complicates things further, as I do not see why that patch would cause this. I manually built a kernel before and after that patch, and it is definitely what caused the regression. I tried tracing workqueues in 6.1.6 using: echo workqueue:workqueue_queue_work > /sys/kernel/debug/tracing/set_event while starting/stopping dvgrab, however there was nothing firewire/1394 related in there. The OCHI chip is onboard an ASUS P5W DH Deluxe motherboard. 01:03.0 FireWire (IEEE 1394): Texas Instruments TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] The following is printed in dmesg on device connection: [38854.125449] firewire_core 0000:01:03.0: phy config: new root=ffc1, gap_count=5 [38854.633802] firewire_core 0000:01:03.0: rediscovered device fw0 [38854.633816] firewire_core 0000:01:03.0: giving up on node ffc0: reading config rom failed: bus reset [38854.633820] firewire_core 0000:01:03.0: phy config: new root=ffc1, gap_count=5 [38855.145798] firewire_core 0000:01:03.0: rediscovered device fw0 [38855.198781] firewire_core 0000:01:03.0: created device fw1: GUID 00808801035809f1, S100 [38856.645634] firewire_core 0000:01:03.0: giving up on node ffc0: reading config rom failed: timeout The giving up on node ffc0 message is printed even on a working 2.6.35 kernel. Diff of debug messages between working and non-working (with an offset of 0x6 applied to tl on the broken one for diff purposes): --- fw_broken_off 2023-01-03 02:08:04.032711860 +0200 +++ fw_working 2023-01-03 01:53:02.526597935 +0200 @@ -1,4 +1,4 @@ -broken: +working: firewire_ohci: AT spd 0 tl 2c, ffc1 -> ffc0, ack_pending , QR req, fffff0000414 firewire_ohci: AR spd 0 tl 2c, ffc0 -> ffc1, ack_complete, QR resp = 0008c442 firewire_ohci: AT spd 0 tl 2d, ffc1 -> ffc0, ack_pending , QR req, fffff0000414 @@ -110,13 +110,13 @@ firewire_ohci: AT spd 0 tl 20, ffc1 -> ffc0, ack_complete, BW req, fffff0000b00 8,0 firewire_ohci: AR spd 0 tl 20, ffc0 -> ffc1, ack_pending , BW req, fffff0000d00 8,0 firewire_ohci: AT spd 0 tl 20, ffc1 -> ffc0, ack_complete, W resp -firewire_ohci: AT spd 0 tl 21, ffc1 -> ffc0, ack_busy_X, BW req, fffff0000b00 8,0 +firewire_ohci: AT spd 0 tl 21, ffc1 -> ffc0, ack_complete, BW req, fffff0000b00 8,0 +firewire_ohci: AR spd 0 tl 21, ffc0 -> ffc1, ack_pending , BW req, fffff0000d00 8,0 +firewire_ohci: AT spd 0 tl 21, ffc1 -> ffc0, ack_complete, W resp firewire_ohci: AT spd 0 tl 22, ffc1 -> ffc0, ack_complete, BW req, fffff0000b00 8,0 firewire_ohci: AR spd 0 tl 22, ffc0 -> ffc1, ack_pending , BW req, fffff0000d00 8,0 firewire_ohci: AT spd 0 tl 22, ffc1 -> ffc0, ack_complete, W resp -firewire_ohci: AT spd 0 tl 23, ffc1 -> ffc0, ack_complete, BW req, fffff0000b00 8,0 -firewire_ohci: AR spd 0 tl 23, ffc0 -> ffc1, ack_pending , BW req, fffff0000d00 8,0 -firewire_ohci: AT spd 0 tl 23, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 23, ffc1 -> ffc0, ack_busy_X, BW req, fffff0000b00 8,0 firewire_ohci: AT spd 0 tl 24, ffc1 -> ffc0, ack_complete, BW req, fffff0000b00 8,0 firewire_ohci: AR spd 0 tl 24, ffc0 -> ffc1, ack_pending , BW req, fffff0000d00 8,0 firewire_ohci: AT spd 0 tl 24, ffc1 -> ffc0, ack_complete, W resp @@ -134,17 +134,87 @@ firewire_ohci: AT spd 0 tl 2a, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f firewire_ohci: AR spd 0 tl 2a, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c460 firewire_ohci: AT spd 0 tl 2a, ffc1 -> ffc0, ack_complete, W resp -firewire_ohci: AT spd 0 tl 2b, ffc1 -> ffc0, ack_busy_X, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AT spd 0 tl 2b, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 2b, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c460 +firewire_ohci: AT spd 0 tl 2b, ffc1 -> ffc0, ack_complete, W resp firewire_ohci: AT spd 0 tl 2c, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f firewire_ohci: AR spd 0 tl 2c, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c460 firewire_ohci: AT spd 0 tl 2c, ffc1 -> ffc0, ack_complete, W resp -firewire_ohci: AT spd 0 tl 2d, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f -firewire_ohci: AR spd 0 tl 2d, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c460 +firewire_ohci: AT spd 0 tl 2d, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0020c375 +firewire_ohci: AR spd 0 tl 2d, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0920c375 firewire_ohci: AT spd 0 tl 2d, ffc1 -> ffc0, ack_complete, W resp -firewire_ohci: AT spd 0 tl 2e, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0020c375 -firewire_ohci: AR spd 0 tl 2e, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0920c375 +firewire_ohci: AT spd 0 tl 2e, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 2e, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 firewire_ohci: AT spd 0 tl 2e, ffc1 -> ffc0, ack_complete, W resp -Stopped dvgrab here due to no DV data +firewire_ohci: AT spd 0 tl 2f, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 2f, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 2f, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 30, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 30, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 30, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 31, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 31, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 31, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 32, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 32, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 32, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 33, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 33, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 33, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 34, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 34, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 34, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 35, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 35, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 35, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 36, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 36, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 36, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 37, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 37, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 37, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 38, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 38, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 38, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 39, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 39, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 39, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 3a, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 3a, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 3a, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 3b, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 3b, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 3b, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 3c, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 3c, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 3c, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 3d, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 3d, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 3d, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 3e, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 3e, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 3e, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 3f, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 3f, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 3f, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 00, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 00, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 00, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 01, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 01, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 01, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 02, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 02, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 02, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 03, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 03, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 03, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 04, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 04, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 04, ffc1 -> ffc0, ack_complete, W resp +firewire_ohci: AT spd 0 tl 05, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0120d07f +firewire_ohci: AR spd 0 tl 05, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0c20c375 +firewire_ohci: AT spd 0 tl 05, ffc1 -> ffc0, ack_complete, W resp firewire_ohci: AT spd 0 tl 06, ffc1 -> ffc0, ack_complete, QW req, fffff0000b00 = 0020c460 firewire_ohci: AR spd 0 tl 06, ffc0 -> ffc1, ack_pending , QW req, fffff0000d00 = 0920c460 firewire_ohci: AT spd 0 tl 06, ffc1 -> ffc0, ack_complete, W resp Any help and suggestions are greatly appreciated. |