FS#49556 - [linux] 4.6.x Audio (I2S) crashes in Dell XPS 13 (9343 model)

Attached to Project: Arch Linux
Opened by Francisco Cribari (cribari) - Friday, 03 June 2016, 12:45 GMT
Last edited by Doug Newgard (Scimmia) - Tuesday, 03 October 2017, 02:53 GMT
Task Type Bug Report
Category Kernel
Status Closed
Assigned To Tobias Powalowski (tpowa)
Architecture x86_64
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description:

Hardware:

cribari@darwin4 ~ $ dmesg | grep "XPS 13"
[ 0.000000] DMI: Dell Inc. XPS 13 9343/0310JH, BIOS A07 11/11/2015

i.e., 9343 model with Intel i7, touchscreen, 3200 x 1800 screen resolution, Broadcom wireless.

Details on this machine: https://wiki.archlinux.org/index.php/Dell_XPS_13_(2015)

Kernel 4.5.3 (Arch Linux):

cribari@darwin4 ~ $ uname -a
Linux darwin4 4.5.3-1-ARCH #1 SMP PREEMPT Sat May 7 20:43:57 CEST 2016 x86_64 GNU/Linux

The problem persists with kernel 4.5.4-1.

I have sound when I boot the computer, but dmesg informs:

[ 1.453753] haswell-pcm-audio haswell-pcm-audio: Direct firmware load for intel/IntcPP01.bin failed with error -2
[ 1.453755] haswell-pcm-audio haswell-pcm-audio: fw image intel/IntcPP01.bin not available(-2)

I extracted "IntcPP01.bin" from a copy of a Windows Realtek Audio driver (9343_Audio_Driver_X22K2_WN32_7422.118.0_A01.EXE) and placed it in /usr/lib/firmware/intel/IntcPP01.bin . It did not help. The same crashes (that are detailed below) took place after that.

Sound is gone after a while, usually when I play YouTube videos or streaming radio from

http://cbn.globoradio.globo.com/

using Google Chrome or another browser (e.g., Vivaldi). (I mostly use Chrome.) Usually, that happens when I stop the video or streaming radio and try to resume it later.

When sound is gone, dmesg informs:

[24294.494682] haswell-pcm-audio haswell-pcm-audio: error: audio DSP boot timeout IPCD 0x0 IPCX 0x0
[24294.811357] haswell-pcm-audio haswell-pcm-audio: ipc: --message timeout-- ipcx 0x83000000 isr 0x00000000 ipcd 0x00000000 imrx 0x7fff0000
[24294.811360] haswell-pcm-audio haswell-pcm-audio: error: stream commit failed
[24294.811375] haswell-pcm-audio haswell-pcm-audio: ASoC: haswell-pcm-audio hw params failed: -110
[24295.118072] haswell-pcm-audio haswell-pcm-audio: ipc: --message timeout-- ipcx 0x83000000 isr 0x00000000 ipcd 0x00000000 imrx 0x7fff0000
[24295.118076] haswell-pcm-audio haswell-pcm-audio: error: stream commit failed
[24295.118082] haswell-pcm-audio haswell-pcm-audio: ASoC: haswell-pcm-audio hw params failed: -110

Also:

[24304.578677] haswell-pcm-audio haswell-pcm-audio: ipc: --message timeout-- ipcx 0x83000000 isr 0x00000000 ipcd 0x00000000 imrx 0x7fff0000
[24304.578693] haswell-pcm-audio haswell-pcm-audio: error: stream commit failed
[24304.578695] System PCM: error: failed to commit stream -110
[24304.578698] haswell-pcm-audio haswell-pcm-audio: ASoC: haswell-pcm-audio hw params failed: -110
[24304.578700] System PCM: ASoC: hw_params FE failed -110
[24304.882091] haswell-pcm-audio haswell-pcm-audio: ipc: --message timeout-- ipcx 0x83000000 isr 0x00000000 ipcd 0x00000000 imrx 0x7fff0000
[24304.882102] haswell-pcm-audio haswell-pcm-audio: error: stream commit failed
[24304.882107] System PCM: error: failed to commit stream -110
[24304.882112] haswell-pcm-audio haswell-pcm-audio: ASoC: haswell-pcm-audio hw params failed: -110
[24304.882117] System PCM: ASoC: hw_params FE failed -110

In order to have audio, I am having to compile my kernels with

CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y

I run Gnome 3.20 + GDM. Interestingly, the crashes seem to be caused by GDM. When I switch to LightDM the crashes stop.

GDM starts an instance of pulseaudio. I followed the suggestion here:

https://wiki.archlinux.org/index.php/Bluetooth_headset#Gnome_with_GDM

That is, created /var/lib/gdm/.config/pulse/client.conf (I did not have this file) with

autospawn = no
daemon-binary = /bin/true

and

sudo -ugdm mkdir -p /var/lib/gdm/.config/systemd/user
sudo -ugdm ln -s /dev/null /var/lib/gdm/.config/systemd/user/pulseaudio.socket

I rebooted the computer and there was no longer a pulseaudio process for gdm. Nonetheless, the crashes (with I2S sound) persist.

We should be able to kill pulseaudio and to manually restart it, as described here:

https://wiki.archlinux.org/index.php/PulseAudio/Examples#Disabling_automatic_spawning_of_PulseAudio_server

However, that does not work for me. After a

$ pulseaudio --kill

pulseaudio is restarted:

cribari@darwin4 ~ $ ps aux | grep pulse
cribari 31650 0.0 0.1 497700 11432 ? S<sl 12:30 0:00 /usr/bin/pulseaudio --daemonize=no
cribari 31869 0.0 0.0 10764 2228 pts/1 S+ 12:41 0:00 grep --colour=auto pulse
cribari@darwin4 ~ $ pulseaudio --kill
cribari@darwin4 ~ $ ps aux | grep pulse
cribari 31873 1.6 0.1 498768 11892 ? S<sl 12:41 0:00 /usr/bin/pulseaudio --daemonize=no
cribari 31880 0.0 0.0 10764 2280 pts/1 S+ 12:41 0:00 grep --colour=auto pulse

A discussion about that can be found at
http://www.dslreports.com/forum/r30355771-Even-if-autospawn-no-PulseAudio-always-starts-gdm

I have a friend that has the same machine. My machine:

cribari@darwin4 ~ $ dmesg | grep "XPS 13"
[ 0.000000] DMI: Dell Inc. XPS 13 9343/0310JH, BIOS A07 11/11/2015

His machine:

[raydonal@buda ~] $ dmesg | grep "XPS 13"
[ 0.000000] DMI: Dell Inc. XPS 13 9343/0310JH, BIOS A03 03/25/2015

Notice we both have the 0310JH 9343 configuration. He was experiencing the same problems with Fedora + Gnome + GDM.
Last week he installed Arch + Cinnamon + LightDM and now his I2S audio works flawless.

See the discussion in https://bugs.archlinux.org/task/48936 . It was asked there for a new bug report to be filed.

I should also point out that I filed this bug report: https://bugzilla.kernel.org/show_bug.cgi?id=118051 . I did not get
any meaningful feedback there so far.

Additional info:
* package version(s)

alsa-firmware v. 1.0.29-1
alsa-lib v. 1.1.1-1
alsa-oss v. 1.0.28-1
alsa-plugins v. 1.1.1-1
alsa-tools v. 1.1.0-2
alsa-utils v. 1.1.1-1
lib32-alsa-lib v. 1.1.1-1
lib32-alsa-plugins v. 1.1.1-1
pavucontrol v. 3.0-4
pulseaudio v. 8.0-3
pulseaudio-alsa v. 2-3
pulseaudio-bluetooth v. 8.0-3
pulseaudio-equalizer v. 8.0-3
pavucontrol v. 3.0-4
lib32-libpulse v. 8.0-1
libcanberra-pulse v. 0.30-6
gdm 3.20-1
libgdm 3.20-1

* config and/or log files etc.

The only special configuration I have is

cribari@darwin4 /etc/modprobe.d $ cat alsa-base.conf
options snd_hda_intel index=1,0

The crashes continue to happen when I remove this file.

Steps to reproduce:

Run Arch Linux on a Dell XPS 13 9343 with Intel i7, touchscreen, 3200 x 1800 resolution and Broadcom wireless
with Gnome + GDM.
This task depends upon

Closed by  Doug Newgard (Scimmia)
Tuesday, 03 October 2017, 02:53 GMT
Reason for closing:  Fixed
Additional comments about closing:  I2S is no more the default mode for sound card
Comment by Francisco Cribari (cribari) - Wednesday, 08 June 2016, 12:54 GMT
The problem persists in kernel 4.6.1 (+ Gnome + GDM):

cribari@darwin4 ~ $ uname -a
Linux darwin4 4.6.1-2-ARCH #1 SMP PREEMPT Thu Jun 2 15:46:17 CEST 2016 x86_64 GNU/Linux

Sound (I2S) works for a while and then stops working. At that point, dmesg informs

[ 4832.751107] haswell-pcm-audio haswell-pcm-audio: ipc: --message timeout-- ipcx 0x83000000 isr 0x00000000 ipcd 0x00000000 imrx 0x7fff0000
[ 4832.751115] haswell-pcm-audio haswell-pcm-audio: error: stream commit failed
[ 4832.751119] System PCM: error: failed to commit stream -110
[ 4832.751124] haswell-pcm-audio haswell-pcm-audio: ASoC: haswell-pcm-audio hw params failed: -110
[ 4832.751128] System PCM: ASoC: hw_params FE failed -110
[ 4833.054400] haswell-pcm-audio haswell-pcm-audio: ipc: --message timeout-- ipcx 0x83000000 isr 0x00000000 ipcd 0x00000000 imrx 0x7fff0000
[ 4833.054404] haswell-pcm-audio haswell-pcm-audio: error: stream commit failed
[ 4833.054407] System PCM: error: failed to commit stream -110
[ 4833.054409] haswell-pcm-audio haswell-pcm-audio: ASoC: haswell-pcm-audio hw params failed: -110
[ 4833.054412] System PCM: ASoC: hw_params FE failed -110

Kernel:

cribari@darwin4 ~ $ uname -a
Linux darwin4 4.6.1-2-ARCH #1 SMP PREEMPT Thu Jun 2 15:46:17 CEST 2016 x86_64 GNU/Linux
Comment by Francisco Cribari (cribari) - Friday, 10 June 2016, 17:57 GMT
The problem (I2S audio crashes) remains with kernel 4.6.2. A dmesg dump is available at http://pastebin.com/D3iyt0GA .
Comment by Francisco Cribari (cribari) - Sunday, 12 June 2016, 15:39 GMT
cribari@darwin4 ~ $ pulseaudio -vv
I: [pulseaudio] main.c: setrlimit(RLIMIT_NICE, (31, 31)) failed: Operation not permitted
D: [pulseaudio] core-rtclock.c: Timer slack is set to 50 us.
D: [pulseaudio] core-util.c: RealtimeKit worked.
I: [pulseaudio] core-util.c: Successfully gained nice level -11.
I: [pulseaudio] main.c: This is PulseAudio 8.0
D: [pulseaudio] main.c: Compilation host: x86_64-unknown-linux-gnu
D: [pulseaudio] main.c: Compilation CFLAGS: -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -Wall -W -Wextra -Wno-long-long -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing -Wwrite-strings -Wno-unused-parameter -ffast-math -fno-common -fdiagnostics-show-option -fdiagnostics-color=auto
D: [pulseaudio] main.c: Running on host: Linux x86_64 4.6.2-1-ARCH #1 SMP PREEMPT Wed Jun 8 08:40:59 CEST 2016
D: [pulseaudio] main.c: Found 4 CPUs.
I: [pulseaudio] main.c: Page size is 4096 bytes
D: [pulseaudio] main.c: Compiled with Valgrind support: no
D: [pulseaudio] main.c: Running in valgrind mode: no
D: [pulseaudio] main.c: Running in VM: no
D: [pulseaudio] main.c: Optimized build: yes
D: [pulseaudio] main.c: FASTPATH defined, only fast path asserts disabled.
I: [pulseaudio] main.c: Machine ID is e63a6d8a3b854f6b84c003adbe21ecc4.
I: [pulseaudio] main.c: Session ID is c2.
I: [pulseaudio] main.c: Using runtime directory /run/user/1000/pulse.
I: [pulseaudio] main.c: Using state directory /home/cribari/.config/pulse.
I: [pulseaudio] main.c: Using modules directory /usr/lib/pulse-8.0/modules.
I: [pulseaudio] main.c: Running in system mode: no
E: [pulseaudio] pid.c: Daemon already running.
E: [pulseaudio] main.c: pa_pid_file_create() failed.
cribari@darwin4 ~ $
Comment by Francisco Cribari (cribari) - Sunday, 12 June 2016, 21:16 GMT
Upon inspection of the dmesg dump available at http://pastebin.com/D3iyt0GA I get the feeling that the crash happens at this point

[ 5193.181346] haswell-pcm-audio haswell-pcm-audio: error: audio DSP boot timeout IPCD 0x0 IPCX 0x0

Comment by Francisco Cribari (cribari) - Saturday, 25 June 2016, 23:23 GMT
The problem may not be caused by GDM after all. I am now running KDE + SDDM and the I2S audio crashes keep happening.
Comment by Francisco Cribari (cribari) - Tuesday, 28 June 2016, 15:20 GMT
The problem remains with pulseaudio version 9.0-1 + kernel 4.6.3-1.
Comment by Chee Sing Lee (cheesinglee) - Friday, 29 July 2016, 16:06 GMT
I am experiencing the same issue. However, I am able to manually kill and start pulseaudio. The error messages stop spamming dmesg when pulseaudio is stopped, and resume when pulseaudio is restarted. I can only get sound back with a reboot.
Comment by Ru Wang (wangru) - Sunday, 16 October 2016, 06:13 GMT
The problem remains with kernel 4.7.6-1
Comment by mattia (nTia89) - Wednesday, 28 December 2016, 17:17 GMT
I heard the bug open-er was affected by a sound hardware fault.

Is this bug still valid?
Comment by Chee Sing Lee (cheesinglee) - Wednesday, 28 December 2016, 21:42 GMT
I've also seen it reported elsewhere that cribari's issue was due to a hardware fault. I haven't verified that this is also the case for me, but I have found a workaround that seems to have stopped the audio crashes for me. Comment out the line `load-module module-suspend-on-idle` in /etc/pulse/default.pa.

Loading...