[Bug 1889217] [NEW] Make digital mic on the AMD Renoir machines work under gnome desktop

Launchpad Bug Tracker 1889217 at bugs.launchpad.net
Mon Aug 10 04:08:36 UTC 2020


You have been subscribed to a public bug by Hui Wang (hui.wang):

[Impact]
On the LENOVO AMD Renoir machines, there is a digital mic directly
connected to the APU instead of the codec, so there are two separate
sound cards in the system, one is for analogue codec driven by hda
driver, the other is for the dmic driven by ASoC acp driver.

The current audio stack (pulseaudio + alsa-ucm-conf + alsa-lib) doesn't
support this design yet, it could support all audio devices on the codec
well, but it doesn't support that dmic well. In the gnome-control-center,
the dmic becomes two input devices: analog input and multichannel input,
and users can only record sound from analog input, the multichannel input
can't function at all. Besides this issue, there is another issue, after
users plug an external mic, the external mic can't replace the dmic
automatically, this gives users a bad experience since this behaviour is
different from the other audio designs.

[Fix for pulseaudio]
backport 3 patches:
2 of them from upstream
device-port: queue CARD CHANGE event before update default sink
alsa: adjust ucm sink/source priority according to ports priority
1 of them from a merge request:
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/305

[Fix for alsa-ucm-conf]
backport 14 patches:
11 of them from upstream:
ucm-fix-wrong-If-in-sequence-in-HiFi-dual.conf.patch
ucm2-add-initial-ucm.conf-for-the-latest-alsa-lib.patch
sof-hda-dsp-don-t-fail-if-Auto-Mute-control-is-not-p.patch
ucm.conf-add-support-for-the-kernel-module-name-tree.patch
sof-hda-dsp-make-Headphone-Playback-Switch-condition.patch
sof-soundwire-initial-UCM2-version.patch
sof-soundwire-cleanups-recommended-by-the-ucm-valida.patch
sof-soundwire-rewrite-for-syntax-3.patch
HDA-Intel-add-support-for-AMD-acp-microphone-devices.patch
Fix-invalid-Regex-Type-in-various-Condition-blocks.patch
hda-hdmi-add-HDMI4-HDMI5-HDMI6-devices.patch
3 of them from a merge request:
https://github.com/alsa-project/alsa-ucm-conf/pull/41

[Fix for alsa-lib]
backport 47 patches from upstream:
Enabled-extended-namehints-in-alsa.conf.patch
conf-add-snd_config_is_array-function.patch
topology-use-snd_config_is_array-function.patch
ucm-merge-the-array-items-from-the-condition-blocks.patch
ucm-parse-SectionOnce-section-in-the-master-UCM-conf.patch
ucm-execute-SectionDefaults-lately-when-the-first-ve.patch
ucm-handle-set-_once-command.patch
ucm-handle-set-_defaults-command.patch
ucm-initialize-mgr-once_list.patch
ucm-fix-SectionOnce-comment.patch
ucm-fix-compilation-error-in-set_defaults_user.patch
ucm-rename-SectionOnce-to-BootSequence.patch
ucm-rename-_once-command-to-_boot-command.patch
ucm-configuration-implement-in-place-Include.patch
ucm-configuration-substitute-ConfDir-and-ConfTopDir.patch
ucm-config-substitute-File-string-to-allow-variables.patch
ucm-configuration-allow-to-define-the-configuration-.patch
ucm-configuration-add-DefineRegex.patch
ucm-substitute-arguments-in-sequences.patch
ucm-allow-syntax-version-3.patch
ucm-config-change-the-in-place-include-evaluation-or.patch
ucm-allow-to-specify-the-toplevel-directory-using-as.patch
ucm-substitute-also-value-strings.patch
ucm-handle-strict-prefix-correctly-for-the-UCM-card-.patch
ucm-String-condition-implement-Empty.patch
ucm-Define-DefineRegex-is-supported-in-Syntax-3.patch
ucm-substitute-OpenName.patch
ucm-substitute-CardNumber.patch
ucm-implement-the-toplevel-ucm-configuration-file-pa.patch
ucm-substitute-device-modifier-names-too.patch
ucm-substitute-device-strings-in-the-device-lists.patch
ucm-substitute-component-sequence-string.patch
ucm-substitute-verb-name-and-file-field.patch
ucm-substitute-Comment-in-Transition-and-Device.patch
ucm-substitute-RenameDevice-and-DeleteDevice-lists.patch
ucm-substitute-arguments-in-sequences-only-for-synta.patch
ucm-shuffle-code-in-compound_merge.patch
ucm-implement-CardIdByName-substitution.patch
ucm-allow-to-ignore-errors-for-the-value-substitutio.patch
ucm-allow-to-use-the-defined-variables-in-the-substi.patch
ucm-implement-CardNumberByName-substitution.patch
ucm-fix-the-possible-buffer-overflow-substitution.patch
ucm-simplify-get_by_card-in-parser.c.patch
ucm-implement-AlwaysTrue-Condition.Type.patch
ucm-Allow-empty-strings-in-var-.-substitutions.patch
ucm-substitution-remove-duplicate-allow_empty-assign.patch
ucm-fix-parse_get_safe_name-safe-name-must-be-checke.patch
ucm-substitute-the-merged-tree-completely.patch
add Breaks alsa-ucm-conf (<= 1.2.2-1ubuntu0.1) in the d/control
add snd_config_is_array at ALSA_0.9 1.2.2-2.1ubuntu1 in the d/libasound2.symbols

[Test Case]
On the AMD Renoir machines:
* Boot the system with these updated packages (already backported kernel
drivers to Focal and oem-5.6 kernels), open the gnome-control-center
 - we could see the digital mic in the input device tab, and only one
input device
 - we could record sound through this dmic
 - we could play sound through the speaker
 - plug a headset, we could see the output device become headphones and the input device become headset mic
   - we could play sound to headphone and record sound from headset mic
 - plug an HDMI monitor, there is HDMI audio choice
   - play sound to HDMI audio, we could hear the sound from the speaker on the monitor
 - Suspend and resume, redo the previous steps, all audio devices still work well.

On other machines:
Boot the system with all updated packages or partial updated packages,
check all input devices and output devices, they worked the same as
before. this SRU doesn't bring any impact on other machines.

[Regression Risk]
Low
For alsa-ucm-conf, this SRU adds two new folders and only minimum
changes on existing folders, and these changes are under control and
are for supporting acp driver.
For alsa-lib, this SRU only adds the patches to support the ucm 3, and
nearly all changes are in the ucm folder. there is no external ABI or
API changes
For pulseaudio, this SRU only integrate 3 patches, and 2 of them are
for auto switching, and they are small patches and already upstreamed.
the left patch are specific to Renoir audio, it will not bring impact
to other machines.

Also, we tested these changes with below machines:
A LENOVO AMD Renoir laptop, all audio function works and no regression
found
A DELL laptop with intel dmic, all audio function works and no
regression found
A DELL laptop with intel soundwire audio, all audio function works and
no regression found

** Affects: alsa-lib (Ubuntu)
     Importance: High
     Assignee: Hui Wang (hui.wang)
         Status: New

** Affects: alsa-ucm-conf (Ubuntu)
     Importance: High
     Assignee: Hui Wang (hui.wang)
         Status: New

** Affects: pulseaudio (Ubuntu)
     Importance: High
     Assignee: Hui Wang (hui.wang)
         Status: New

** Affects: alsa-lib (Ubuntu Focal)
     Importance: High
     Assignee: Hui Wang (hui.wang)
         Status: New

** Affects: alsa-ucm-conf (Ubuntu Focal)
     Importance: High
     Assignee: Hui Wang (hui.wang)
         Status: New

** Affects: pulseaudio (Ubuntu Focal)
     Importance: High
     Assignee: Hui Wang (hui.wang)
         Status: New

** Affects: alsa-lib (Ubuntu Groovy)
     Importance: High
     Assignee: Hui Wang (hui.wang)
         Status: New

** Affects: alsa-ucm-conf (Ubuntu Groovy)
     Importance: High
     Assignee: Hui Wang (hui.wang)
         Status: New

** Affects: pulseaudio (Ubuntu Groovy)
     Importance: High
     Assignee: Hui Wang (hui.wang)
         Status: New


** Tags: focal groovy originate-from-1874593 renoir sutton
-- 
Make digital mic on the AMD Renoir machines work under gnome desktop
https://bugs.launchpad.net/bugs/1889217
You received this bug notification because you are a member of Ubuntu Sponsors Team, which is subscribed to the bug report.



More information about the Ubuntu-sponsors mailing list