Bug 93361

Summary: broadwell-audio: rt286 device appears, no sound (Dell XPS 13 9343)
Product: Drivers Reporter: Major Hayden (major)
Component: Sound(ALSA)Assignee: Keyon (yang.jie)
Status: RESOLVED UNREPRODUCIBLE    
Severity: normal CC: biergaizi2009, cribari, frankie.seto, han.lu, Jan.Henke, keqiao.zhang, matt, sepulworld, superm1, tiwai, willie.koomson, yang.jie
Priority: P1    
Hardware: Intel   
OS: Linux   
Kernel Version: 3.19.0+ Subsystem:
Regression: No Bisected commit-id:
Attachments: dmesg from XPS 13
dmesg w/ r.1 rc3 BIOS A03
attachment-6961-0.html

Description Major Hayden 2015-02-17 06:39:39 UTC
Created attachment 167221 [details]
dmesg from XPS 13

I have a new Dell XPS 9343 (2015 model) and it has a sound device on the I2S bus.  It's a dual mode card and before today, only the HDMI sound device appeared.  However, after compiling the master branch of linux.git and updating all of the firmware on my system from linux.git, the "broadwell-rt286" device appeared in pulseaudio.

I can see both cards (broadwell HDMI plus the broadwell-rt286) but I can't hear any sound from the speakers with the rt286.  pavucontrol shows sound piping into the device and the signal level moves in pavucontrol when I play sounds.  However, the speakers make no sound and plugging in headphones does't help either.

I attempted to build broonie's linux-next branch but it kernel panicked on bootup.

My issue is somewhat similar to bug 92061 and it sounds like I have similar hardware:

https://bugzilla.kernel.org/show_bug.cgi?id=92061

Any assistance or further troubleshooting guidance would be greatly appreciated.
Comment 1 Major Hayden 2015-02-17 06:40:22 UTC
Sorry, meant to say: "updating all of the firmware on my system from linux-firmware.git"
Comment 2 Tom Li 2015-02-22 09:50:36 UTC
Hello Hayden. I'm the reporter of #92061.

Did you try to mute and unmute some channel of broadwell-rt286 in alsamixer? There are some switches and channels I don't understand, the sound started to play after I toggled some of them.
Comment 3 Keyon 2015-02-27 05:11:26 UTC
hi Major Hayden, yes, as Tom Li suggested, can you check if the headphone or speaker is switched on in 'alsamixer -c1'?
Comment 4 Mario Limonciello 2015-04-08 18:02:06 UTC
Hello,

I'd just like to clarify what happened here.  BIOS A01 had a mistake that was putting the sound card into an undefined mode on Linux.  BIOS A02 fixed this mistake and the card runs in HDA mode now.

General HDA output support works properly, but HDA microphone and headset support are pending on these two patches being merged into Linus' tree:

https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/?h=for-next&id=e1e62b98ebddc3234f3259019d3236f66fc667f8

https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/?h=for-next&id=f3b703326541d0c1ce85f5e570f6d2b6bd4296ec
Comment 5 Keyon 2015-04-30 02:39:45 UTC
I have a question, does DELL XPS 13 9343 use I2S codec or HDA codec?
Comment 6 Jan Henke 2015-04-30 06:26:02 UTC
(In reply to Keyon from comment #5)
> I have a question, does DELL XPS 13 9343 use I2S codec or HDA codec?

It has both codecs and exposes either depending on the detected OS. With the current firmware revision A03, it is HDA for kernel versions < 4.1 and I2S for kernel versions >= 4.1 (due to the ACPI version change).
Comment 7 Mario Limonciello 2015-05-12 15:06:47 UTC
Created attachment 176511 [details]
dmesg w/ r.1 rc3 BIOS A03

Now that https://github.com/torvalds/linux/commit/b1ef2972586577e0ca9675254ee141f65a8824e5 has landed, the audio is forced into I2S mode.

I2S is properly configured from the BIOS side on A03 when running with acpi_osi="Windows 2013" after two cold boots.

Unfortunately, the audio does not work AT ALL in this mode.  Please see the attached dmesg for more information.  In HDA mode on 4.1 (with the _REV patch reversed) audio works properly.
Comment 8 Keyon 2015-06-04 08:21:37 UTC
assinging it to me.
Comment 9 Keyon 2015-08-18 07:22:56 UTC
finally I verified that my DELL XPS 13 9343 ADSP(I2S) works well.

please use latest ASoC for-next kernel, and config to unselect CONFIG_ACPI_REV_OVERRIDE_POSSIBLE(to select I2S mode), also remember to select broadwell adsp driver.

test@test-XPS-13-9343:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: broadwellrt286 [broadwell-rt286], device 0: System Playback/Capture (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: broadwellrt286 [broadwell-rt286], device 1: Offload0 Playback (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: broadwellrt286 [broadwell-rt286], device 2: Offload1 Playback (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
Comment 10 Keyon 2015-08-18 07:23:55 UTC
let me mark it fixed as upstream kernel don't have this issue anymore.
Comment 11 Francisco Cribari 2016-05-09 21:41:15 UTC
It seems that kernel 4.5.2 fixes the issue for some Dell XPS 13 9343 machines but not for all 9343 machines. My 9343 notebook is the 0310JH model: 

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

In my case: 

cribari@darwin4 ~ $ sudo dmidecode | grep 0310JH
Product Name: 0310JH

My machine has Intel i7 processor, touchscreen, screen resolution: 3200 x 1800 pixels and Broadcom BCM43b1 wireless. The issue is not fixed for me. I have sound for a while, then sound is gone. dmesg after sound is gone: 

cribari@darwin4 ~ $ dmesg | tail
[ 634.776942] haswell-pcm-audio haswell-pcm-audio: ipc: --message timeout-- ipcx 0x83000000 isr 0x00000000 ipcd 0x00000000 imrx 0x7fff0000
[ 634.776946] haswell-pcm-audio haswell-pcm-audio: error: stream commit failed
[ 634.776949] System PCM: error: failed to commit stream -110
[ 634.776951] haswell-pcm-audio haswell-pcm-audio: ASoC: haswell-pcm-audio hw params failed: -110
[ 634.776953] System PCM: ASoC: hw_params FE failed -110
[ 635.083690] haswell-pcm-audio haswell-pcm-audio: ipc: --message timeout-- ipcx 0x83000000 isr 0x00000000 ipcd 0x00000000 imrx 0x7fff0000
[ 635.083694] haswell-pcm-audio haswell-pcm-audio: error: stream commit failed
[ 635.083697] System PCM: error: failed to commit stream -110
[ 635.083699] haswell-pcm-audio haswell-pcm-audio: ASoC: haswell-pcm-audio hw params failed: -110
[ 635.083701] System PCM: ASoC: hw_params FE failed -110

I run pulseaudio and alsa; see https://dl.dropboxusercontent.com/u/2171814/sound-info.txt . 

For more details, see https://bugs.archlinux.org/task/48936 .
Comment 12 Keyon 2016-05-10 01:32:26 UTC
(In reply to Francisco Cribari from comment #11)
> It seems that kernel 4.5.2 fixes the issue for some Dell XPS 13 9343
> machines but not for all 9343 machines. My 9343 notebook is the 0310JH
> model: 
> 
> cribari@darwin4 ~ $ dmesg | grep "XPS 13"
> [ 0.000000] DMI: Dell Inc. XPS 13 9343/0310JH, BIOS A07 11/11/2015
> 
> In my case: 
> 
> cribari@darwin4 ~ $ sudo dmidecode | grep 0310JH
> Product Name: 0310JH
> 
> My machine has Intel i7 processor, touchscreen, screen resolution: 3200 x
> 1800 pixels and Broadcom BCM43b1 wireless. The issue is not fixed for me. I
> have sound for a while, then sound is gone. dmesg after sound is gone: 
> 
> cribari@darwin4 ~ $ dmesg | tail
> [ 634.776942] haswell-pcm-audio haswell-pcm-audio: ipc: --message timeout--
> ipcx 0x83000000 isr 0x00000000 ipcd 0x00000000 imrx 0x7fff0000
> [ 634.776946] haswell-pcm-audio haswell-pcm-audio: error: stream commit
> failed
> [ 634.776949] System PCM: error: failed to commit stream -110
> [ 634.776951] haswell-pcm-audio haswell-pcm-audio: ASoC: haswell-pcm-audio
> hw params failed: -110
> [ 634.776953] System PCM: ASoC: hw_params FE failed -110
> [ 635.083690] haswell-pcm-audio haswell-pcm-audio: ipc: --message timeout--
> ipcx 0x83000000 isr 0x00000000 ipcd 0x00000000 imrx 0x7fff0000
> [ 635.083694] haswell-pcm-audio haswell-pcm-audio: error: stream commit
> failed
> [ 635.083697] System PCM: error: failed to commit stream -110
> [ 635.083699] haswell-pcm-audio haswell-pcm-audio: ASoC: haswell-pcm-audio
> hw params failed: -110
> [ 635.083701] System PCM: ASoC: hw_params FE failed -110
> 
> I run pulseaudio and alsa; see
> https://dl.dropboxusercontent.com/u/2171814/sound-info.txt . 
> 
> For more details, see https://bugs.archlinux.org/task/48936 .

Hi Francisco, we need used CONFIG_DW_DMAC_CORE=y to enable broadwell ADSP audio with the latest kernel.

seeing from your dmesg, it looks like the firmware is crashed at your case.
how can I duplicate it? using which player, playing what kind of file?

~Keyon
Comment 13 Francisco Cribari 2016-05-10 11:44:56 UTC
@Keyon I have just installed kernel 4.5.3. I am giving it a try and I'll report back. When I booted the computer dmesg reported: 

[    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)

Are they helpful? Despite the messages, sound worked. The crashes take place when I play YouTube videos and listen to streaming radio using a browser (I mostly use Google Chrome but the crashes also happen when I use other browsers, such as Vivaldi). They also happen when I try to record a screencast using SimpleScreenRecorder. As I said, I am giving kernel 4.5.3 a try and I'll report back.
Comment 14 Francisco Cribari 2016-05-10 17:26:10 UTC
@Keyon  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. 

Kernel:

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

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)

alsa-firmware is installed (version 1.0.29-1). 

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. The crashes also happen when I try to record a screencast using SimpleScreenRecorder.

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

What I have installed: 

alsa-firmware v. 1.0.29-1
alsa-lib v. 1.1.1-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
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. 0.30-6
libcanberra-pulse v. 0.30-6

It may be the case that kernel 4.5.2 (and later) fixed the problem for some 9343 machines (those with Intel i5 processors, maybe) but not for all.
Comment 15 Keyon 2016-05-11 01:32:09 UTC
the "Direct firmware load for intel/IntcPP01.bin failed with error -2" is OK, lacking of this firmware binary file won't influence normal playback/capture feature.

from your statement, it looks like the firmware crash sometimes when resuming from pause/suspend, we don't have the same platform with yours, but we will try to see if we can duplicate it on ours.

thanks for reporting.
Comment 16 Francisco Cribari 2016-05-12 12:08:26 UTC
@Keyon Please, see comment #54 by Sebastian Plamauer at 

https://bugzilla.redhat.com/show_bug.cgi?id=1313434

He experienced similar crashes (see the error messages he reports).
Comment 17 Francisco Cribari 2016-05-12 12:30:18 UTC
@Keyon See also 

http://forums.fedoraforum.org/showthread.php?p=1761280

He seems to be experiencing similar crashes.
Comment 18 Willy 2016-05-12 17:04:25 UTC
Hi there! Just wanted to jump in and second, have the same stats (i7 5600u, 3200x1800, touch), even though a different DMI:

DMI: Dell Inc. XPS 13 9343/0F5KF3, BIOS A07 11/11/2015

But like him, I cannot get sound on any kernel (for some time now, including and up to 4.5.3-1, my current kernel), UNLESS (the DMAC_CORE options have no effect) the kernel is recompiled with:

CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y

Which, as u all know, causes:

[ 0.000000] ACPI: DMI detected: DELL XPS 13 (2015) (force ACPI _REV to 5)

But which allows me to get sound!!! For a little bit at least. Like Francisco, sound works for a bit (playing thru Audacious, VLC), but around the time I try watching web clips, maybe with pausing or resuming, sound stops working again, with the message, repeatedly:

kernel: haswell-pcm-audio haswell-pcm-audio: ipc: --message timeout-- ipcx 0x83000000 isr 0x00000000 ipcd 0x00000000 imrx 0x7fff0000
kernel: haswell-pcm-audio haswell-pcm-audio: error: stream commit failed
kernel: haswell-pcm-audio haswell-pcm-audio: ASoC: haswell-pcm-audio hw params failed: -110

Relevant arch bugs: https://bugs.archlinux.org/task/47989 
https://bugs.archlinux.org/task/48936

In addition, when the sound stops working, any operation that emits sound or makes a call to pulseaudio will BLOCK, sometimes indefinitely, sometimes for a minute or two. This includes calling alsamixer from the commandline, starting audacious, gnome ui alert sounds, etc.
Comment 19 Francisco Cribari 2016-05-13 19:53:21 UTC
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 took place after that.
Comment 20 Francisco Cribari 2016-05-21 19:54:43 UTC
Today I experienced yet another crash. dmesg dump available at 

http://pastebin.com/HNy18qyZ

Suggestions are welcome.
Comment 21 Francisco Cribari 2016-05-31 22:16:02 UTC
@Keyon I've made an interesting discovery. The crashes that I and other users (see the comment by @Willy above) seem to be somehow caused by gdm (perhaps through pulseaudio). The crashes take place when I2S audio is used and the display manager is gdm. See https://bugs.archlinux.org/task/48936#comment147488 . Is there anything that can be done about that? Suggestions are welcome.
Comment 22 Francisco Cribari 2016-06-01 15:52:27 UTC
I believe the crashes that I described above are caused by gdm, as I have already explained. Is there anything that can be done to prevent such crashes short of disabling gdm? 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
[/code]
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

Is there anything else I can try? Thank you.
Comment 23 Keqiao, Zhang 2016-06-01 15:53:26 UTC
Created attachment 218651 [details]
attachment-6961-0.html

Dear sender,

Keqiao is taking paternity leave from WW23.1-WW24.6. Please expect slow email response. Anything emergency, please call me through +86-13817765186. Thanks
My backup:
Audio: Focus, Luo
BAT: Fei, Wang
others: Argotti, Yann (my manager).


Thanks
Keqiao