** Changed in: hwe-next
       Status: New => Fix Released

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to alsa-lib in Ubuntu.
https://bugs.launchpad.net/bugs/1768830

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

Status in HWE Next:
  Fix Released
Status in alsa-lib package in Ubuntu:
  Fix Released
Status in alsa-lib source package in Bionic:
  Fix Released

Bug 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.

  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 ...".

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to