Re: [PATCH] Add a quirk for the Dell XPS 13 (2015) when in PS/2 mode.

From: Jason Ekstrand
Date: Mon Mar 16 2015 - 13:10:51 EST

On Mon, Mar 16, 2015 at 7:29 AM, Mario Limonciello
<mario_limonciello@xxxxxxxx> wrote:
> On 03/14/2015 02:17 PM, Benjamin Tissoires wrote:
>> [top posting, sorry]
>> Jason made some interesting progress today:
>> with the patch in, the sound card
>> is not switched in the I2S mode and works while the touchpad keeps
>> using I2C.
>> It looks like suspend/resume is also fixed by that :)
>> I thought it was worth mentioning to the people in this thread.
>> Cheers,
>> Benjamin
> Benjamin,
> Thanks for reporting the progress to me.
> Jason,
> Are you sure upon the particulars of what's happening here? That patch only
> modifies the behavior of how the EC is configured.
> I'm not aware of any suspend/resume issues, especially related to the EC, so
> that really surprises me. My initial suspicion is a suspend/resume issue
> you encountered was rare enough that you just haven't hit it yet even with
> that patch applied. Maybe something in the out of kernel Broadcom wireless
> driver if you are still using the Broadcom card with it.

It's nothing about the wireless. I swapped it out for an intel card
on day 3 or so.

Yes, I am almost 100% sure that this affects suspend/resume. Prior to
the _REV hack, my laptop *never* suspended correctly. Now it
regularly suspends just fine. I also double-checked that rebasing on
Linus' master didn't affect it. With the _REV hack it doesn't
suspend. Without it, it's just fine.

I don't know much about suspend/resume but is it possible that the
problem is the kernel not being able to properly shut down the sound

> I believe you are incorrect in the audio being put in HDA mode. It's more
> likely that it's operating closer to properly in I2S mode. Here's some
> background around what that patch is doing.
> When this platform started development the Linux kernel didn't yet respond
> true to Windows 2013. All our validation for Linux happened on kernel 3.13.

That matches what I've seen. With the _REV hack, I see nothing about
HDA in dmesg and I get different audio messages than with an _OSI of
Windows 2009.

> _OSI of Windows 2009 is supposed to set it for PS2 mouse, HDA device in ACPI
> and configure the EC to set up the Realtek codec for HDA mode. Linux was
> planned to mirror this behavior during development.
> _OSI of Windows 2013 is supposed to set it up for I2C mouse, I2S audio in
> ACPI and configure the EC to set up the Realtek codec for I2S mode.
> From when the platform was in development a _REV check was put in for
> Windows 2013 to make sure that in case the kernel started to respond to
> Windows 2013 we would still have it running in the intended modes for Linux.
> There was a mistake in this _REV check though that caused the I2S ACPI
> device but to misconfigure the EC. The reason _REV = 2 and _OSI = Windows
> 2013 you are getting working audio is the rt286 driver is starting to be
> used. You can validate this by looking at dmesg for lines about rt286.
> Realtek recently submitted some patches for this at Dell's request. There
> are still a variety of issues with the I2S driver including jack detection
> and some other microphone issues. Pulseaudio will possibly need some
> patches to work properly with this device too. Ideally we don't want
> customers to use I2S mode on Linux until it's solid.
> I don't believe this was in Linus' tree yet, so if you don't have it you can
> apply it and it should fix at least one microphone issue when in I2S mode.
> Whether or not that _REV patch gets applied to the kernel we are fixing this
> incorrect behavior for Windows 2013 _OSI and Linux in upcoming BIOS A02.
> In BIOS A02 there will still be a _REV check but it will do this:
> Windows 2013 _OSI, _REV 5: I2C mouse, HDA device in ACPI, configure EC for
> HDA mode.
> Windows 2013 _OSI, _REV 2: I2C mouse, I2S device in ACPI, configure EC for
> I2S mode.

I look forward to seeing the update. Thanks for working on this!
--Jason Ekstrand
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at