[PATCH v2] ASoC: core: clarify the driver name initialization

Jaroslav Kysela perex at perex.cz
Fri Oct 21 08:37:43 CEST 2022


On 20. 10. 22 20:13, Pierre-Louis Bossart wrote:
> Hi Jaroslav,
> 
>> Nope. It's just a short path for the non-driver field to not further
>> process the destination string (the name argument). The snprintf() call
>> sets all field types (it's before the condition). Just set the
>> driver_name field in the soc card structure and you will be fine.
>>
>> The UCM config must be updated to handle the new driver name. The fine
>> selection key should probably use the card name, because long name is
>> set from DMI:
>>
>> old:
>>
>> 1 [sofglkda7219max]: sof-glkda7219ma - sof-glkda7219max
>>                       Google-Phaser360-rev4
>>
>> new:
>>
>> 1 [sofglkda7219max]: SOF-Intel - sof-glkda7219max
>>                       Google-Phaser360-rev4
>>
>> UCM substitutions:
>>
>> 1 [${CardId}      ]: ${CardDriver} - ${CardName}
>>                       ${CardLongName}
>>
>> UCM conf:
>>
>> mkdir -p ucm2/conf.d/SOF-Intel
>> cat > ucm2/conf.d/SOF-Intel/SOF-Intel.conf <<EOF
>> Syntax 6
>> Include.0.File "/Intel/\${CardName}/\${CardName}.conf"
>> EOF
> 
> I am not following any of this, sorry.
> 
> The existing UCM configuration uses the card name, e.g.
> sof-glkda7219max. That works and needs zero extra work.

Unfortunately, actually the wrapped driver names are used for the primary 
lookups. The card name is not used at all in ucm2/conf.d.

> If all the cards registered in sound/soc/intel/boards use the same
> "SOF-Intel" driver name, then the driver name cannot be used for any UCM
> selection.

It can be used for the first level of the lookup. Eventually, we can add
ucm2/conf.d/${CardDriver}/${CardName}.conf search path to ucm2/ucm.conf for 
the direct lookups to handle this case, but it's just an optimization. I would 
start with the ${CardName} redirection as I suggested. We can decide / make 
the ucm.conf change later.

> What is the point of including all the cardName.conf files at a higher
> level that brings no obvious value beyond an indirection that we already
> have with the path ucm2/Intel ?
> 
> What am I missing ??

The goal is to fix the driver names (e.g. "sof-glkda7219ma", "sof-mt8195_r101" 
etc.). If you like to keep the unique names, it's your decision. I just prefer 
to have a string which is understandable to users. UCM can handle the finer 
selection of the configuration at any level now. Examples: sof-soundwire, 
USB-Audio (ucm2/USB-Audio/USB-Audio.conf), SOF (ucm2/Intel/SOF/HiFi.conf).

						Jaroslav

-- 
Jaroslav Kysela <perex at perex.cz>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.


More information about the Alsa-devel mailing list