Hi,
On Fri, Jan 24, 2020 at 10:16:53PM +0000, Daniel Jozsef wrote:
$ ./firewire-request /dev/fw1 fcp 0x01ff3000ffffffff response: 000: 0c ff 30 07 0f 00 23 27 ..0...#' $ ./firewire-request /dev/fw1 fcp 0x01ff3100ffffffff response: 000: 0c ff 31 00 08 60 ff ff ..1..`.. $ ./firewire-request /dev/fw1 fcp 0x01ff0200ffffffff response: 000: 0c ff 02 00 02 02 04 03 ........ $ ./firewire-request /dev/fw1 fcp 0x01080200ffffffff response: 000: 0c 08 02 00 04 01 ff ff ........ $ ./firewire-request /dev/fw1 fcp 0x01600200ffffffff response: 000: 0c 60 02 00 06 05 ff ff .`......
From what I gather from the reference you linked, this seems more or less what's expected, though I'm not entirely sure yet what it means for the device to have 6 destination and 5 source plugs on the music subunit... :D (If I read the specs correctly...)
You got it correctly. Here, let's back to FFADO log:
Error (bebob_avplug.cpp)[ 237] discoverPlugType: Plug does not implement extended plug info plug type info command Error (bebob_avplug.cpp)[ 120] discover: discover: Could not discover plug type (1,1,0,0,1) Error (avc_subunit.cpp)[ 189] discoverPlugs: plug discover failed Error (avc_subunit.cpp)[ 131] discoverPlugs: destination plug discovering failed Error (avc_subunit.cpp)[ 99] discover: plug discovery failed Error (avc_unit.cpp)[ 283] enumerateSubUnits: enumerateSubUnits: Could not discover subunit_id = 0, subunit_type = 1 (Audio) Error (avc_unit.cpp)[ 177] discover: Could not enumerate sub units
It's my mistake to interpret the target subunit to which the command fails. It's 'Audio' subunit, not 'Music' subunit...
plug type (1,1,0,0,1)
1 = node ID (=0xFF01) 1 = subunit type (=audio) 0 = subunit ID 0 = direction (=input) 1 = plug ID (=0x01)
The EXTENDED PLUG INFO command is one of specific command for BeBoB solution and its specification is closed. In your case, 4 plugs are detected as destination plug and 1 plug as source plug in Audio subunit by AV/C PLUG INFO command for Audio subunit, thus below commands are expected to return valid information as long as implemented correctly:
(4 destination plugs = 4 input plugs) (AV/C EXTENDED PLUG INFO command for input plugs of Music subunit) $ ./firewire-request /dev/fw1 fcp 0x016002c0000100ffff00 $ ./firewire-request /dev/fw1 fcp 0x016002c0000101ffff00 (<-) $ ./firewire-request /dev/fw1 fcp 0x016002c0000102ffff00 $ ./firewire-request /dev/fw1 fcp 0x016002c0000103ffff00 $ ./firewire-request /dev/fw1 fcp 0x016002c0000104ffff00 (should fail)
(1 source plug = 1 output plug) (AV/C EXTENDED PLUG INFO command for output plugs of Music subunit) $ ./firewire-request /dev/fw1 fcp 0x016002c0010100ffff00 $ ./firewire-request /dev/fw1 fcp 0x016002c0010101ffff00 (should fail)
However, some vendors seem to implement the above with less care of compatibility, as long as I know. In your case, below command might fail:
$ ./firewire-request /dev/fw1 fcp 0x016002c0000101ffff00 (<-)
I'd like you to execute the above commands and share their responses.
Regards
Takashi Sakamoto