[alsa-devel] [PATCH 3/3] ALSA: oxfw: fix for Stanton SCS.1d
Takashi Iwai
tiwai at suse.de
Mon Jan 13 10:46:53 CET 2020
On Mon, 13 Jan 2020 08:34:18 +0100,
Takashi Sakamoto wrote:
>
> Stanton SCS.1d uses Oxford Semiconductor FW 971 ASIC (FW971) for
> communication. Although the unit is bound to ALSA oxfw driver, the instance
> of sound card can not be added due to its quirk of plug information. This
> bug was added when snd-scs1x is merged into snd-oxfw at commit
> 9e2004f9cedf ("ALSA: oxfw: obsolete scs1x module").
>
> This commit fixes the driver for the quirk. In cases that the unit returns
> NOT IMPLEMENTED for some AV/C commands, the sound card is added without any
> PCM/MIDI interfaces for packet streaming. For SCS.1d, model dependent
> operation adds MIDI interface and applications can use it to operate
> according to HSS1394 protocol from reverse-engineering work by Sean M.
> Pappalardo.
>
> Plug Control Register (PCR) has information that the unit has a pair of
> plugs for isochronous communication:
>
> (oMPR)
> $ ./firewire-request /dev/fw1 read 0xfffff0000900
> result: 80ff0001
> (iMPR)
> $ ./firewire-request /dev/fw1 read 0xfffff0000980
> result: 80ff0001
>
> AV/C PLUG INFO also returns information that the unit has a pair of
> plugs for isochronous communication.
>
> (AV/C PLUG INFO command)
> $ ./firewire-request /dev/fw1 fcp 0x01ff0200ffffffff
> response: 000: 0c ff 02 00 01 01 02 02
>
> However, AV/C PLUG SIGNAL INFO command is rejected for both plugs.
>
> (AV/C OUTPUT PLUG SIGNAL INFO command)
> $ ./firewire-request /dev/fw1 fcp 0x01ff1800ffffffff
> response: 000: 0a ff 18 00 ff ff ff ff
> (AV/C INPUT PLUG SIGNAL INFO command)
> $ ./firewire-request /dev/fw1 fcp 0x01ff1900ffffffff
> response: 000: 0a ff 19 00 ff ff ff ff
>
> Furthermore, AV/C EXTENDED STREAM FORMAT INFO is not implemented.
>
> (AV/C EXTENDED STREAM FORMAT INFO list subfunction for input plug)
> $ ./firewire-request /dev/fw1 fcp 0x01ffbfc000000000ffff00ff
> response: 000: 08 ff bf c0 00 00 00 00 ff ff 00 ff
> (AV/C EXTENDED STREAM FORMAT INFO list subfunction for output plug)
> $ ./firewire-request /dev/fw1 fcp 0x01ffbfc001000000ffff00ff
> response: 000: 08 ff bf c0 01 00 00 00 ff ff 00 ff
> (AV/C EXTENDED STREAM FORMAT INFO single subfunction for input plug)
> $ ./firewire-request /dev/fw1 fcp 0x01ffbfc100000000ffffffff
> response: 000: 08 ff bf c1 00 00 00 00 ff ff ff ff
> (AV/C EXTENDED STREAM FORMAT INFO single subfunction for output plug)
> $ ./firewire-request /dev/fw1 fcp 0x01ffbfc101000000ffffffff
> response: 000: 08 ff bf c1 01 00 00 00 ff ff ff ff
>
> Reference: https://mailman.alsa-project.org/pipermail/alsa-devel/2012-May/052264.html
> Signed-off-by: Takashi Sakamoto <o-takashi at sakamocchi.jp>
Applied to for-next branch. Thanks.
Takashi
More information about the Alsa-devel
mailing list