[PATCH 5/5] cht-bsw-rt5672: Fix HiFi-stereo-dmic2 conf not loading / working
Hans de Goede
hdegoede at redhat.com
Mon Apr 6 12:02:22 CEST 2020
Hi,
On 4/6/20 11:34 AM, Jaroslav Kysela wrote:
> Dne 05. 04. 20 v 20:34 Hans de Goede napsal(a):
>> Fix HiFi-stereo-dmic2 conf not loading because of references to
>> non existing devices in the ConflictingDevices sections.
>>
>> Stop playing Rename + Remove tricks with the output (Speaker2) and
>> input (DMIC1) devices which we do not want to be part of this config,
>> this does not work now that we only allow devices which are actually
>> part of our config in the ConflictingDevices sections.
>
> The Remove and Rename operations should also manage (remove and rename) devices in ConflictingDevices/SupportedDevices sections. What's the exact error you hit?
>
> If I simulate this via ucm-validator I get this device structure:
>
> Verb: "HiFi"
> File: HiFi-stereo-dmic2.conf
> Device: "Headphones"
> ConflictingDevices.0 = Speaker
> Value.PlaybackPriority = 300
> Value.PlaybackPCM = 'hw:${CardId}'
> Value.JackControl = 'Headphone Jack'
> Device: "Headset"
> ConflictingDevices.0 = Mic
> Value.CapturePriority = 300
> Value.CapturePCM = 'hw:${CardId}'
> Value.JackControl = 'Headset Mic Jack'
> Device: "Speaker"
> ConflictingDevices.0 = Headphones
> Value.PlaybackPriority = 200
> Value.PlaybackPCM = 'hw:${CardId}'
> Device: "Mic"
> ConflictingDevices.0 = Headset
> Value.CapturePriority = 200
> Value.CapturePCM = 'hw:${CardId}'
>
> It appears like an issue in alsa-lib.
Ok so I found the following weird:
RemoveDevice."Speaker2" "Speaker2"
At a hunch I removed the extra "Speaker2", now I get:
[hans at localhost ~]$ alsaucm -c cht-bsw-rt5672 set _verb HiFi set _enadev Speaker
ALSA lib parser.c:1138:(verb_dev_list_add) error: unable to find device 'Mic1'
...
Notice the error changed from being about Speaker2 to Mic1, so this looks good,
but then I did the same with the:
RemoveDevice."Mic1" "Mic1"
Line, dropping the extra "Mic1" I get:
[hans at localhost ~]$ alsaucm -c cht-bsw-rt5672 set _verb HiFi set _enadev Speaker
ALSA lib parser.c:1183:(verb_device_management) error: cannot remove device 'Mic'
...
Which is weird...
Even weirder I was thinking that the Rename + Remove lines should be after the last
include, so that they also get applied to the Conflicting devices of e.g . the
Headphones Section Device, but if I move the Rename + Remove lines for the Mic
to the end of the HiFi-stereo-dmic2.conf file I get:
[hans at localhost ~]$ alsaucm -c cht-bsw-rt5672 set _verb HiFi set _enadev Speaker
ALSA lib conf.c:1928:(_snd_config_load_with_include) _toplevel_:23:0:Unexpected end of file
ALSA lib utils.c:285:(uc_mgr_config_load) could not load configuration file /usr/share/alsa/ucm2/cht-bsw-rt5672/HiFi-stereo-dmic2.conf
ALSA lib parser.c:1349:(parse_verb_file) error: failed to open verb file /usr/share/alsa/ucm2/cht-bsw-rt5672/HiFi-stereo-dmic2.conf : 0
ALSA lib main.c:962:(snd_use_case_mgr_open) error: failed to import cht-bsw-rt5672 use case configuration -22
alsaucm: error failed to open sound card cht-bsw-rt5672: Invalid argument
Regards,
Hans
More information about the Alsa-devel
mailing list