Activity log for bug #1768830

Date Who What changed Old value New value Message
2018-05-03 12:31:22 Hui Wang bug added bug
2018-05-03 12:31:59 Hui Wang affects pulseaudio (Ubuntu) alsa-lib (Ubuntu)
2018-05-03 12:32:37 Hui Wang summary the audio can't work on Lenovo machines with dual analogue cocecs underubuntu 18.04 the audio can't work on Lenovo machines with dual analogue codecs under ubuntu 18.04
2018-05-03 12:33:35 Hui Wang bug added subscriber Canonical Hardware Enablement Team
2018-05-03 12:33:43 Hui Wang tags originate-from-1735041 sutton
2018-05-03 12:44:59 Hui Wang description Steps: 1. Install the ubuntu 18.04 on the machine of Lenovo P520. 2. Login system. 3. Plug in an external headset to record and playback in front and rear panel. Expected result: Output and input audio should work in front and rear panel. Actual result: Front panel audio doesn't work at all. Just output audio working, input audio does't work in rear panel. Steps: 1. Install the ubuntu 18.04 on the machine of Lenovo P520. 2. Login system. 3. Plug in an external headset to record and playback in front and rear panel. Expected result: Output and input audio should work in front and rear panel. Actual result: Front panel audio doesn't work at all. Just output audio working, input audio does't work in rear panel. So far the ubuntu 18.04 just imported alsa-lib v1.1.3-5 from debian.org. And we have several Lenovo machines like Lenovo P520 which have 2 analogue audio codecs on them, to make the audio work on those machines, the kernel needs 3 patches for alsa driver, and those 3 patches are already in the linux kernel from linux-4.12, kernel is not a blocking issue under ubuntu 18.04: 7beb3a6e ALSA: hda - Support Gigabyte Gaming board with dual Realtek codecs 56798e6b ALSA: hda - Use a helper function for renaming kctl names ca169cc2 ALSA: hda/realtek - Add Dual Codecs support for Lenovo P520/420 Besides those 3 patches for kernel, we also need 5 more patches for alsa-lib. Because the ucm configuration files are named by card_long_name, these 5 patches intends to introduce the card_long_name searching for ucm and the configuration folder/files for Lenovo machines with dual analogue codecs. the 5 patches are: 2b9b3f01 ucm: Assure the user input card name not to exceed max size of card long name (it is in the alsa-lib v1.1.4) 4b9297e6 ucm: Load device-specific configuration file based on the card long name (it is in the alsa-lib v1.1.4) b7e56af8 conf/ucm: Add dual HD-audio codecs config for Lenovo (it is in the alsa-lib v1.1.6) 181f8e25 ucm: adding the folder of card_long_name when finding verb conf file (it is in the alsa-lib v1.1.6+) 81db276f conf/ucm: increase the input volume for LineIn (it is in the alsa-lib v1.1.6+) To backport these 5 patches to v1.1.3-5, the 3rd and 4th patch need minor change to resolve the patch conflict. And I attached 5 patches to this bug, these patches can be successfully applied to v1.1.3-5 without any change. After applying this patches, the ucm searcher will look for folder according to card_long_name first, if it fails, it will fallback to use card_name as before, so these 5 patches are safe and will not introduce any regression.
2018-05-03 12:48:15 Hui Wang attachment added patches.tar.bz2 https://bugs.launchpad.net/ubuntu/+source/alsa-lib/+bug/1768830/+attachment/5132947/+files/patches.tar.bz2
2018-05-04 00:57:38 Hui Wang alsa-lib (Ubuntu): assignee Hui Wang (hui.wang)
2018-05-04 02:18:53 Hui Wang bug added subscriber Ubuntu Sponsors Team
2018-05-04 03:13:10 Hui Wang description Steps: 1. Install the ubuntu 18.04 on the machine of Lenovo P520. 2. Login system. 3. Plug in an external headset to record and playback in front and rear panel. Expected result: Output and input audio should work in front and rear panel. Actual result: Front panel audio doesn't work at all. Just output audio working, input audio does't work in rear panel. So far the ubuntu 18.04 just imported alsa-lib v1.1.3-5 from debian.org. And we have several Lenovo machines like Lenovo P520 which have 2 analogue audio codecs on them, to make the audio work on those machines, the kernel needs 3 patches for alsa driver, and those 3 patches are already in the linux kernel from linux-4.12, kernel is not a blocking issue under ubuntu 18.04: 7beb3a6e ALSA: hda - Support Gigabyte Gaming board with dual Realtek codecs 56798e6b ALSA: hda - Use a helper function for renaming kctl names ca169cc2 ALSA: hda/realtek - Add Dual Codecs support for Lenovo P520/420 Besides those 3 patches for kernel, we also need 5 more patches for alsa-lib. Because the ucm configuration files are named by card_long_name, these 5 patches intends to introduce the card_long_name searching for ucm and the configuration folder/files for Lenovo machines with dual analogue codecs. the 5 patches are: 2b9b3f01 ucm: Assure the user input card name not to exceed max size of card long name (it is in the alsa-lib v1.1.4) 4b9297e6 ucm: Load device-specific configuration file based on the card long name (it is in the alsa-lib v1.1.4) b7e56af8 conf/ucm: Add dual HD-audio codecs config for Lenovo (it is in the alsa-lib v1.1.6) 181f8e25 ucm: adding the folder of card_long_name when finding verb conf file (it is in the alsa-lib v1.1.6+) 81db276f conf/ucm: increase the input volume for LineIn (it is in the alsa-lib v1.1.6+) To backport these 5 patches to v1.1.3-5, the 3rd and 4th patch need minor change to resolve the patch conflict. And I attached 5 patches to this bug, these patches can be successfully applied to v1.1.3-5 without any change. After applying this patches, the ucm searcher will look for folder according to card_long_name first, if it fails, it will fallback to use card_name as before, so these 5 patches are safe and will not introduce any regression. Steps: 1. Install the ubuntu 18.04 on the machine of Lenovo P520. 2. Login system. 3. Plug in an external headset to record and playback in front and rear panel. Expected result: Output and input audio should work in front and rear panel. Actual result: Front panel audio doesn't work at all. Just output audio working, input audio does't work in rear panel. SRU Document: [Impact] We have several Lenovo machines like Lenovo P520 which have 2 analogue audio codecs on them, the internal speaker and front headset are connected to the 1st codec, the Rear mic, Line in and Line out are connected to the 2nd codec. So far, under ubuntu 18.04 with the alsa-lib/libasound2 v1.1.3-5, only the audio devices (internal speaker and front headset) on the 1st codec can work. To make all audio devices work on this machine, upstream provided 3 patches for kernel audio driver and 5 patches for alsa-lib. The kernel patches are already in the linux-4.12, so this is not a problem anymore under 18.04 since we use linux-4.15 in 18.04. For the 5 patches of alsa-lib, we need to backport them to v1.1.3-5, the 5 patches are list as below: 2b9b3f01 ucm: Assure the user input card name not to exceed max size of card long name (it is in the alsa-lib v1.1.4) 4b9297e6 ucm: Load device-specific configuration file based on the card long name (it is in the alsa-lib v1.1.4) b7e56af8 conf/ucm: Add dual HD-audio codecs config for Lenovo (it is in the alsa-lib v1.1.6) 181f8e25 ucm: adding the folder of card_long_name when finding verb conf file (it is in the alsa-lib v1.1.6+) 81db276f conf/ucm: increase the input volume for LineIn (it is in the alsa-lib v1.1.6+) Some explanation for these 5 patches, to make the audio work, the alsa-lib needs to add an audio configuration file and verb conf file for lenovo machines with dual codecs, these two files are put in a folder named by card_long_name, and the name of configuration file itself is also named by card_long_name, this is implemented by the patches of NO. 3rd and 5th. But the alsa-lib v1.1.3-5 itself doesn't support to search conf file with card_long_name, it only support searching with card_name, So we need to backport 3 patches to let alsa-lib v1.1.3-5 support to search with card_long_name, these 3 patches are No. 1st, 2nd and 4th. [Test Case] On the Lenovo machines with dual codecs (p520), I insatlled the libasound2 v1.1.3-5ubuntu1 and libasound2-data v1.1.3-5ubuntu1, the alsa-lib can find the conf file and can parse the conf file successfully, and I tested the internal speaker, front headset, rear mic, line out and line in, all audio devices work well. On a HP and Dell machines without dual codecs, I insatlled the libasound2 v1.1.3-5ubuntu1 and libasound2-data v1.1.3-5ubuntu1, the alsa-lib can't find conf file by card_long_name and card_name, the pulseaudio will drive the sound card as before, so all audio functions worked well as before. [Regression Potential] After adding these 5 patches, there 2 two changes introduced into the alsa-lib v1.1.3-5ubuntu1: 1) before: only have folder and conf files named by card_name; after: has one folder and conf file named by card_long_name, this folder and conf file will not affect others, 2) before: the ucm parser will search the conf file/folder by card_name only; after: the ucm parser will search the conf file/foler by card_long_name first, if it fails, it will fallback to use card_name to search again. So this change is compatible with old version. There is no regression since there is only one folder named by card_long_name in v1.1.3-5ubuntu1, if it runs on lenovo machine with dual codecs, it will find the conf file by card_long_name, if it runs on other machines, the search by card_long_name will definitely fail and fall back to search by card_name, then it will be same as before. So the objective of these 5 patches is to let lenovo machines with dual codecs find the conf file by card_long_name, let other machines fail to search by card_long_name, then fallback to original searching method - search by card_name. [Other Info] Since I could not find the alsa-lib repository in canonical, I just generated the debdiff with "apt-get source ...".
2018-05-04 03:14:29 Hui Wang attachment added alsa-lib_1.1.3-5ubuntu1.debdiff https://bugs.launchpad.net/ubuntu/+source/alsa-lib/+bug/1768830/+attachment/5133327/+files/alsa-lib_1.1.3-5ubuntu1.debdiff
2018-05-07 06:38:38 Timo Aaltonen nominated for series Ubuntu Bionic
2018-05-07 06:38:38 Timo Aaltonen bug task added alsa-lib (Ubuntu Bionic)
2018-05-08 03:50:10 Hui Wang attachment added alsa-lib_1.1.6-1ubuntu1.debdiff https://bugs.launchpad.net/ubuntu/+source/alsa-lib/+bug/1768830/+attachment/5135786/+files/alsa-lib_1.1.6-1ubuntu1.debdiff
2018-05-09 01:36:04 Launchpad Janitor alsa-lib (Ubuntu): status New Fix Released
2018-05-09 06:05:20 Timo Aaltonen alsa-lib (Ubuntu Bionic): status New In Progress
2018-05-11 07:14:59 Timo Aaltonen alsa-lib (Ubuntu Bionic): status In Progress Fix Committed
2018-05-11 07:15:00 Timo Aaltonen bug added subscriber Ubuntu Stable Release Updates Team
2018-05-11 07:15:02 Timo Aaltonen bug added subscriber SRU Verification
2018-05-11 07:15:05 Timo Aaltonen tags originate-from-1735041 sutton originate-from-1735041 sutton verification-needed verification-needed-bionic
2018-05-14 00:48:51 Hui Wang tags originate-from-1735041 sutton verification-needed verification-needed-bionic originate-from-1735041 sutton verification-done verification-done-bionic
2018-05-21 06:43:31 Launchpad Janitor alsa-lib (Ubuntu Bionic): status Fix Committed Fix Released
2018-05-21 06:43:35 Ɓukasz Zemczak removed subscriber Ubuntu Stable Release Updates Team
2018-05-21 10:07:38 Hanen Ben Rhouma bug added subscriber Hanen Ben Rhouma
2018-08-29 17:26:14 Anthony Wong hwe-next: status New Fix Released