Make digital mic on the AMD Renoir machines work under gnome desktop
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OEM Priority Project |
Fix Released
|
Undecided
|
Unassigned | ||
alsa-lib (Ubuntu) |
Fix Released
|
High
|
Hui Wang | ||
Focal |
Fix Released
|
High
|
Hui Wang | ||
Groovy |
Fix Released
|
High
|
Hui Wang | ||
alsa-ucm-conf (Ubuntu) |
Fix Released
|
High
|
Hui Wang | ||
Focal |
Fix Released
|
High
|
Hui Wang | ||
Groovy |
Fix Released
|
High
|
Hui Wang | ||
pulseaudio (Ubuntu) |
Fix Released
|
High
|
Hui Wang | ||
Focal |
Fix Released
|
High
|
Hui Wang | ||
Groovy |
Fix Released
|
High
|
Hui Wang |
Bug Description
[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-
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:/
[Fix for alsa-ucm-conf]
backport 14 patches:
11 of them from upstream:
ucm-fix-
ucm2-add-
sof-hda-
ucm.conf-
sof-hda-
sof-soundwire-
sof-soundwire-
sof-soundwire-
HDA-Intel-
Fix-invalid-
hda-hdmi-
3 of them from a merge request:
https:/
[Fix for alsa-lib]
backport 47 patches from upstream:
Enabled-
conf-add-
topology-
ucm-merge-
ucm-parse-
ucm-execute-
ucm-handle-
ucm-handle-
ucm-initialize-
ucm-fix-
ucm-fix-
ucm-rename-
ucm-rename-
ucm-configurati
ucm-configurati
ucm-config-
ucm-configurati
ucm-configurati
ucm-substitute-
ucm-allow-
ucm-config-
ucm-allow-
ucm-substitute-
ucm-handle-
ucm-String-
ucm-Define-
ucm-substitute-
ucm-substitute-
ucm-implement-
ucm-substitute-
ucm-substitute-
ucm-substitute-
ucm-substitute-
ucm-substitute-
ucm-substitute-
ucm-substitute-
ucm-shuffle-
ucm-implement-
ucm-allow-
ucm-allow-
ucm-implement-
ucm-fix-
ucm-simplify-
ucm-implement-
ucm-Allow-
ucm-substitutio
ucm-fix-
ucm-substitute-
add Breaks alsa-ucm-conf (<= 1.2.2-1ubuntu0.1) in the d/control
add snd_config_
[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-
- 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]
For machines without using ucm, like traditional PC and Laptops with
HDA audio, it is possible that the pulseaudio can't parse the audio
devices well that there is only a dummy audio device on the
gnome-control-
didn't touch the non-ucm part, and we already tested on a Dell HDA
audio machine, the audio function worked as well as before.
For machines using ucm, the regression possibility is the pulseaudio
fails to parse the needed ucm, then there is no dmic or there is only
a dummy audio device in the gnome-contro-
very low too, We have tested this SRU on Dell and Lenovo dmic machines,
they worked as well as before. And for the LENOVO dual codec machine,
we don't have the hw at the moment, but changes for this machine are
all coming from upstream, and Cert team will verify the -proposed on
this machine since they have the machine. For other ucm machines, the
regression possibility is very low since this SRU doesn't touch their
ucm at all.
This SRU doesn't introduce any external API changes
Changed in alsa-lib (Ubuntu): | |
importance: | Undecided → High |
Changed in alsa-ucm-conf (Ubuntu): | |
importance: | Undecided → High |
Changed in pulseaudio (Ubuntu): | |
importance: | Undecided → High |
summary: |
- Make digital mic on the AMD renoir machines work under gnome environment + Make digital mic on the AMD renoir machines work under gnome desktop |
Changed in alsa-lib (Ubuntu Focal): | |
importance: | Undecided → High |
Changed in alsa-ucm-conf (Ubuntu Focal): | |
importance: | Undecided → High |
Changed in pulseaudio (Ubuntu Focal): | |
importance: | Undecided → High |
tags: | added: renoir |
tags: | added: focal groovy |
description: | updated |
Changed in pulseaudio (Ubuntu Focal): | |
assignee: | nobody → Hui Wang (hui.wang) |
Changed in alsa-ucm-conf (Ubuntu Focal): | |
assignee: | nobody → Hui Wang (hui.wang) |
Changed in alsa-ucm-conf (Ubuntu Groovy): | |
assignee: | nobody → Hui Wang (hui.wang) |
Changed in alsa-lib (Ubuntu Focal): | |
assignee: | nobody → Hui Wang (hui.wang) |
Changed in alsa-lib (Ubuntu Groovy): | |
assignee: | nobody → Hui Wang (hui.wang) |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
summary: |
- Make digital mic on the AMD renoir machines work under gnome desktop + Make digital mic on the AMD Renoir machines work under gnome desktop |
description: | updated |
description: | updated |
tags: | added: originate-from-1874593 sutton |
description: | updated |
Changed in alsa-lib (Ubuntu Groovy): | |
status: | New → Fix Committed |
Changed in alsa-ucm-conf (Ubuntu Groovy): | |
status: | New → Fix Committed |
Changed in pulseaudio (Ubuntu Groovy): | |
status: | New → Fix Committed |
Changed in alsa-lib (Ubuntu Focal): | |
status: | New → Fix Committed |
Changed in alsa-ucm-conf (Ubuntu Focal): | |
status: | New → Fix Committed |
Changed in pulseaudio (Ubuntu Focal): | |
status: | New → Fix Committed |
tags: |
added: verification-done-focal removed: verification-needed verification-needed-focal |
Changed in oem-priority: | |
status: | New → Fix Released |
tags: | added: oem-priority |
@Hui, thanks for the work. That's going to be a complicated SRU, just a small comment, the 'regression potential' section is supposed to describe what sort of problem could happen following the change, it's meant to give an hint of what to focus on in the testing
see https:/ /wiki.ubuntu. com/StableRelea seUpdates# SRU_Bug_ Template for detailed explanations
'low' (and the rest of the section focussing on why it's low) is sort of missing the point, could you rework it? I expect in that case we would need to test also on non AMD config that they are not regressing?