Investigating failed suspend/resume T61

Edward Tomasz Napierała trasz at FreeBSD.org
Wed Jun 4 17:17:18 UTC 2014


On 0604T0907, Sean Bruno wrote:
> On Thu, 2014-05-29 at 09:30 -0400, John Baldwin wrote:
> > On Thursday, May 29, 2014 9:16:41 am Sean Bruno wrote:
> > > On Wed, 2014-05-28 at 18:43 -0400, Jung-uk Kim wrote:
> > > > -----BEGIN PGP SIGNED MESSAGE-----
> > > > Hash: SHA1
> > > > 
> > > > On 2014-05-28 17:29:35 -0400, John Baldwin wrote:
> > > > > Err, I think it enables GPE1 as otherwise ACPICA assumes GPE1 has a
> > > > > length of zero (and is thus invalid)?
> > > > 
> > > > BTW, ACPI 5.0a (page 121) says:
> > > > 
> > > > "This is an optional field; if this register block is not supported,
> > > > this field contains zero."
> > > > 
> > > > Therefore, we must assume X_GPE1_BLK it is NOT supported.
> > > > 
> > > > Jung-uk Kim
> > > 
> > > So, reverting John's changes and applying yours seems to do new things
> > > while not quieting the old error messages.  Perhaps this is significant?
> > > 
> > > real memory  = 2147483648 (2048 MB)
> > > avail memory = 2007089152 (1914 MB)
> > > Event timer "LAPIC" quality 400
> > > ACPI APIC Table: <LENOVO TP-7U   >
> > > FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
> > > FreeBSD/SMP: 1 package(s) x 2 core(s)
> > >  cpu0 (BSP): APIC ID:  0
> > >  cpu1 (AP): APIC ID:  1
> > > ACPI BIOS Warning (bug): 32/64X length mismatch in FADT/Gpe1Block: 0/32
> > > (20130823/tbfadt-601)
> > > ACPI BIOS Warning (bug): Optional FADT field Gpe1Block has zero address
> > > or length: 0x000000000000102C/0x0 (20130823/tbfadt-630)
> > > ioapic0: Changing APIC ID to 1
> > > ioapic0 <Version 2.0> irqs 0-23 on motherboard
> > > random: <Software, Yarrow> initialized
> > > kbd1 at kbdmux0
> > > acpi0: <LENOVO TP-7U> on motherboard
> > > CPU0: local APIC error 0x40
> > > ACPI Error: GPE0 block (GPE 0 to 31) overlaps the GPE1 block (GPE 0 to
> > > 15) - Ignoring GPE1 (20130823/evgpeinit-178)
> > 
> > Actually, I think all these patches are changing nothing, and this actually
> > points out that I misread your FADT at the first.  GPE1 should actually be
> > ignored since it does in fact overlap.  Can you just try reverting all your
> > changes and seeing if suspend/resume works?
> > 
> 
> 
> Boy oh boy ... talk about a waste of time.
> 
> trasz@ and I have the same laptop and I just confirmed with him that the
> patch does nothing useful (as both of you suggested).  The *ACTUAL*
> problem seems to be related to disabling devices in the Thinkpad BIOS.


Yup.  The culprit seems to be the "Security -> IO Port Access -> Modem"
BIOS control: setting it to disabled breaks resume; the AcpiEnterSleepState()
never returns.

With that option set to enabled, the suspend/resume works seems to work
flawlessly on T61 with Intel graphics, with VT kernel and i915kms.ko,
on 11-CURRENT/amd64 from a few days ago, without any patches or special
sysctl/tunables.  The following messages are still displayed at boot,
but seem harmless:

ACPI BIOS Warning (bug): 32/64X length mismatch in FADT/Gpe1Block: 0/32 (20130823/tbfadt-601)
ACPI BIOS Warning (bug): Optional FADT field Gpe1Block has zero address or length: 0x000000000000102C/0x0 (20130823/tbfadt-630)

[..]

acpi0: <LENOVO TP-7L> on motherboard
acpi0: failed to install _OSI("Windows 2006"): AE_ALREADY_EXISTS
CPU0: local APIC error 0x40
acpi_ec0: <Embedded Controller: GPE 0x12, ECDT> port 0x62,0x66 on acpi0
acpi0: Power Button (fixed)
acpi0: reservation of 0, a0000 (3) failed
acpi0: reservation of 100000, 7df00000 (3) failed



More information about the freebsd-acpi mailing list