Thread (42 messages) 42 messages, 6 authors, 2012-06-13

Re: [RFT] PCI changes related to wakeup (was: Re: [linux-pm] ehci_hcd related S3 lockup on ASUS laptops, again)

From: Rafael J. Wysocki <hidden>
Date: 2012-05-29 19:11:29
Also in: linux-acpi

On Tuesday, May 29, 2012, Alan Stern wrote:
On Tue, 29 May 2012, Rafael J. Wysocki wrote:
quoted
On Tuesday, May 29, 2012, Alan Stern wrote:
quoted
On Sun, 27 May 2012, Rafael J. Wysocki wrote:
quoted
So, do you think we should apply [1/4] and [2/4] and try to work around the
BIOS bug from https://bugzilla.kernel.org/show_bug.cgi?id=43278 (I suppose
we can do that by double checking if the target state returned by ACPI is
in agreement with the capabilities returned by the PCI layer)?
Here's one possible approach.  It only solves part of the problem, but
it ought to help with Bugzilla 43278 (Dâniel's case).  I suggest that
we don't believe the output from _SxW if the PCI PM capability
indicates that PME is supported in a higher-numbered D state than _SxW
says.

On Dâniel's smachine, _SxW returns D2
No, it doesn't.  In fact, _SxW is not present for that device in his DSDT.
Oh -- I guess I got the machines mixed up.  Since _SxW isn't present
and _SxD is, we accept the value of _SxD as the only state in which
wakeup is supported.
Precisely.
ACPI apparently doesn't have any way to express: "The device is allowed 
to be in either D2 or D3 during S3 sleep, but it supports wakeup only 
in D3."  And trying to express the inexpressible, the BIOS ended up 
being buggy.
Yeah.
ACPI also apparently doesn't have any way to express: "The device is 
allowed be in D2 but not D3 during S3 sleep, even if wakeup is not 
enabled."
That's my understanding too.
quoted
quoted
but the controller supports PME in D3; therefore we would use D3.
Yes, we can do that.  This goes along the lines of what I said in the bug
entry.
quoted
This still leaves the original problem.  It seems clear that ACPI
won't be sufficient to solve this -- at least, it won't help in the
case where the controller isn't enabled for wakeup.

Therefore we really do need a quirk, probably in ehci-hcd like the 
original patch.  If it is restricted to apply only in cases where the 
DMI information lists ASUSTeK as the manufacturer, perhaps that will be 
sufficient.  (For some reason, the manufacturer field in Dâniel's BIOS 
isn't initialized.)
Yeah.

I'll have a deeper look at this later today, I think.
It's easy enough to write such a check (or perhaps more reliably, check
for a product name matching "P8Z68-V").
I think we should try to express it as a PCI quirk in quirks.c, though.
More difficult is knowing whether it's the right thing to do.  We don't
know the extent of the underlying problem.
Well, we can only learn that by experience, so we should address the know
cases and then try to find patterns, if they exist.

Thanks,
Rafael
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help