** Description changed:

  [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@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.
+ 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-center, but the possibility is very low since this SRU
+ 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.
  
- 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
+ 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-center. This possibility is
+ 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

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1889217

Title:
  Make digital mic on the AMD Renoir machines work under gnome desktop

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/alsa-lib/+bug/1889217/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to