[alsa-devel] [PATCH 1/2] ALSA: update sync header when streams are linked/unlinked

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Thu May 24 00:01:54 CEST 2012

>> If I understand you well, the sync id should be a unique identifier
>> shared by all linked streams in the same group.
> Just to clarify: does the sync id identify streams that are linked, or
> streams that can be started atomically when linked?  Because at the
> moment, all drivers implement the latter.  Furthermore, it's possible
> to link completely unrelated devices, so not even the card number could
> be used for the former.
I may have a very Intel-centric view, but it should be the former, 
identify all streams currently linked. All devices controlled by the 
same HDAudio controller can be linked at any time, providing the list of 
possible streams to link to does help anyone since the information is 
known by default.
However, I've also seen that a lot of non-HDAudio drivers seem to 
provide the ability to link only playback and capture for synchronized 
full-duplex operation. This is a much simpler case than multiple 
playback/capture devices, most serial links (SSI, McBSP, SSP, etc) 
provide such capabilities. Bottom line is that maybe the sync 
information needs to provide both the devices that can be linked and the 
devices currently linked.

Regarding the card #, linking between devices handled by different 
controllers is not supported in hardware, only 32 devices controlled 
with the same SSYNC register can be linked. In addition there are tests 
in the HDAudio code to yank devices with a different card number from 
the group (see azx_pcm_trigger() in hda_intel.c)

More information about the Alsa-devel mailing list