The topology file and the machine driver rely on common definitions for the dailink stream_name. To avoid any backwards-compatibility problems, the machine driver stream names are set in stone and cannot be modified.
This is problematic when we try to name some of the topology widgets after the stream_name, since the widget name is limited to 44 characters
tools/include/uapi/sound/asound.h:#define SNDRV_CTL_ELEM_ID_NAME_MAXLEN 44
Existing examples include "Analog Playback and Capture" for HDaudio dailinks, which leaves less than 20 chars to identify widgets/controls with a meaningful name.
Since the 44-char limit is part of the UAPI definitions, we assumed there is no way to increase it.
This patchset suggests instead a partial match which allows topology files to use a shorter stream_name, which in turn allows for self-explanatory widget names that comply with the 44-char limit.
This should not break any existing setup but with the introduction of a partial match new dailinks should be named carefully to avoid confusions between e.g. 'link1' and 'link10'. The last patch fixes such an issue in the 'nocodec' test topology used by Intel.
Ranjani Sridharan (3): ASoC: topology: Allow partial matching when finding DAI link ASoC: SOF: topology: Use partial match for connecting DAI link and DAI widget ASoC: SOF: Intel: HDA: Limit the number of dai drivers for nocodec mode
sound/soc/soc-topology.c | 6 +++--- sound/soc/sof/intel/hda.c | 6 +++++- sound/soc/sof/intel/hda.h | 4 +++- sound/soc/sof/topology.c | 2 +- 4 files changed, 12 insertions(+), 6 deletions(-)