On 19. 10. 22 22:06, Pierre-Louis Bossart wrote:
Hi Jaroslav,
On 9/29/22 09:37, Jaroslav Kysela wrote:
The driver field in the struct snd_ctl_card_info is a valid user space identifier. Actually, many ASoC drivers do not care and let to initialize this field using a standard wrapping method. Unfortunately, in this way, this field becomes unusable and unreadable for the drivers with longer card names. Also, there is a possibility to have clashes (driver field has only limit of 15 characters).
This change will print an error when the wrapping is used. The developers of the affected drivers should fix the problem.
How should we fix this problem?
I see all kinds of errors thrown in our first CI results based on 6.1-rc1:
[ 12.684893] kernel: cml_rt1011_rt5682 cml_rt1011_rt5682: ASoC: driver name too long 'sof-cml_rt1011_rt5682' -> 'sof-cml_rt1011_'
[ 12.219660] kernel: bxt_da7219_max98357a glk_da7219_mx98357a: ASoC: driver name too long 'sof-glkda7219max' -> 'sof-glkda7219ma'
I have no idea what is expected here in terms of naming. It's far from obvious to respect the 15-character limit AND have something readable/sensible given the proliferation of hardware skews.
Any suggestions?
The question is, how deep the driver name should describe the hardware details. The two drivers covering the majority hardware use "HDA-Intel" and "USB-Audio" strings here and there are a lot of variants of the codec / user space devices / mixer controls. The codec chain and eventually the audio bridge can be described in other identification strings like card components or the card name (note that most end users are not able to identify the references to hardware - it's a GUI string).
I would use "SOF-Intel-CML" and "SOF-Intel-GLK" strings or just "SOF-Intel" or any other variant as you like (lower case etc.). My opinion is that it's not necessary to have an unique string per driver here (the drivers should have just something common like the SOF core code).
Jaroslav