Skip to contentSkip to conversation

x86: Add Dell E5420 reboot quirk

PATCH In review Daniel J Blueman 3 participants 10 messages May 13, 2011 – Jul 21, 2011 1 message not in the archive x86

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 x86: Add Dell E5420 reboot quirk

Rebooting on the Dell E5420 often hangs with the keyboard method, but is reliable via the PCI method.

---
 arch/x86/kernel/reboot.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
arch/x86/kernel/reboot.c +8 -0
index 08c44b0..b16032d 100644
@@ -411,6 +411,14 @@ static struct dmi_system_id __initdata pci_reboot_dmi_table[] = {
 			DMI_MATCH(DMI_PRODUCT_NAME, "iMac9,1"),
 		},
 	},
+	{
+		.callback = set_pci_reboot,
+		.ident = "Dell Latitude E5420",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E5420"),
+		},
+	},
 	{ }
 };
 
Signature · 1 line
1.7.4.1

A message that is not in the archive (sent off-list or not yet received): [email protected]

#2 lore raw
Quoted 13 lines · H. Peter Anvin
Quoted 11 lines · Daniel J Blueman

Rebooting on the Dell E5420 often hangs with the keyboard method, but is reliable via the PCI method. Signed-off-by: Daniel J Blueman <[email protected]> --- arch/x86/kernel/reboot.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c index 08c44b0..b16032d 100644 --- a/arch/x86/kernel/reboot.c +++ b/arch/x86/kernel/reboot.c @@ -411,6 +411,14 @@ static struct dmi_system_id __initdata pci_reboot_dmi_table[] = { DMI_MATCH(DMI_PRODUCT_NAME, "iMac9,1"), }, }, + {
+ .callback = set_pci_reboot, + .ident = "Dell Latitude E5420", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E5420"), + }, + }, { } }; -- 1.7.4.1

Quoted 1 line

How does it work with ACPI?

All other reboot methods including ACPI are unreliable and seem to demonstrate the same failure probability; PCI is the only reliable method alas.

I guess the ACPI reboot method is the supported 'official' vector (and is what Windows uses [1]), so there must be some other constraints preventing it work as expected, unless the ACPI tables delivered to Linux are broken, would you say?

Daniel

[1] http://comments.gmane.org/gmane.linux.kernel/1122388

Signature · 1 line
Daniel J Blueman
#3 lore raw

Hi hpa, Thomas, Ingo,

Quoted 20 lines · Daniel J Blueman
Quoted 13 lines · H. Peter Anvin
Quoted 11 lines · Daniel J Blueman

Rebooting on the Dell E5420 often hangs with the keyboard method, but is reliable via the PCI method. Signed-off-by: Daniel J Blueman <[email protected]> --- arch/x86/kernel/reboot.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c index 08c44b0..b16032d 100644 --- a/arch/x86/kernel/reboot.c +++ b/arch/x86/kernel/reboot.c @@ -411,6 +411,14 @@ static struct dmi_system_id __initdata pci_reboot_dmi_table[] = { DMI_MATCH(DMI_PRODUCT_NAME, "iMac9,1"), }, }, + {
+ .callback = set_pci_reboot, + .ident = "Dell Latitude E5420", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E5420"), + }, + }, { } }; -- 1.7.4.1

Quoted 1 line

How does it work with ACPI?

All other reboot methods including ACPI are unreliable and seem to demonstrate the same failure probability; PCI is the only reliable method alas.

Quoted 8 lines

I guess the ACPI reboot method is the supported 'official' vector (and is what Windows uses [1]), so there must be some other constraints preventing it work as expected, unless the ACPI tables delivered to Linux are broken, would you say?

Daniel

[1] http://comments.gmane.org/gmane.linux.kernel/1122388

Without this patch, rebooting is like Russian roulette; with quite a few of these laptops in the field, perhaps it is better to enable the quirk unless you think there may be an issue in the kernel preventing correct behaviour that I could debug?

On the other hand, Dell may later fix the BIOS AML (seen with the excellent fwts) just as the cure for cancer is found. If they do, I'll buy whiskey too.

Thanks,
Daniel

Signature · 1 line
Daniel J Blueman
#4 lore raw
Quoted 10 lines · Daniel J Blueman

Without this patch, rebooting is like Russian roulette; with quite a few of these laptops in the field, perhaps it is better to enable the quirk unless you think there may be an issue in the kernel preventing correct behaviour that I could debug?

On the other hand, Dell may later fix the BIOS AML (seen with the excellent fwts) just as the cure for cancer is found. If they do, I'll buy whiskey too.

Enabling the quirk is the right thing; however, if ACPI worked I'd have preferred it since we just switched to ACPI as the default.

-hpa

Signature · 2 lines
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.
#5 lore raw
Quoted 7 lines · H. Peter Anvin
Quoted 6 lines · Daniel J Blueman

Without this patch, rebooting is like Russian roulette; with quite a few of these laptops in the field, perhaps it is better to enable the quirk unless you think there may be an issue in the kernel preventing correct behaviour that I could debug?

Quoted 6 lines
Quoted 3 lines

On the other hand, Dell may later fix the BIOS AML (seen with the excellent fwts) just as the cure for cancer is found. If they do, I'll buy whiskey too.

Enabling the quirk is the right thing; however, if ACPI worked I'd have preferred it since we just switched to ACPI as the default.

Indeed - the new and default ACPI reboot method works perfectly in 3.0-rc1, whereas with 2.6.39, it didn't, so no further need for this patch then.

Thanks again,
Daniel

Signature · 1 line
Daniel J Blueman
#6 lore raw
Quoted 12 lines · Daniel J Blueman
Quoted 10 lines · H. Peter Anvin
Quoted 9 lines · Daniel J Blueman

Without this patch, rebooting is like Russian roulette; with quite a few of these laptops in the field, perhaps it is better to enable the quirk unless you think there may be an issue in the kernel preventing correct behaviour that I could debug?

On the other hand, Dell may later fix the BIOS AML (seen with the excellent fwts) just as the cure for cancer is found. If they do, I'll buy whiskey too.

Quoted 6 lines
Quoted 2 lines

Enabling the quirk is the right thing; however, if ACPI worked I'd have preferred it since we just switched to ACPI as the default.

Indeed - the new and default ACPI reboot method works perfectly in 3.0-rc1, whereas with 2.6.39, it didn't, so no further need for this patch then.

Oh, okay. Dropping the patch, then.

-hpa

Signature · 2 lines
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.
#7 lore raw
In reply to Daniel J Blueman
Quoted 7 lines · Daniel J Blueman
Quoted 2 lines · H. Peter Anvin

Enabling the quirk is the right thing; however, if ACPI worked I'd have preferred it since we just switched to ACPI as the default.

Indeed - the new and default ACPI reboot method works perfectly in 3.0-rc1, whereas with 2.6.39, it didn't, so no further need for this patch then.

It's not entirely equivalent to the way the ACPI reboot method worked in previous kernels, so it should work better.

Signature · 1 line
Matthew Garrett | [email protected]
#8 lore raw
In reply to Daniel J Blueman
Quoted 12 lines · Daniel J Blueman
Quoted 10 lines · H. Peter Anvin
Quoted 9 lines · Daniel J Blueman

Without this patch, rebooting is like Russian roulette; with quite a few of these laptops in the field, perhaps it is better to enable the quirk unless you think there may be an issue in the kernel preventing correct behaviour that I could debug?

On the other hand, Dell may later fix the BIOS AML (seen with the excellent fwts) just as the cure for cancer is found. If they do, I'll buy whiskey too.

Quoted 6 lines
Quoted 2 lines

Enabling the quirk is the right thing; however, if ACPI worked I'd have preferred it since we just switched to ACPI as the default.

Indeed - the new and default ACPI reboot method works perfectly in 3.0-rc1, whereas with 2.6.39, it didn't, so no further need for this patch then.

I slipped up, since after finally now moving on from 2.6.39, I removed the 'reboot=p' boot parameter; it turns out that 3.0-rc1 through -rc5 do need this workaround; and the BIOS isn't changed. Honest. So, I didn't double-check that I had booted without it.

Can you queue up the patch please (earlier in the thread)? Probably we should consider it for stable too, due to the hassle it brings. Let me know if we should debug would be useful for this problem.

Thanks,
Daniel

Signature · 1 line
Daniel J Blueman
#9 lore raw

[tip:x86/urgent] x86: Make Dell Latitude E5420 use reboot=pci

In reply to Daniel J Blueman
Commit-ID:  f2b3178e66c132b81a59c5ff8b469fdee02aad4f
Gitweb:     http://git.kernel.org/tip/f2b3178e66c132b81a59c5ff8b469fdee02aad4f
Author:     Daniel J Blueman <[email protected]>
AuthorDate: Fri, 13 May 2011 09:04:59 +0800
Committer:  H. Peter Anvin <[email protected]>
CommitDate: Thu, 21 Jul 2011 11:19:01 -0700

x86: Make Dell Latitude E5420 use reboot=pci

Rebooting on the Dell E5420 often hangs with the keyboard or ACPI methods, but is reliable via the PCI method.

[ hpa: this was deferred because we believed for a long time that the
recent reshuffling of the boot priorities in commit 660e34cebf0a11d54f2d5dd8838607452355f321 fixed this platform. Unfortunately that turned out to be incorrect. ]

---
 arch/x86/kernel/reboot.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
arch/x86/kernel/reboot.c +8 -0
index 14eed21..3dfd38f 100644
@@ -427,6 +427,14 @@ static struct dmi_system_id __initdata pci_reboot_dmi_table[] = {
 			DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6320"),
 		},
 	},
+	{	/* Handle problems with rebooting on the Latitude E5420. */
+		.callback = set_pci_reboot,
+		.ident = "Dell Latitude E5420",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E5420"),
+		},
+	},
 	{ }
 };
 
#10 lore raw

[tip:x86/urgent] x86: Make Dell Latitude E5420 use reboot=pci

In reply to Daniel J Blueman
Commit-ID:  b7798d28ec15d20fd34b70fa57eb13f0cf6d1ecd
Gitweb:     http://git.kernel.org/tip/b7798d28ec15d20fd34b70fa57eb13f0cf6d1ecd
Author:     Daniel J Blueman <[email protected]>
AuthorDate: Fri, 13 May 2011 09:04:59 +0800
Committer:  H. Peter Anvin <[email protected]>
CommitDate: Thu, 21 Jul 2011 11:45:49 -0700

x86: Make Dell Latitude E5420 use reboot=pci

Rebooting on the Dell E5420 often hangs with the keyboard or ACPI methods, but is reliable via the PCI method.

[ hpa: this was deferred because we believed for a long time that the
recent reshuffling of the boot priorities in commit 660e34cebf0a11d54f2d5dd8838607452355f321 fixed this platform. Unfortunately that turned out to be incorrect. ]

---
 arch/x86/kernel/reboot.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
arch/x86/kernel/reboot.c +8 -0
index 14eed21..3dfd38f 100644
@@ -427,6 +427,14 @@ static struct dmi_system_id __initdata pci_reboot_dmi_table[] = {
 			DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6320"),
 		},
 	},
+	{	/* Handle problems with rebooting on the Latitude E5420. */
+		.callback = set_pci_reboot,
+		.ident = "Dell Latitude E5420",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E5420"),
+		},
+	},
 	{ }
 };