Suspend regression in stable kernel 2.6.27.4 on Mac mini Core Duo
Hi,
my Mac mini Core Duo doesn't wake up from suspend to RAM anymore with 2.6.27.4. It works with 2.6.27.3. I enabled pm_trace, but dmesg | grep "hash matches" didn't show anything after resume. I tried 2.6.27.5, which also failed to resume.
The system is i386, the hardware is basically Intel based: Core Duo T2300 CPU, Intel graphics i945, ICH7, Marvell GbE (sky2), a SATA hard disk, PATA DVD drive, a Firewire hard disk, and a lot of USB devices.
Does that ring any bells? Any hints what commit I should try to revert?
Regards,
Tino
Quoted 7 lines · Tino Keitel
Hi,
my Mac mini Core Duo doesn't wake up from suspend to RAM anymore with 2.6.27.4. It works with 2.6.27.3. I enabled
pm_trace, but dmesg | grep "hash matches" didn't show anything after resume. I tried 2.6.27.5, which also failed to resume.
Quoted 5 lines
The system is i386, the hardware is basically Intel based: Core Duo T2300 CPU, Intel graphics i945, ICH7, Marvell GbE (sky2), a SATA hard disk, PATA DVD drive, a Firewire hard disk, and a lot of USB devices.
Does that ring any bells? Any hints what commit I should try to revert?
Can you run 'git bisect' on the patches in 2.6.27.4 to see which one broke your box?
thanks,
greg k-h
Quoted 8 lines · Greg KH
Quoted 7 lines · Tino Keitel
Hi,
my Mac mini Core Duo doesn't wake up from suspend to RAM anymore with 2.6.27.4. It works with 2.6.27.3. I enabled
pm_trace, but dmesg | grep "hash matches" didn't show anything after resume. I tried 2.6.27.5, which also failed to resume.
Quoted 8 lines
Quoted 5 lines
The system is i386, the hardware is basically Intel based: Core Duo T2300 CPU, Intel graphics i945, ICH7, Marvell GbE (sky2), a SATA hard disk, PATA DVD drive, a Firewire hard disk, and a lot of USB devices.
Does that ring any bells? Any hints what commit I should try to revert?
Can you run 'git bisect' on the patches in 2.6.27.4 to see which one broke your box?
I would start from these commits:
3b987ac961486373f91191b14291b331fa546072 "ACPI suspend: Always use the 32-bit waking vector"
66036f5862883fcc9f7ff8550685a5a3de1a57e4
"ACPI Suspend: Enable ACPI during resume if SCI_EN is not set"
If none of them causes this problem to happen, I have no idea what can, so please bisect in this case.
If any of them breaks suspend for you, we'd have to find out why, because both of them are rather important bug fixes.
Thanks,
Rafael
Quoted 18 lines · Rafael J. Wysocki
Quoted 8 lines · Greg KH
Quoted 7 lines · Tino Keitel
Hi,
my Mac mini Core Duo doesn't wake up from suspend to RAM anymore with 2.6.27.4. It works with 2.6.27.3. I enabled
pm_trace, but dmesg | grep "hash matches" didn't show anything after resume. I tried 2.6.27.5, which also failed to resume.Quoted 8 lines
Quoted 5 lines
The system is i386, the hardware is basically Intel based: Core Duo T2300 CPU, Intel graphics i945, ICH7, Marvell GbE (sky2), a SATA hard disk, PATA DVD drive, a Firewire hard disk, and a lot of USB devices.
Does that ring any bells? Any hints what commit I should try to revert?
Can you run 'git bisect' on the patches in 2.6.27.4 to see which one broke your box?
Quoted 7 lines
I would start from these commits:
3b987ac961486373f91191b14291b331fa546072"ACPI suspend: Always use the 32-bit waking vector"
66036f5862883fcc9f7ff8550685a5a3de1a57e4
"ACPI Suspend: Enable ACPI during resume ifSCI_ENis not set"
Thanks Rafael, 2.6.27.5 with 66036f5862883fcc9f7ff8550685a5a3de1a57e4 reverted resumes fine.
Regards,
Tino
Quoted 18 lines · Rafael J. Wysocki
Quoted 8 lines · Greg KH
Quoted 7 lines · Tino Keitel
Hi,
my Mac mini Core Duo doesn't wake up from suspend to RAM anymore with 2.6.27.4. It works with 2.6.27.3. I enabled
pm_trace, but dmesg | grep "hash matches" didn't show anything after resume. I tried 2.6.27.5, which also failed to resume.Quoted 8 lines
Quoted 5 lines
The system is i386, the hardware is basically Intel based: Core Duo T2300 CPU, Intel graphics i945, ICH7, Marvell GbE (sky2), a SATA hard disk, PATA DVD drive, a Firewire hard disk, and a lot of USB devices.
Does that ring any bells? Any hints what commit I should try to revert?
Can you run 'git bisect' on the patches in 2.6.27.4 to see which one broke your box?
Quoted 7 lines
I would start from these commits:
3b987ac961486373f91191b14291b331fa546072"ACPI suspend: Always use the 32-bit waking vector"
66036f5862883fcc9f7ff8550685a5a3de1a57e4
"ACPI Suspend: Enable ACPI during resume ifSCI_ENis not set"
Thanks Rafael, 2.6.27.5 with 66036f5862883fcc9f7ff8550685a5a3de1a57e4 reverted resumes fine.
Regards,
Tino
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Quoted 21 lines · Tino Keitel
Quoted 20 lines · Rafael J. Wysocki
Quoted 8 lines · Greg KH
Quoted 7 lines · Tino Keitel
Hi,
my Mac mini Core Duo doesn't wake up from suspend to RAM anymore with 2.6.27.4. It works with 2.6.27.3. I enabled
pm_trace, but dmesg | grep "hash matches" didn't show anything after resume. I tried 2.6.27.5, which also failed to resume.Quoted 8 lines
Quoted 5 lines
The system is i386, the hardware is basically Intel based: Core Duo T2300 CPU, Intel graphics i945, ICH7, Marvell GbE (sky2), a SATA hard disk, PATA DVD drive, a Firewire hard disk, and a lot of USB devices.
Does that ring any bells? Any hints what commit I should try to revert?
Can you run 'git bisect' on the patches in 2.6.27.4 to see which one broke your box?
I would start from these commits:
Quoted 8 lines
Quoted 5 lines
3b987ac961486373f91191b14291b331fa546072"ACPI suspend: Always use the 32-bit waking vector"
66036f5862883fcc9f7ff8550685a5a3de1a57e4
"ACPI Suspend: Enable ACPI during resume ifSCI_ENis not set"Thanks Rafael, 2.6.27.5 with
66036f5862883fcc9f7ff8550685a5a3de1a57e4reverted resumes fine.
This really is not a good news, because this commit evidently fixes at least several systems.
First, let's try to remove things that we shouldn't be doing.
Please apply the patch below to 2.6.27.5 without reverting that commit and see if that works.
Thanks,
Rafael
--- drivers/acpi/pci_link.c | 4 ---- 1 file changed, 4 deletions(-)
drivers/acpi/pci_link.c +0 -4
@@ -796,10 +796,6 @@ static int irqrouter_resume(struct sys_dstruct list_head *node =NULL ;struct acpi_pci_link *link =NULL ; - -/* Make sure SCI is enabled again (Apple firmware bug?) */ -acpi_set_register (ACPI_BITREG_SCI_ENABLE ,1 ); -list_for_each (node, &acpi_link.entries) { link = list_entry(node, struct acpi_pci_link, node);if (!link) {
On Tue, Nov 11, 2008 at 15:16:08 +0100, Rafael J. Wysocki wrote:
[...]
Quoted 7 lines
This really is not a good news, because this commit evidently fixes at least several systems.
First, let's try to remove things that we shouldn't be doing.
Please apply the patch below to 2.6.27.5 without reverting that commit and see if that works.
It doesn't work. 2.6.27.5 with the patch applied hangs at resume.
Regards,
Tino
Quoted 7 lines · Tino Keitel
On Tue, Nov 11, 2008 at 15:16:08 +0100, Rafael J. Wysocki wrote:
[...]
Quoted 3 lines
This really is not a good news, because this commit evidently fixes at least several systems.
Quoted 6 lines
Quoted 4 lines
First, let's try to remove things that we shouldn't be doing.
Please apply the patch below to 2.6.27.5 without reverting that commit and see if that works.
It doesn't work. 2.6.27.5 with the patch applied hangs at resume.
Well, this appears to be a broken BIOS thing. Perhaps we'll have to blacklist the box or something.
Is there any possibility to get some information about where exactly it hangs?
Rafael
Quoted 13 lines · Rafael J. Wysocki
Quoted 12 lines · Tino Keitel
On Tue, Nov 11, 2008 at 15:16:08 +0100, Rafael J. Wysocki wrote:
[...]
Quoted 7 lines
This really is not a good news, because this commit evidently fixes at least several systems.
First, let's try to remove things that we shouldn't be doing.
Please apply the patch below to 2.6.27.5 without reverting that commit and see if that works.
Quoted 6 lines
Quoted 1 line
It doesn't work. 2.6.27.5 with the patch applied hangs at resume.
Well, this appears to be a broken BIOS thing. Perhaps we'll have to blacklist the box or something.
Is there any possibility to get some information about where exactly it hangs?
Also, can you check this patch on top of 2.6.27.4 and see what happens?
Rafael
--- drivers/acpi/pci_link.c | 4 ---- drivers/acpi/sleep/main.c | 3 ++- 2 files changed, 2 insertions(+), 5 deletions(-)
drivers/acpi/pci_link.c +0 -4
@@ -796,10 +796,6 @@ static int irqrouter_resume(struct sys_dstruct list_head *node =NULL ;struct acpi_pci_link *link =NULL ; - -/* Make sure SCI is enabled again (Apple firmware bug?) */ -acpi_set_register (ACPI_BITREG_SCI_ENABLE ,1 ); -list_for_each (node, &acpi_link.entries) { link = list_entry(node, struct acpi_pci_link, node);if (!link) {
drivers/acpi/sleep/main.c +2 -1
@@ -249,7 +249,8 @@ static int acpi_suspend_enter(suspend_st }/* If ACPI is not enabled by the BIOS, we need to enable it here. */ -acpi_enable (); +acpi_set_register (ACPI_BITREG_SCI_ENABLE ,1 ); +/*acpi_enable();*/ /* Reprogram control registers and execute _BFS */ acpi_leave_sleep_state_prep (acpi_state);
On Wed, Nov 12, 2008 at 01:03:54 +0100, Rafael J. Wysocki wrote:
[...]
Quoted 1 line
Also, can you check this patch on top of 2.6.27.4 and see what happens?
With that patch, resume works (although I used 2.6.27.5 and not 2.6.27.5, if that matters).
Regards,
Tino
Quoted 8 lines · Tino Keitel
On Wed, Nov 12, 2008 at 01:03:54 +0100, Rafael J. Wysocki wrote:
[...]
Quoted 1 line
Also, can you check this patch on top of 2.6.27.4 and see what happens?
With that patch, resume works (although I used 2.6.27.5 and not 2.6.27.5, if that matters).
It shouldn't really matter.
Thanks for testing and please send me the output of dmidecode. It seems that blacklisting may be the only way to handle your box. :-(
Thanks,
Rafael
Quoted 7 lines · Rafael J. Wysocki
Quoted 6 lines · Tino Keitel
On Wed, Nov 12, 2008 at 01:03:54 +0100, Rafael J. Wysocki wrote:
[...]
Quoted 1 line
Also, can you check this patch on top of 2.6.27.4 and see what happens?
Quoted 7 lines
Quoted 2 lines
With that patch, resume works (although I used 2.6.27.5 and not 2.6.27.5, if that matters).
It shouldn't really matter.
Thanks for testing and please send me the output of dmidecode. It seems that blacklisting may be the only way to handle your box. :-(
Attached.
Regards,
Tino
# dmidecode 2.9 SMBIOS 2.4 present. 39 structures occupying 1542 bytes. Table at 0x000E73F0.
Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: Apple Computer, Inc.
Version: MM11.88Z.0055.B08.0610121326
Release Date: 10/12/06
ROM Size: 2048 kB
Characteristics:
PCI is supported
BIOS is upgradeable
BIOS shadowing is allowed
Boot from CD is supported
Selectable boot is supported
ACPI is supported
IEEE 1394 boot is supported
Smart battery is supported
Function key-initiated network boot is supported
BIOS Revision: 0.1
Handle 0x0001, DMI type 1, 27 bytes System Information
Manufacturer: Apple Computer, Inc. Product Name: Macmini1,1
Version: 1.0
Serial Number: XXX
UUID: XXX
Wake-up Type: Power Switch SKU Number: System SKUNumber
Family: Napa Mac
Handle 0x0002, DMI type 2, 16 bytes Base Board Information
Manufacturer: Apple Computer, Inc. Product Name: Mac-F4208EC8
Version: PVT
Serial Number: 1
Asset Tag: Base Board Asset Tag Features:
Board is a hosting board Board is replaceable
Location In Chassis: Part Component Chassis Handle: 0x0003
Type: Unknown
Contained Object Handles: 0
Handle 0x0003, DMI type 3, 21 bytes Chassis Information
Manufacturer: Apple Computer, Inc.
Type: Low Profile Desktop
Lock: Not Present
Version: Mac-F4208EC8 Serial Number: XXX
Asset Tag: Asset Tag Boot-up State: Safe
Power Supply State: Safe Thermal State: Other Security Status: Other
OEM Information: 0x00000000
Height: Unspecified
Number Of Power Cords: Unspecified Contained Elements: 0
Handle 0x0004, DMI type 32, 20 bytes System Boot Information
Status: No errors detected
Handle 0x0005, DMI type 13, 22 bytes
BIOS Language Information
Installable Languages: 1
<BAD INDEX>
Currently Installed Language: Not Specified
Handle 0x0106, DMI type 12, 5 bytes System Configuration Options
Handle 0x0107, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: None Internal Connector Type: None External Reference Designator: Ethernet External Connector Type: RJ-45 Port Type: Network Port
Handle 0x0108, DMI type 8, 9 bytes Port Connector Information
Internal Reference Designator: None Internal Connector Type: None External Reference Designator: DVI External Connector Type: Other Port Type: Video Port
Handle 0x0109, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: None Internal Connector Type: None External Reference Designator: USB0 External Connector Type: Access Bus (USB) Port Type: USB
Handle 0x010A, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: None Internal Connector Type: None External Reference Designator: USB1 External Connector Type: Access Bus (USB) Port Type: USB
Handle 0x010B, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: None Internal Connector Type: None External Reference Designator: USB2 External Connector Type: Access Bus (USB) Port Type: USB
Handle 0x010C, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: None Internal Connector Type: None External Reference Designator: USB3 External Connector Type: Access Bus (USB) Port Type: USB
Handle 0x010D, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: None Internal Connector Type: None External Reference Designator: FireWire0 External Connector Type: IEEE 1394 Port Type: Firewire (IEEE P1394)
Handle 0x010E, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: None Internal Connector Type: None External Reference Designator: iPod Dock External Connector Type: Other Port Type: Other
Handle 0x010F, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: None Internal Connector Type: None
External Reference Designator: Audio Line In External Connector Type: Mini Jack (headphones) Port Type: Audio Port
Handle 0x0110, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: None Internal Connector Type: None
External Reference Designator: Audio Line Out External Connector Type: Mini Jack (headphones) Port Type: Audio Port
Handle 0x0111, DMI type 9, 13 bytes System Slot Information
Designation: AirPort
Type: x1 PCI Express
Current Usage: Available
Length: Short
ID: 2
Characteristics:
3.3 V is provided Hot-plug devices are supported SMBus signal is supported
Handle 0x0112, DMI type 10, 6 bytes
On Board Device Information
Type: Video
Status: Enabled
Description: Integrated Graphics Controller
Handle 0x0113, DMI type 10, 6 bytes
On Board Device Information
Type: Ethernet
Status: Enabled
Description: Yukon Ethernet Controller
Handle 0x0114, DMI type 10, 6 bytes On Board Device Information
Type: Sound
Status: Enabled
Description: Azalia Audio Codec
Handle 0x0115, DMI type 10, 6 bytes On Board Device Information
Type: Other
Status: Enabled
Description: SATA
Handle 0x0116, DMI type 10, 6 bytes On Board Device Information
Type: Other
Status: Enabled
Description: PATA
Handle 0x0117, DMI type 136, 6 bytes OEM-specific Type
Header and Data: 88 06 17 01 00 00
Handle 0x0118, DMI type 4, 35 bytes Processor Information
Socket Designation: U2E1
Type: Central Processor
Family: Unknown
Manufacturer: Intel(R) Corporation
ID: E8 06 00 00 FF FB E9 BF
Version: Genuine Intel(R) CPU T
Voltage: 1.6 V
External Clock: 166 MHz
Max Speed: 1660 MHz
Current Speed: 1660 MHz
Status: Populated, Enabled
Upgrade: ZIF Socket
L1 Cache Handle: 0x011B
L2 Cache Handle: 0x0119
L3 Cache Handle: Not Provided Serial Number: Not Specified Asset Tag: Unknown
Part Number: Not Specified
Handle 0x0119, DMI type 7, 19 bytes
Cache Information
Socket Designation: Unknown
Configuration: Enabled, Not Socketed, Level 2 Operational Mode: Write Back
Location: Internal
Installed Size: 2048 KB
Maximum Size: 2048 KB
Supported SRAM Types:
Asynchronous
Installed SRAM Type: Asynchronous
Speed: Unknown
Error Correction Type: Single-bit ECC System Type: Unified
Associativity: 8-way Set-associative
Handle 0x011A, DMI type 7, 19 bytes
Cache Information
Socket Designation: Unknown
Configuration: Enabled, Not Socketed, Level 1 Operational Mode: Write Back
Location: Internal
Installed Size: 32 KB
Maximum Size: 32 KB
Supported SRAM Types:
Asynchronous
Installed SRAM Type: Asynchronous
Speed: Unknown
Error Correction Type: Single-bit ECC System Type: Instruction
Associativity: 8-way Set-associative
Handle 0x011B, DMI type 7, 19 bytes
Cache Information
Socket Designation: Unknown
Configuration: Enabled, Not Socketed, Level 1 Operational Mode: Write Back
Location: Internal
Installed Size: 32 KB
Maximum Size: 32 KB
Supported SRAM Types:
Asynchronous
Installed SRAM Type: Asynchronous
Speed: Unknown
Error Correction Type: Single-bit ECC System Type: Data
Associativity: 8-way Set-associative
Handle 0x011C, DMI type 4, 35 bytes Processor Information
Socket Designation: U2E1
Type: Central Processor
Family: Unknown
Manufacturer: Intel(R) Corporation
ID: E8 06 00 00 FF FB E9 BF
Version: Genuine Intel(R) CPU T
Voltage: 1.6 V
External Clock: 166 MHz
Max Speed: 1660 MHz
Current Speed: 1660 MHz
Status: Populated, Enabled
Upgrade: ZIF Socket
L1 Cache Handle: 0x011F
L2 Cache Handle: 0x011D
L3 Cache Handle: Not Provided Serial Number: Not Specified Asset Tag: Unknown
Part Number: Not Specified
Handle 0x011D, DMI type 7, 19 bytes
Cache Information
Socket Designation: Unknown
Configuration: Enabled, Not Socketed, Level 2 Operational Mode: Write Back
Location: Internal
Installed Size: 2048 KB
Maximum Size: 2048 KB
Supported SRAM Types:
Asynchronous
Installed SRAM Type: Asynchronous
Speed: Unknown
Error Correction Type: Single-bit ECC System Type: Unified
Associativity: 8-way Set-associative
Handle 0x011E, DMI type 7, 19 bytes
Cache Information
Socket Designation: Unknown
Configuration: Enabled, Not Socketed, Level 1 Operational Mode: Write Back
Location: Internal
Installed Size: 32 KB
Maximum Size: 32 KB
Supported SRAM Types:
Asynchronous
Installed SRAM Type: Asynchronous
Speed: Unknown
Error Correction Type: Single-bit ECC System Type: Instruction
Associativity: 8-way Set-associative
Handle 0x011F, DMI type 7, 19 bytes
Cache Information
Socket Designation: Unknown
Configuration: Enabled, Not Socketed, Level 1 Operational Mode: Write Back
Location: Internal
Installed Size: 32 KB
Maximum Size: 32 KB
Supported SRAM Types:
Asynchronous
Installed SRAM Type: Asynchronous
Speed: Unknown
Error Correction Type: Single-bit ECC System Type: Data
Associativity: 8-way Set-associative
Handle 0x0120, DMI type 16, 15 bytes Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: None Maximum Capacity: 4 GB
Error Information Handle: Not Provided Number Of Devices: 2
Handle 0x0121, DMI type 17, 27 bytes
Memory Device
Array Handle: 0x0120
Error Information Handle: Not Provided Total Width: 64 bits
Data Width: 64 bits
Size: 512 MB
Form Factor: DIMM
Set: None
Locator: DIMM0
Bank Locator: BANK 0
Type: DDR2
Type Detail: Synchronous
Speed: 667 MHz (1.5 ns)
Manufacturer: 0xAD00000000000000
Serial Number: 0x00006201
Asset Tag: Unknown
Part Number: 0x48594D503536345336344350362D59352020
Handle 0x0122, DMI type 20, 19 bytes Memory Device Mapped Address
Starting Address: 0x00000000000 Ending Address: 0x0001FFFFFFF Range Size: 512 MB Physical Device Handle: 0x0121 Memory Array Mapped Address Handle: 0x0125 Partition Row Position: 1 Interleave Position: 1 Interleaved Data Depth: 1
Handle 0x0123, DMI type 17, 27 bytes
Memory Device
Array Handle: 0x0120
Error Information Handle: Not Provided Total Width: 64 bits
Data Width: 64 bits
Size: 512 MB
Form Factor: DIMM
Set: None
Locator: DIMM1
Bank Locator: BANK 1
Type: DDR2
Type Detail: Synchronous
Speed: 667 MHz (1.5 ns)
Manufacturer: 0x2CFFFFFFFFFFFFFF
Serial Number: 0x49191A8B
Asset Tag: Unknown
Part Number: 0x38485446363436344844592D363637423320
Handle 0x0124, DMI type 20, 19 bytes Memory Device Mapped Address
Starting Address: 0x00020000000 Ending Address: 0x0003FFFFFFF Range Size: 512 MB Physical Device Handle: 0x0123 Memory Array Mapped Address Handle: 0x0125 Partition Row Position: 2 Interleave Position: 2 Interleaved Data Depth: 1
Handle 0x0125, DMI type 19, 15 bytes Memory Array Mapped Address
Starting Address: 0x00000000000 Ending Address: 0x0003FFFFFFF Range Size: 1 GB Physical Array Handle: 0x0120 Partition Width: 0
Handle 0xFFFD, DMI type 127, 4 bytes End Of Table
Quoted 11 lines · Tino Keitel
Quoted 10 lines · Rafael J. Wysocki
Quoted 8 lines · Tino Keitel
On Wed, Nov 12, 2008 at 01:03:54 +0100, Rafael J. Wysocki wrote:
[...]
Quoted 1 line
Also, can you check this patch on top of 2.6.27.4 and see what happens?
With that patch, resume works (although I used 2.6.27.5 and not 2.6.27.5, if that matters).
Quoted 6 lines
Quoted 4 lines
It shouldn't really matter.
Thanks for testing and please send me the output of dmidecode. It seems that blacklisting may be the only way to handle your box. :-(
Attached.
Please try the appended patch on top of the Linus' tree.
Thanks,
Rafael
--- drivers/acpi/sleep/main.c | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-)
drivers/acpi/sleep/main.c +39 -1
@@ -104,6 +104,18 @@ void __init acpi_s4_no_nvs(void) s4_no_nvs = true; } +/* +* According to the ACPI specification the BIOS should make sure that ACPI is +* enabled and SCI_EN bit is set on wake-up from S1 - S3 sleep states. Still, +* some BIOSes don't do that and therefore we use acpi_enable() to enable ACPI +* on such systems during resume. Unfortunately that doesn't help in +* particularly pathological cases in which SCI_EN has to be set directly on +* resume, although the specification states very clearly that this flag is +* owned by the hardware. The set_sci_en_on_resume variable will be set in such +* cases. +*/ +static bool set_sci_en_on_resume; +/** * acpi_pm_disable_gpes - Disable the GPEs. */
@@ -249,7 +261,11 @@ static int acpi_suspend_enter(suspend_st }/* If ACPI is not enabled by the BIOS, we need to enable it here. */ -acpi_enable (); +if (set_sci_en_on_resume) +acpi_set_register (ACPI_BITREG_SCI_ENABLE ,1 ); +else +acpi_enable (); +/* Reprogram control registers and execute _BFS */ acpi_leave_sleep_state_prep (acpi_state);
@@ -337,6 +353,12 @@ static int __init init_old_suspend_orderreturn 0 ; } +static int __init init_set_sci_en_on_resume (const struct dmi_system_id *d) +{ + set_sci_en_on_resume = true; +return 0 ; +} +static struct dmi_system_id __initdata acpisleep_dmi_table[] = { { .callback = init_old_suspend_ordering,
@@ -354,6 +376,22 @@ static struct dmi_system_id __initdata a DMI_MATCH(DMI_PRODUCT_NAME, "HP xw4600 Workstation"), }, }, + { + .callback = init_set_sci_en_on_resume, + .ident = "Apple MacBook 1,1", + .matches = { +DMI_MATCH (DMI_SYS_VENDOR ,"Apple Computer, Inc." ), + DMI_MATCH(DMI_PRODUCT_NAME, "MacBook1,1"), + }, + }, + { + .callback = init_set_sci_en_on_resume, + .ident = "Apple MacMini 1,1", + .matches = { +DMI_MATCH (DMI_SYS_VENDOR ,"Apple Computer, Inc." ), + DMI_MATCH(DMI_PRODUCT_NAME, "Macmini1,1"), + }, + }, {}, };#endif /* CONFIG_SUSPEND */
Quoted 12 lines · Rafael J. Wysocki
Quoted 11 lines · Tino Keitel
Quoted 10 lines · Rafael J. Wysocki
Quoted 8 lines · Tino Keitel
On Wed, Nov 12, 2008 at 01:03:54 +0100, Rafael J. Wysocki wrote:
[...]
Quoted 1 line
Also, can you check this patch on top of 2.6.27.4 and see what happens?
With that patch, resume works (although I used 2.6.27.5 and not 2.6.27.5, if that matters).
Quoted 8 lines
Quoted 6 lines
Quoted 4 lines
It shouldn't really matter.
Thanks for testing and please send me the output of dmidecode. It seems that blacklisting may be the only way to handle your box. :-(
Attached.
Please try the appended patch on top of the Linus' tree.
This patch also applies to current -stable, so you can test it on top of that.
I need your confirmation that the patch works to push it upstream.
Thanks,
Rafael
Quoted 82 lines
--- drivers/acpi/sleep/main.c | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-)Index:
linux-2.6/drivers/acpi/sleep/main.c
===================================================================drivers/acpi/sleep/main.c +39
-2@@ -104,6 +104,18 @@ void __init acpi_s4_no_nvs(void) s4_no_nvs = true; } +/* +* According to the ACPI specification the BIOS should make sure that ACPI is +* enabled and SCI_EN bit is set on wake-up from S1 - S3 sleep states. Still, +* some BIOSes don't do that and therefore we use acpi_enable() to enable ACPI +* on such systems during resume. Unfortunately that doesn't help in +* particularly pathological cases in which SCI_EN has to be set directly on +* resume, although the specification states very clearly that this flag is +* owned by the hardware. The set_sci_en_on_resume variable will be set in such +* cases. +*/ +static bool set_sci_en_on_resume; +/** * acpi_pm_disable_gpes - Disable the GPEs. */ @@ -249,7 +261,11 @@ static int acpi_suspend_enter(suspend_st }/* If ACPI is not enabled by the BIOS, we need to enable it here. */ -acpi_enable (); +if (set_sci_en_on_resume) +acpi_set_register (ACPI_BITREG_SCI_ENABLE ,1 ); +else +acpi_enable (); +/* Reprogram control registers and execute _BFS */ acpi_leave_sleep_state_prep (acpi_state);@@ -337,6 +353,12 @@ static int __init init_old_suspend_orderreturn 0 ; } +static int __init init_set_sci_en_on_resume (const struct dmi_system_id *d) +{ + set_sci_en_on_resume = true; +return 0 ; +} +static struct dmi_system_id __initdata acpisleep_dmi_table[] = { { .callback = init_old_suspend_ordering,@@ -354,6 +376,22 @@ static struct dmi_system_id __initdata a DMI_MATCH(DMI_PRODUCT_NAME, "HP xw4600 Workstation"), }, }, + { + .callback = init_set_sci_en_on_resume, + .ident = "Apple MacBook 1,1", + .matches = { +DMI_MATCH (DMI_SYS_VENDOR ,"Apple Computer, Inc." ), + DMI_MATCH(DMI_PRODUCT_NAME, "MacBook1,1"), + }, + }, + { + .callback = init_set_sci_en_on_resume, + .ident = "Apple MacMini 1,1", + .matches = { +DMI_MATCH (DMI_SYS_VENDOR ,"Apple Computer, Inc." ), + DMI_MATCH(DMI_PRODUCT_NAME, "Macmini1,1"), + }, + }, {}, };#endif /* CONFIG_SUSPEND */ --To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Signature · 3 lines
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? --- Brian Kernighan
Quoted 6 lines · Rafael J. Wysocki
Quoted 1 line · Rafael J. Wysocki
On Thursday, 13 of November 2008, Tino Keitel wrote:
This patch also applies to current -stable, so you can test it on top of that.
I need your confirmation that the patch works to push it upstream.
I can at least confirm the Macbook side of this works fine.
Signature · 1 line
Bob Copeland %% www.bobcopeland.com
Quoted 1 line · Rafael J. Wysocki
On Thursday, 13 of November 2008, Rafael J. Wysocki wrote:
[...]
Quoted 5 lines
Quoted 1 line
Please try the appended patch on top of the Linus' tree.
This patch also applies to current -stable, so you can test it on top of that.
I need your confirmation that the patch works to push it upstream.
Hi,
I saw that 2.6.27.8 still missed that fix, maybe because I forgot to send any confirmation. So, yes, this patch fixes the regression for me.
Regards,
Tino
Quoted 7 lines · Tino Keitel
Quoted 1 line · Rafael J. Wysocki
On Thursday, 13 of November 2008, Rafael J. Wysocki wrote:
[...]
Quoted 2 lines
Quoted 1 line
Please try the appended patch on top of the Linus' tree.
Quoted 8 lines
Quoted 3 lines
This patch also applies to current -stable, so you can test it on top of that.
I need your confirmation that the patch works to push it upstream.
Hi,
I saw that 2.6.27.8 still missed that fix, maybe because I forgot to send any confirmation. So, yes, this patch fixes the regression for me.
Thanks.
I sent the inclusion request to -stable, but apparently it was too late for 2.6.27.8.
Rafael
On Wed, Nov 12, 2008 at 00:48:06 +0100, Rafael J. Wysocki wrote:
[...]
Quoted 2 lines
Is there any possibility to get some information about where exactly it hangs?
Any idea how to do this? I already tried pm_trace, and there isn't a serial interface. The screen is black when it hangs.
Regards,
Tino