[alsa-devel] [PATCH] ALSA: dice: add support for M-Audio Profire 610 and perhaps 2626

Takashi Iwai tiwai at suse.de
Sun May 8 17:55:05 CEST 2016


On Sun, 08 May 2016 15:21:09 +0200,
Takashi Sakamoto wrote:
> 
> Iwai-san,
> 
> Welcome back, and thanks for applying this patch.
> 
> I have more patches for 4.7. I already posted RFCs for them ([1], [2],
> and a few), but postpone till your back. If Linus doesn't open next
> merge window tomorrow, I'd like to post them, as long as you don't mind.
> Is it OK?

Sure, no problem, feel free to send more patches now.

> Of cource, I realize that you will avoid to add changes just before
> merge window. However, these newly introduced changes are for
> tracepoints and simplification of packet streaming engine. The former
> helps our work and the latter may reduce maintaining effort and improve
> performance of the engine. I think they're worth to be considered for
> merging.
> 
> And I'd like to report the status of ALSA Dice driver. As I
> described[3], it has been including bugs. The bugs exist since the
> driver was merged. I go for investigating but have never found solutions
> for it. The driver in Linux 4.6 will be shipped with the bugs.

OK, if you find the culprit (and hopefully the fix), don't forget to
tag with Cc to stable and Fixes tag.


thanks,

Takashi

> 
> [1]
> http://mailman.alsa-project.org/pipermail/alsa-devel/2016-April/106950.html
> [2]
> http://mailman.alsa-project.org/pipermail/alsa-devel/2016-April/107290.html
> [3]
> http://mailman.alsa-project.org/pipermail/alsa-devel/2016-May/107715.html
> 
> 
> Regards
> 
> Takashi Sakamoto
> 
> On May 8 2016 18:18, Takashi Iwai wrote:
> > 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