[alsa-devel] [PATCH] ALSA: dice: add support for M-Audio Profire 610 and perhaps 2626
Takashi Iwai
tiwai at suse.de
Sun May 8 11:18:03 CEST 2016
On Sat, 30 Apr 2016 15:06:46 +0200,
Takashi Sakamoto wrote:
>
> M-Audio Profire 610 has an unexpected value in version field of its config
> ROM, thus ALSA dice driver is not assigned to the model due to a mismatch
> of modalias.
>
> This commit adds an entry to support the model. I expect the entry is
> also for Profire 2626.
>
> I note that Profire 610 uses TCD2220 (so-called Dice Jr.), and supports a
> part of Extended Application Protocol (EAP).
>
> $ cd linux-firewire-utils/src
> $ ./crpp < /sys/bus/firewire/devices/fw1/config_rom
> ROM header and bus information block
> ------------------------------------------------------------
> 400 04047689 bus_info_length 4, crc_length 4, crc 30345
> 404 31333934 bus_name "1394"
> 408 e0ff8112 irmc 1, cmc 1, isc 1, bmc 0, pmc 0, cyc_clk_acc 255,
> max_rec 8 (512), max_rom 1, gen 1, spd 2 (S400)
> 40c 000d6c04 company_id 000d6c |
> 410 04400002 device_id 0404400002 | EUI-64 000d6c0404400002
>
> root directory
> ------------------------------------------------------------
> 414 000695fe directory_length 6, crc 38398
> 418 03000d6c vendor
> 41c 8100000a --> descriptor leaf at 444
> 420 17000011 model
> 424 8100000d --> descriptor leaf at 458
> 428 0c0087c0 node capabilities per IEEE 1394
> 42c d1000001 --> unit directory at 430
>
> unit directory at 430
> ------------------------------------------------------------
> 430 0004fb14 directory_length 4, crc 64276
> 434 12000d6c specifier id
> 438 130100d1 version
> 43c 17000011 model
> 440 8100000c --> descriptor leaf at 470
>
> descriptor leaf at 444
> ------------------------------------------------------------
> 444 0004b8e4 leaf_length 4, crc 47332
> 448 00000000 textual descriptor
> 44c 00000000 minimal ASCII
> 450 4d2d4175 "M-Au"
> 454 64696f00 "dio"
>
> descriptor leaf at 458
> ------------------------------------------------------------
> 458 00053128 leaf_length 5, crc 12584
> 45c 00000000 textual descriptor
> 460 00000000 minimal ASCII
> 464 50726f46 "ProF"
> 468 69726520 "ire "
> 46c 36313000 "610"
>
> descriptor leaf at 470
> ------------------------------------------------------------
> 470 00053128 leaf_length 5, crc 12584
> 474 00000000 textual descriptor
> 478 00000000 minimal ASCII
> 47c 50726f46 "ProF"
> 480 69726520 "ire "
> 484 36313000 "610"
>
> $ cat /proc/asound/card1/dice
> sections:
> global: offset 10, size 90
> tx: offset 100, size 142
> rx: offset 242, size 282
> ext_sync: offset 524, size 4
> unused2: offset 0, size 0
> global:
> owner: ffc0:000100000000
> notification: 00000040
> nick name: FW610
> clock select: internal 48000
> enable: 1
> status: locked 48000
> ext status: 00000040
> sample rate: 48000
> version: 1.0.4.0
> clock caps: 32000 44100 48000 88200 96000 176400 192000 aes1 aes4 aes adat tdif wc arx1 arx2 internal
> clock source names: SPDIF\AES34\AES56\TOS\AES_ANY\ADAT\ADAT_AUX\Word Clock\Unused\Unused\Unused\Unused\Internal\\
> ...
>
> Signed-off-by: Takashi Sakamoto <o-takashi at sakamocchi.jp>
Applied, thanks.
Takashi
> ---
> sound/firewire/dice/dice.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/sound/firewire/dice/dice.c b/sound/firewire/dice/dice.c
> index 96fe68f4..25e9f77 100644
> --- a/sound/firewire/dice/dice.c
> +++ b/sound/firewire/dice/dice.c
> @@ -317,6 +317,13 @@ static const struct ieee1394_device_id dice_id_table[] = {
> .match_flags = IEEE1394_MATCH_VERSION,
> .version = DICE_INTERFACE,
> },
> + /* M-Audio Profire 610/2626 has a different value in version field. */
> + {
> + .match_flags = IEEE1394_MATCH_VENDOR_ID |
> + IEEE1394_MATCH_SPECIFIER_ID,
> + .vendor_id = 0x000d6c,
> + .specifier_id = 0x000d6c,
> + },
> { }
> };
> MODULE_DEVICE_TABLE(ieee1394, dice_id_table);
> --
> 2.7.4
>
More information about the Alsa-devel
mailing list