2020-07-28 13:06:39 |
Hui Wang |
bug |
|
|
added bug |
2020-07-28 13:07:17 |
Hui Wang |
bug task added |
|
alsa-lib (Ubuntu) |
|
2020-07-28 13:07:38 |
Hui Wang |
bug task added |
|
alsa-ucm-conf (Ubuntu) |
|
2020-07-28 13:07:49 |
Hui Wang |
alsa-lib (Ubuntu): importance |
Undecided |
High |
|
2020-07-28 13:07:51 |
Hui Wang |
alsa-ucm-conf (Ubuntu): importance |
Undecided |
High |
|
2020-07-28 13:07:53 |
Hui Wang |
pulseaudio (Ubuntu): importance |
Undecided |
High |
|
2020-07-28 13:08:04 |
Hui Wang |
nominated for series |
|
Ubuntu Groovy |
|
2020-07-28 13:08:04 |
Hui Wang |
bug task added |
|
alsa-lib (Ubuntu Groovy) |
|
2020-07-28 13:08:04 |
Hui Wang |
bug task added |
|
pulseaudio (Ubuntu Groovy) |
|
2020-07-28 13:08:04 |
Hui Wang |
bug task added |
|
alsa-ucm-conf (Ubuntu Groovy) |
|
2020-07-28 13:08:04 |
Hui Wang |
nominated for series |
|
Ubuntu Focal |
|
2020-07-28 13:08:04 |
Hui Wang |
bug task added |
|
alsa-lib (Ubuntu Focal) |
|
2020-07-28 13:08:04 |
Hui Wang |
bug task added |
|
pulseaudio (Ubuntu Focal) |
|
2020-07-28 13:08:04 |
Hui Wang |
bug task added |
|
alsa-ucm-conf (Ubuntu Focal) |
|
2020-07-28 13:10:13 |
Hui Wang |
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 |
|
2020-07-28 13:10:35 |
Hui Wang |
alsa-lib (Ubuntu Focal): importance |
Undecided |
High |
|
2020-07-28 13:10:38 |
Hui Wang |
alsa-ucm-conf (Ubuntu Focal): importance |
Undecided |
High |
|
2020-07-28 13:10:41 |
Hui Wang |
pulseaudio (Ubuntu Focal): importance |
Undecided |
High |
|
2020-07-29 02:25:39 |
Daniel van Vugt |
tags |
|
renoir |
|
2020-07-29 02:26:14 |
Daniel van Vugt |
tags |
renoir |
focal groovy renoir |
|
2020-07-29 09:57:38 |
Hui Wang |
description |
This is for tracking purpose. |
[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]
we need to backport 3 patches:
2ae94c141f device-port: queue CARD CHANGE event before update default sink
c8653c13fa alsa: adjust ucm sink/source priority according to ports priority
A patch not merged by upstream:
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/305
[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 a 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 as the same as before. this
SRU doesn't bring any impact on other machines.
[Regression Risk]
Low |
|
2020-07-29 10:10:39 |
Sebastien Bacher |
pulseaudio (Ubuntu Focal): assignee |
|
Hui Wang (hui.wang) |
|
2020-07-29 10:10:51 |
Sebastien Bacher |
alsa-ucm-conf (Ubuntu Focal): assignee |
|
Hui Wang (hui.wang) |
|
2020-07-29 10:10:56 |
Sebastien Bacher |
alsa-ucm-conf (Ubuntu Groovy): assignee |
|
Hui Wang (hui.wang) |
|
2020-07-29 10:11:03 |
Sebastien Bacher |
alsa-lib (Ubuntu Focal): assignee |
|
Hui Wang (hui.wang) |
|
2020-07-29 10:11:10 |
Sebastien Bacher |
alsa-lib (Ubuntu Groovy): assignee |
|
Hui Wang (hui.wang) |
|
2020-07-29 10:14:46 |
Hui Wang |
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-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]
we need to backport 3 patches:
2ae94c141f device-port: queue CARD CHANGE event before update default sink
c8653c13fa alsa: adjust ucm sink/source priority according to ports priority
A patch not merged by upstream:
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/305
[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 a 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 as the same as before. this
SRU doesn't bring any impact on other machines.
[Regression Risk]
Low |
[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]
we need to backport 3 patches:
2ae94c141f device-port: queue CARD CHANGE event before update default sink
c8653c13fa alsa: adjust ucm sink/source priority according to ports priority
A patch not merged by upstream:
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/305
[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
a 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.
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 |
|
2020-07-29 10:33:16 |
Hui Wang |
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-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]
we need to backport 3 patches:
2ae94c141f device-port: queue CARD CHANGE event before update default sink
c8653c13fa alsa: adjust ucm sink/source priority according to ports priority
A patch not merged by upstream:
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/305
[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
a 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.
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 |
[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
[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
a 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.
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 |
|
2020-07-30 01:19:30 |
Hui Wang |
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-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
[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
a 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.
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 |
[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 Depends alsa-ucm-conf (>= 1.2.2-1ubuntu0.1.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
a 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.
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 |
|
2020-07-30 01:20:32 |
Hui Wang |
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-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 Depends alsa-ucm-conf (>= 1.2.2-1ubuntu0.1.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
a 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.
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 |
[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 Depends alsa-ucm-conf (>= 1.2.2-1ubuntu0.1.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
a 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 |
|
2020-07-30 09:02:32 |
Stéphane Verdy |
bug |
|
|
added subscriber Stéphane Verdy |
2020-07-31 00:52:20 |
Hui Wang |
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-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 Depends alsa-ucm-conf (>= 1.2.2-1ubuntu0.1.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
a 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 |
[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
a 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 |
|
2020-08-04 08:19:47 |
Anthony Wong |
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-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
a 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 |
[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.
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 |
|
2020-08-04 08:35:13 |
Anthony Wong |
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 |
|
2020-08-04 08:35:21 |
Anthony Wong |
bug |
|
|
added subscriber Anthony Wong |
2020-08-04 08:35:51 |
Anthony Wong |
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-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.
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 |
[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.
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 |
|
2020-08-04 08:36:53 |
Anthony Wong |
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-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.
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 |
[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.
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 |
|
2020-08-05 16:25:36 |
Anthony Wong |
tags |
focal groovy renoir |
focal groovy originate-from-1874593 renoir sutton |
|
2020-08-10 04:08:02 |
Hui Wang |
attachment added |
|
alsa-lib_1.2.2-2.3ubuntu2.debdiff https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1889217/+attachment/5400273/+files/alsa-lib_1.2.2-2.3ubuntu2.debdiff |
|
2020-08-10 04:08:36 |
Hui Wang |
bug |
|
|
added subscriber Ubuntu Sponsors Team |
2020-08-10 04:09:03 |
Hui Wang |
attachment added |
|
alsa-ucm-conf_1.2.2-1ubuntu2.debdiff https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1889217/+attachment/5400274/+files/alsa-ucm-conf_1.2.2-1ubuntu2.debdiff |
|
2020-08-10 04:09:44 |
Hui Wang |
attachment added |
|
pulseaudio_13.99.1-1ubuntu9.debdiff https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1889217/+attachment/5400275/+files/pulseaudio_13.99.1-1ubuntu9.debdiff |
|
2020-08-10 04:38:34 |
Hui Wang |
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-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.
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 |
[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]
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.
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 |
|
2020-08-10 07:21:39 |
Hui Wang |
attachment added |
|
alsa-lib_1.2.2-2.1ubuntu2.debdiff https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1889217/+attachment/5400305/+files/alsa-lib_1.2.2-2.1ubuntu2.debdiff |
|
2020-08-10 07:22:15 |
Hui Wang |
attachment added |
|
alsa-ucm-conf_1.2.2-1ubuntu0.2.debdiff https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1889217/+attachment/5400306/+files/alsa-ucm-conf_1.2.2-1ubuntu0.2.debdiff |
|
2020-08-10 07:22:59 |
Hui Wang |
attachment added |
|
pulseaudio_13.99.1-1ubuntu3.6.debdiff https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1889217/+attachment/5400307/+files/pulseaudio_13.99.1-1ubuntu3.6.debdiff |
|
2020-08-13 14:16:50 |
Sebastien Bacher |
alsa-lib (Ubuntu Groovy): status |
New |
Fix Committed |
|
2020-08-13 14:20:26 |
Sebastien Bacher |
alsa-ucm-conf (Ubuntu Groovy): status |
New |
Fix Committed |
|
2020-08-13 14:21:14 |
Sebastien Bacher |
pulseaudio (Ubuntu Groovy): status |
New |
Fix Committed |
|
2020-08-13 16:26:27 |
Launchpad Janitor |
alsa-ucm-conf (Ubuntu Groovy): status |
Fix Committed |
Fix Released |
|
2020-08-14 18:05:25 |
Launchpad Janitor |
pulseaudio (Ubuntu Groovy): status |
Fix Committed |
Fix Released |
|
2020-08-18 02:34:31 |
Launchpad Janitor |
alsa-lib (Ubuntu Groovy): status |
Fix Committed |
Fix Released |
|
2020-08-19 20:27:41 |
Sebastien Bacher |
alsa-lib (Ubuntu Focal): status |
New |
Fix Committed |
|
2020-08-19 20:27:44 |
Sebastien Bacher |
alsa-ucm-conf (Ubuntu Focal): status |
New |
Fix Committed |
|
2020-08-19 20:27:47 |
Sebastien Bacher |
pulseaudio (Ubuntu Focal): status |
New |
Fix Committed |
|
2020-08-20 09:01:29 |
Łukasz Zemczak |
bug |
|
|
added subscriber Ubuntu Stable Release Updates Team |
2020-08-20 09:01:32 |
Łukasz Zemczak |
bug |
|
|
added subscriber SRU Verification |
2020-08-20 09:01:36 |
Łukasz Zemczak |
tags |
focal groovy originate-from-1874593 renoir sutton |
focal groovy originate-from-1874593 renoir sutton verification-needed verification-needed-focal |
|
2020-08-20 09:02:30 |
Łukasz Zemczak |
removed subscriber Ubuntu Sponsors Team |
|
|
|
2020-08-25 07:48:23 |
Shengyao Xue |
tags |
focal groovy originate-from-1874593 renoir sutton verification-needed verification-needed-focal |
focal groovy originate-from-1874593 renoir sutton verification-done-focal |
|
2020-08-31 13:46:20 |
Launchpad Janitor |
alsa-lib (Ubuntu Focal): status |
Fix Committed |
Fix Released |
|
2020-08-31 13:46:27 |
Łukasz Zemczak |
removed subscriber Ubuntu Stable Release Updates Team |
|
|
|
2020-08-31 13:46:41 |
Launchpad Janitor |
alsa-ucm-conf (Ubuntu Focal): status |
Fix Committed |
Fix Released |
|
2020-08-31 13:46:43 |
Launchpad Janitor |
pulseaudio (Ubuntu Focal): status |
Fix Committed |
Fix Released |
|
2020-09-10 00:55:47 |
Yuan-Chen Cheng |
bug task added |
|
oem-priority |
|
2020-09-10 00:56:03 |
Yuan-Chen Cheng |
oem-priority: status |
New |
Fix Released |
|
2020-09-10 00:56:20 |
Yuan-Chen Cheng |
tags |
focal groovy originate-from-1874593 renoir sutton verification-done-focal |
focal groovy oem-priority originate-from-1874593 renoir sutton verification-done-focal |
|
2022-01-01 18:25:48 |
Ladislav Petera |
bug |
|
|
added subscriber Ladislav Petera |