From: Lukas Wunner <lukas@wunner.de>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: kilian.singer@quantumtechnology.info, linux-pci@vger.kernel.org,
Mika Westerberg <mika.westerberg@linux.intel.com>,
"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Subject: Re: PCI: Revert "PCI: Add runtime PM support for PCIe ports"
Date: Wed, 28 Dec 2016 12:29:54 +0100 [thread overview]
Message-ID: <20161228112954.GA17925@wunner.de> (raw)
In-Reply-To: <20161227235737.GB24366@bhelgaas-glaptop.roam.corp.google.com>
On Tue, Dec 27, 2016 at 05:57:37PM -0600, Bjorn Helgaas wrote:
> Thanks for the report (https://bugzilla.kernel.org/show_bug.cgi?id=190861)
> and all the debugging you've done. Below is a revert of the troublesome
> commit. Can you test it and verify that it also fixes the problem?
>
> I assume Mika is looking at this and will have a better solution soon.
> But if not, I'll queue this up for v4.10.
@Kilian: Are you using the proprietary nvidia driver? If so,
does the issue go away if you blacklist that driver or use nouveau
instead?
With a bit of googling I found dmesg and lspci output for this model:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1437386
The keyboard and mouse seem to be PS/2 devices, accessed via I/O ports
0x60, 0x64. I assume they're located behind the LPC bridge?
The proprietary nvidia driver has a bug, it locks the legacy PCI VGA
registers with vga_tryget() but never releases that lock. Intel
chipsets have a quirk wherein I/O ports are routed to the bus to
which the legacy PCI VGA registers are locked. So once vga_tryget()
is called by the nvidia driver, access to the keyboard and mouse is
routed to bus 01 (on which the Nvidia card resides) and not to bus 00
(on which the LPC bridge resides).
My theory would be that if you lock the screen, the Nvidia card
runtime suspends, allowing the root port above it to suspend,
and then the I/O ports are no longer accessible.
We have a similar issue on dual GPU MacBook Pros: Backlight brightness
is adjusted by writing to I/O ports of a gmux controller situated below
the LPC bridge. The nvidia driver locks the legacy VGA registers and
from that point reads from the I/O ports always return 0xff. Commit
4eebd5a4e726 ("apple-gmux: lock iGP IO to protect from vgaarb changes")
sought to fix it but caused other breakage which remains unfixed so far:
https://bugzilla.kernel.org/show_bug.cgi?id=105051
https://bugzilla.kernel.org/show_bug.cgi?id=88861#c11
I've always wondered if the Intel chipsets would behave more sensibly
if the LPC bridge had BARs specifying the I/O regions used by devices
below it.
Reverting runtime suspend for PCIe ports is not a good solution as it's
needed for Thunderbolt runtime PM on Macs.
Thanks,
Lukas
next prev parent reply other threads:[~2016-12-28 11:29 UTC|newest]
Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-27 23:57 PCI: Revert "PCI: Add runtime PM support for PCIe ports" Bjorn Helgaas
2016-12-28 9:17 ` Mika Westerberg
2016-12-28 11:29 ` Lukas Wunner [this message]
2016-12-28 16:18 ` Bjorn Helgaas
2016-12-29 9:58 ` Kilian Singer
2016-12-29 16:02 ` Kilian Singer
2016-12-29 16:20 ` Kilian Singer
2016-12-29 17:50 ` Lukas Wunner
2016-12-29 22:52 ` Kilian Singer
2016-12-29 23:02 ` Kilian Singer
2016-12-29 23:05 ` Kilian Singer
2016-12-29 23:48 ` Lukas Wunner
2016-12-29 23:20 ` Kilian Singer
2016-12-30 0:07 ` Lukas Wunner
2016-12-30 0:16 ` Kilian Singer
2016-12-30 0:24 ` Kilian Singer
2016-12-30 0:22 ` Rafael J. Wysocki
2016-12-30 0:39 ` Kilian Singer
2016-12-30 0:41 ` Rafael J. Wysocki
2016-12-30 0:45 ` Kilian Singer
2016-12-30 1:40 ` Rafael J. Wysocki
2016-12-30 1:50 ` Rafael J. Wysocki
2016-12-30 1:52 ` Rafael J. Wysocki
2016-12-30 13:37 ` Kilian Singer
2016-12-30 13:59 ` Kilian Singer
2016-12-30 14:44 ` Rafael J. Wysocki
2016-12-30 14:47 ` Rafael J. Wysocki
2017-01-02 12:22 ` Mika Westerberg
2017-01-03 17:12 ` Kilian Singer
2017-01-02 11:40 ` Lukas Wunner
2017-01-02 12:10 ` Mika Westerberg
2017-01-02 13:53 ` Mika Westerberg
2017-01-02 14:48 ` Mika Westerberg
2017-01-02 21:31 ` Rafael J. Wysocki
2017-01-03 9:51 ` Mika Westerberg
2017-01-03 15:15 ` Peter Wu
2017-01-03 16:11 ` Lukas Wunner
2017-01-03 16:31 ` Peter Wu
2017-01-03 16:44 ` Deucher, Alexander
2017-01-03 18:09 ` Lukas Wunner
2017-01-03 18:12 ` Bjorn Helgaas
2017-01-03 21:38 ` Rafael J. Wysocki
2017-01-03 21:52 ` Kilian Singer
2017-01-03 22:07 ` Rafael J. Wysocki
2017-01-03 22:25 ` Kilian Singer
2017-01-03 22:25 ` Bjorn Helgaas
2017-01-03 23:13 ` Rafael J. Wysocki
2017-01-04 0:05 ` Bjorn Helgaas
2017-01-04 1:09 ` Rafael J. Wysocki
2017-01-04 8:16 ` Lukas Wunner
2017-01-04 10:33 ` Kilian Singer
2017-01-04 12:29 ` Mika Westerberg
2017-01-04 15:50 ` Deucher, Alexander
2017-01-04 21:09 ` Peter Wu
2017-01-04 21:58 ` Rafael J. Wysocki
2017-01-04 23:21 ` David Airlie
2017-01-05 15:06 ` Lukas Wunner
2017-01-05 18:13 ` Peter Jones
2017-01-05 19:36 ` David Airlie
2017-01-09 15:11 ` Lyude Paul
2017-01-09 15:21 ` Hans de Goede
2017-01-09 18:48 ` Kilian Singer
2017-01-10 0:33 ` David Airlie
2017-01-10 9:17 ` Kilian Singer
2017-01-12 18:10 ` Lyude Paul
2017-01-24 4:59 ` Lukas Wunner
2017-01-24 19:09 ` Lyude Paul
2017-01-11 20:40 ` Lyude Paul
2017-01-12 1:13 ` Lyude Paul
2017-01-12 2:04 ` Lyude Paul
2017-01-12 2:12 ` Lukas Wunner
2017-01-17 15:55 ` Mika Westerberg
2017-01-17 18:06 ` Lyude Paul
2017-01-17 19:10 ` Bjorn Helgaas
2017-01-17 19:49 ` Lyude Paul
2017-01-07 11:45 ` Hans de Goede
2017-01-07 12:16 ` Lukas Wunner
2017-01-09 23:00 ` Peter Jones
2017-01-10 0:17 ` David Airlie
2017-01-10 1:24 ` Lukas Wunner
2017-01-10 2:15 ` David Airlie
2017-01-11 11:04 ` Hans de Goede
2017-01-11 13:24 ` Kilian Singer
2017-01-11 13:26 ` Hans de Goede
2017-01-11 16:24 ` Peter Jones
2017-01-11 19:20 ` Kilian Singer
2017-01-05 10:49 ` Mika Westerberg
2017-01-05 14:19 ` Rafael J. Wysocki
2017-01-05 14:20 ` Mika Westerberg
2017-01-05 14:23 ` Rafael J. Wysocki
2017-01-05 14:42 ` Lukas Wunner
2017-01-06 1:21 ` Rafael J. Wysocki
2017-01-07 6:50 ` Mika Westerberg
2017-01-07 11:35 ` Peter Wu
2017-01-07 12:19 ` Lukas Wunner
2017-01-07 12:36 ` Peter Wu
2017-01-08 14:05 ` Lukas Wunner
2017-01-04 21:55 ` Rafael J. Wysocki
2017-01-03 21:26 ` Rafael J. Wysocki
2017-01-03 17:37 ` Kilian Singer
2017-01-03 17:10 ` Kilian Singer
2017-01-03 16:59 ` Kilian Singer
2017-01-03 17:08 ` Kilian Singer
2016-12-30 0:19 ` Rafael J. Wysocki
2016-12-30 14:48 ` Rafael J. Wysocki
2017-01-17 14:56 ` Bjorn Helgaas
2017-01-17 15:49 ` Kilian Singer
2017-01-23 20:33 ` Bjorn Helgaas
2017-01-23 21:12 ` Mika Westerberg
2017-01-24 4:53 ` Lukas Wunner
2017-01-24 20:01 ` Bjorn Helgaas
2017-01-25 9:48 ` Mika Westerberg
2017-01-25 16:05 ` Kilian Singer
2017-01-25 16:31 ` Mika Westerberg
2017-01-25 17:58 ` Bjorn Helgaas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161228112954.GA17925@wunner.de \
--to=lukas@wunner.de \
--cc=helgaas@kernel.org \
--cc=kilian.singer@quantumtechnology.info \
--cc=linux-pci@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=rafael.j.wysocki@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).