This is the debdiff. Sponsor team, please help submit the build request
to the queue.

thx.


** Description changed:

  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:
  
- So far the ubuntu 18.04 just imported alsa-lib v1.1.3-5 from debian.org.
+ [Impact]
  
- 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:
+ 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:
  
- 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
+ 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.
  
- 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:
+ 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]
  
- 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)
+ 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.
  
- 4b9297e6 ucm: Load device-specific configuration file based on the card
- long name (it is in the alsa-lib v1.1.4)
+ 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.
  
- b7e56af8 conf/ucm: Add dual HD-audio codecs config for Lenovo (it is in
- the alsa-lib v1.1.6)
+ [Regression Potential]
  
- 181f8e25 ucm: adding the folder of card_long_name when finding verb conf
- file (it is in the alsa-lib v1.1.6+)
+ After adding these 5 patches, there 2 two changes introduced into the
+ alsa-lib v1.1.3-5ubuntu1:
  
- 81db276f conf/ucm: increase the input volume for LineIn (it is in the
- alsa-lib v1.1.6+)
+ 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.
  
- 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.
+ 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.
  
- 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.
+ [Other Info]
+ 
+ Since I could not find the alsa-lib repository in canonical, I just
+ generated the debdiff with "apt-get source ...".

** Patch 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

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

Title:
  the audio can't work on Lenovo machines with dual analogue codecs
  under ubuntu 18.04

To manage notifications about this bug go to:
https://bugs.launchpad.net/hwe-next/+bug/1768830/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to