[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