hda driver initialization takes too much time on the machine with coffeelake audio controller [8086:a348]
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
HWE Next |
Fix Released
|
Undecided
|
Unassigned | ||
linux (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Xenial |
Invalid
|
Undecided
|
Unassigned | ||
Artful |
Fix Released
|
Undecided
|
Unassigned | ||
linux-oem (Ubuntu) |
Fix Released
|
Critical
|
Hui Wang | ||
Xenial |
Fix Released
|
Undecided
|
Unassigned | ||
Artful |
Invalid
|
Undecided
|
Unassigned |
Bug Description
[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.
description: | updated |
tags: | added: originate-from-1747356 somerville |
Changed in linux (Ubuntu Artful): | |
status: | Incomplete → Fix Committed |
Changed in linux (Ubuntu): | |
status: | Incomplete → Confirmed |
Changed in linux-oem (Ubuntu Xenial): | |
status: | New → Fix Committed |
tags: |
added: verification-done-xenial removed: verification-needed-xenial |
tags: |
added: verification-done-artful removed: verification-needed-artful |
Changed in linux-oem (Ubuntu): | |
status: | New → Fix Released |
Changed in linux (Ubuntu): | |
status: | Confirmed → Fix Released |
Changed in hwe-next: | |
status: | New → Fix Released |
Please also set status for main linux task (Bionic) will the change be needed there or is (or will) it included already.