Fwd: [Bug 194884] [acpi] Asus UX31E USB hangs during suspend, due to putting the USB controllers into D3 state
Ian Smith
smithi at nimnet.asn.au
Fri Nov 14 15:51:48 UTC 2014
On Sat, 8 Nov 2014 22:21:33 -0800, Adrian Chadd wrote:
> Hi!
>
> Please test this patch! It makes this Asus Zenbook suspend/resume correctly.
>
> (And if you're knowledgable about such things, please comment on its
> correctness!)
>
> thanks!
>
>
> -adrian
and more recently:
> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=194884
>
> Adrian Chadd <adrian at freebsd.org> changed:
>
> What |Removed |Added
>
----------------------------------------------------------------------------
> Status|In Discussion |Needs MFC
First, thanks for your earlier detailed respnse to my dumb questions.
Late to the party and short of time, I just hand-applied both patches
from the commit to head later in this PR to my 9.3-PRE sources of 25th
Jun and rebuilt its GENERIC amd64 kernel on my Lenovo Thinkpad X200 with
latest BIOS. Also previously applied, the vital acpi_powerres.c patch
so Thinkpads don't lose USB on resume.
Verbose dmesg.boot shows no functional changes with one from back then.
Below is a dmesg diff from a suspend/resume cycle from then, and now.
Apart from the extra ACPI verbosity due to the kids answering the roll,
and hearing more from PCI as well - all fine by me on a verbose boot -
what sticks out is that these have at last gone (and good riddance :)
-pci0: failed to set ACPI power state D2 on \134_SB_.PCI0.EXP0: AE_BAD_PARAMETER
-pci0: failed to set ACPI power state D2 on \134_SB_.PCI0.EXP1: AE_BAD_PARAMETER
-pci0: failed to set ACPI power state D2 on \134_SB_.PCI0.EXP2: AE_BAD_PARAMETER
-pci0: failed to set ACPI power state D2 on \134_SB_.PCI0.EXP3: AE_BAD_PARAMETER
but in their place, as it were, appears:
+pcib0: failed to set ACPI power state D2 on \134_SB_.PCI0: AE_BAD_PARAMETER
Now the acpi.c patch was clean, same line number as head. The pci.c
patch was amongst other changed context, so may not be behaving as other
changes in head would have it behave (re MFC) before assuming the +pcib0
failure listed is real, let alone if it matters; it is new after all.
Note: the below is after an egrep -v 'Kingston|da0|umass|uhub|ugen|em0',
after checking nothing useful was lost; the old one had a USB stick too,
and usb hub to port to device mapping changes and/or reorders on resume
anyway, distracting from seeing just functional differences.
It seems to be running sweet but I haven't stretched its legs at all.
Again, I didn't think it would be helpful to clutter the PR with this ..
sing out if any more detail on anything here might be useful.
cheers, Ian
smithi at x200:/root % cat sus_res.93PRE.pci_acpi_patched.diff
--- sus_res.old2 2014-11-14 19:39:51.000000000 +1100
+++ sus_res.new2nd 2014-11-14 23:44:23.000000000 +1100
@@ -1,43 +1,66 @@
-acpi_button0: sleep button pressed
acpi_timer0: switching timecounter, HPET -> ACPI-fast
acpi_lid0: wake_prep enabled for \134_SB_.LID_ (S3)
acpi_button0: wake_prep enabled for \134_SB_.SLPB (S3)
pci0:0:28:0: Transition from D0 to D3
pci0:3:0:0: Transition from D0 to D3
pci0:0:28:1: Transition from D0 to D3
pci0:0:28:2: Transition from D0 to D3
pci0:0:28:3: Transition from D0 to D3
vga0: saving 4932 bytes of video state
vga0: saving color palette
-pci0: failed to set ACPI power state D2 on \134_SB_.PCI0.EXP0: AE_BAD_PARAMETER
-pci0: failed to set ACPI power state D2 on \134_SB_.PCI0.EXP1: AE_BAD_PARAMETER
-pci0: failed to set ACPI power state D2 on \134_SB_.PCI0.EXP2: AE_BAD_PARAMETER
-pci0: failed to set ACPI power state D2 on \134_SB_.PCI0.EXP3: AE_BAD_PARAMETER
+pci0:0:2:0: Transition from D0 to D3
+pci0: set ACPI power state D3 on \134_SB_.PCI0.VID_
+pci0:0:2:1: Transition from D0 to D3
+pci0:0:25:0: Transition from D0 to D3
+pci0:0:26:7: Transition from D0 to D3
+pci0: set ACPI power state D3 on \134_SB_.PCI0.EHC1
+pci0:0:27:0: Transition from D0 to D3
+pci0:0:29:7: Transition from D0 to D3
+pci0: set ACPI power state D3 on \134_SB_.PCI0.EHC0
+pci0:0:31:2: Transition from D0 to D3
+pcib0: failed to set ACPI power state D2 on \134_SB_.PCI0: AE_BAD_PARAMETER
acpi_lid0: run_prep cleaned up for \134_SB_.LID_
acpi_button0: run_prep cleaned up for \134_SB_.SLPB
+cpu0: set ACPI power state D0 on \134_PR_.CPU0
+cpu1: set ACPI power state D0 on \134_PR_.CPU1
+acpi_sysresource0: set ACPI power state D0 on \134_SB_.MEM_
+acpi_sysresource1: set ACPI power state D0 on \134_SB_.PCI0.LPC_.SIO_
+attimer0: set ACPI power state D0 on \134_SB_.PCI0.LPC_.TIMR
+hpet0: set ACPI power state D0 on \134_SB_.PCI0.LPC_.HPET
+atrtc0: set ACPI power state D0 on \134_SB_.PCI0.LPC_.RTC_
+acpi_ec0: set ACPI power state D0 on \134_SB_.PCI0.LPC_.EC__
+pci_link0: set ACPI power state D0 on \134_SB_.LNKA
+pci_link1: set ACPI power state D0 on \134_SB_.LNKB
+pci_link2: set ACPI power state D0 on \134_SB_.LNKC
+pci_link3: set ACPI power state D0 on \134_SB_.LNKD
+pci_link4: set ACPI power state D0 on \134_SB_.LNKE
+pci_link5: set ACPI power state D0 on \134_SB_.LNKF
+pci_link6: set ACPI power state D0 on \134_SB_.LNKG
+pci_link7: set ACPI power state D0 on \134_SB_.LNKH
+acpi_lid0: set ACPI power state D0 on \134_SB_.LID_
+acpi_button0: set ACPI power state D0 on \134_SB_.SLPB
+pcib0: set ACPI power state D0 on \134_SB_.PCI0
+acpi_tz0: set ACPI power state D0 on \134_TZ_.THM0
+acpi_tz1: set ACPI power state D0 on \134_TZ_.THM1
+atdma0: set ACPI power state D0 on \134_SB_.PCI0.LPC_.DMAC
+fpupnp0: set ACPI power state D0 on \134_SB_.PCI0.LPC_.FPU_
+atkbdc0: set ACPI power state D0 on \134_SB_.PCI0.LPC_.KBD_
+psmcpnp0: set ACPI power state D0 on \134_SB_.PCI0.LPC_.MOU_
+battery0: set ACPI power state D0 on \134_SB_.PCI0.LPC_.EC__.BAT0
+acpi_acad0: set ACPI power state D0 on \134_SB_.PCI0.LPC_.EC__.AC__
+acpi_ibm0: set ACPI power state D0 on \134_SB_.PCI0.LPC_.EC__.HKEY
pci0: set ACPI power state D0 on \134_SB_.PCI0.VID_
pci0: set ACPI power state D0 on \134_SB_.PCI0.IGBE
pci0: set ACPI power state D0 on \134_SB_.PCI0.USB3
@@ -60,8 +83,6 @@
pci0: set ACPI power state D0 on \134_SB_.PCI0.EXP2
pci0: set ACPI power state D0 on \134_SB_.PCI0.EXP3
vga0: calling BIOS POST
ahcich0: AHCI reset...
ahcich0: SATA connect time=100us status=00000123
ahcich0: AHCI reset: device found
@@ -77,25 +98,24 @@
ahcich0: AHCI reset: device ready after 100ms
-CPU0: local APIC error 0x40
-battery0: battery initialization done, tried 1 times
+CPU0: local APIC error 0x40
+battery0: battery initialization done, tried 1 times
+acpi_timer0: restoring timecounter, ACPI-fast -> HPET
-acpi_timer0: restoring timecounter, ACPI-fast -> HPET
smithi at x200:/root %
More information about the freebsd-mobile
mailing list