[SRU][Artful][OEM][PATCH] hda driver initialization takes too much time on the machine with coffeelake audio controller [8086:a348]

Hui Wang hui.wang at canonical.com
Mon Mar 26 06:37:55 UTC 2018


BugLink: https://bugs.launchpad.net/bugs/1758800

This patch was already in the 4.15 stable-queue, so will not send to bionic
again here.

[Impact]

We have a couple of laptop and desktop computers, all of them are cfl platforms
and all of them have cfl audio controller [8086:a348], and these computers have
different realtek codecs on them (alc256, alc255, alc289 and ...). The hda
driver takes too much time (3 secs - 8 secs) to initialize on these machines.
This problem never happened on kbl, skl, bdw, ... before.

Sometimes this can make pulseaudio can't work well.

pulseaudio starts, but the driver (as kernel modules) initialization has not
finished, then there is no valid sink in the pulseaudio. At this moment, some UI
Apps already start using pulseaudio to play sound, but users can't hear the sound
as expected. This problem never happened before, it is exposed on cfl platforms,
and all cfl platforms (with audio controller 8086:a348) have this problem.

[Fix]
Set the polling mode can fix this problem, and this workaround is in the
mainline kernel.

[Test Case]
Boot the machine and check the dmesg, from the hda log, we can see the driver
initialization is finished within 0.1s and pulseaudio works well.

[Regression Potential]
No regression, this fix is only for CFL audio controller (8086:a348), and
in theory, polling mode is safe for all audio controllers, using interrupt
mode rather than polling mode on other platforms just wants to save polling
overhead for CPUs, since interrupt mode can't work well on CFL platform, we
have to use polling mode.


Takashi Iwai (1):
  ALSA: hda - Force polling mode on CFL for fixing codec communication

 sound/pci/hda/hda_intel.c | 5 +++++
 1 file changed, 5 insertions(+)

-- 
2.7.4





More information about the kernel-team mailing list