public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* DMI updates from 2.4
@ 2004-01-23  6:35 davej
  2004-01-23  7:37 ` Andrew Morton
  2004-01-23 13:32 ` Matt Domsch
  0 siblings, 2 replies; 6+ messages in thread
From: davej @ 2004-01-23  6:35 UTC (permalink / raw)
  To: linux-kernel; +Cc: torvalds, akpm

A lot of the blacklists never made it forward, here's what I found
still lying around in my old 2.5 tree when I brought it up to date.

I think 2.4 has had more updates since then (and there may be
some entries languishing in vendor 2.4 trees), I'll take a peek
when I get some spare cycles.

    Dave


diff -urpN --exclude-from=/home/davej/.exclude bk-linus/arch/i386/kernel/apm.c linux-2.5/arch/i386/kernel/apm.c
--- bk-linus/arch/i386/kernel/apm.c	2004-01-21 15:58:34.000000000 +0000
+++ linux-2.5/arch/i386/kernel/apm.c	2004-01-21 17:46:22.000000000 +0000
@@ -844,6 +844,8 @@ recalc:
 		idle_percentage *= 100;
 		idle_percentage /= jiffies_since_last_check;
 		use_apm_idle = (idle_percentage > idle_threshold);
+		if (apm_info.forbid_idle)
+			use_apm_idle = 0;
 		last_jiffies = jiffies;
 		last_stime = current->stime;
 	}
diff -urpN --exclude-from=/home/davej/.exclude bk-linus/arch/i386/kernel/dmi_scan.c linux-2.5/arch/i386/kernel/dmi_scan.c
--- bk-linus/arch/i386/kernel/dmi_scan.c	2004-01-20 16:42:06.000000000 +0000
+++ linux-2.5/arch/i386/kernel/dmi_scan.c	2004-01-21 17:46:22.000000000 +0000
@@ -283,6 +283,30 @@ static __init int apm_is_horked(struct d
 	return 0;
 }
 
+static __init int apm_is_horked_d850md(struct dmi_blacklist *d)
+{
+	if (apm_info.disabled == 0) {
+		apm_info.disabled = 1;
+		printk(KERN_INFO "%s machine detected. Disabling APM.\n", d->ident);
+		printk(KERN_INFO "This bug is fixed in bios P15 which is available for \n");
+		printk(KERN_INFO "download from support.intel.com \n");
+	}
+	return 0;
+}
+
+/* 
+ * Some APM bioses hang on APM idle calls
+ */
+
+static __init int apm_likes_to_melt(struct dmi_blacklist *d)
+{
+	if (apm_info.forbid_idle == 0) {
+		apm_info.forbid_idle = 1;
+		printk(KERN_INFO "%s machine detected. Disabling APM idle calls.\n", d->ident);
+	}
+	return 0;
+}
+
 /*
  * Some machines, usually laptops, can't handle an enabled local APIC.
  * The symptoms include hangs or reboots when suspending or resuming,
@@ -558,6 +582,22 @@ static __initdata struct dmi_blacklist d
 			MATCH(DMI_PRODUCT_NAME, "Latitude C600"),
 			NO_MATCH, NO_MATCH
 			} },
+	{ set_apm_ints, "Dell Latitude", {  /* Allow interrupts during suspend on Dell Latitude laptops*/
+			MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
+			MATCH(DMI_PRODUCT_NAME, "Latitude C510"),
+			NO_MATCH, NO_MATCH
+			} },
+	{ apm_is_horked, "Dell Inspiron 2500", { /* APM crashes */
+			MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
+			MATCH(DMI_PRODUCT_NAME, "Inspiron 2500"),
+			MATCH(DMI_BIOS_VENDOR,"Phoenix Technologies LTD"),
+			MATCH(DMI_BIOS_VERSION,"A11")
+			} },
+	{ set_apm_ints, "Dell Inspiron", {	/* Allow interrupts during suspend on Dell Inspiron laptops*/
+			MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
+			MATCH(DMI_PRODUCT_NAME, "Inspiron 4000"),
+			NO_MATCH, NO_MATCH
+			} },
 	{ broken_apm_power, "Dell Inspiron 5000e", {	/* Handle problems with APM on Inspiron 5000e */
 			MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"),
 			MATCH(DMI_BIOS_VERSION, "A04"),
@@ -568,6 +608,12 @@ static __initdata struct dmi_blacklist d
 			MATCH(DMI_BIOS_VERSION, "A12"),
 			MATCH(DMI_BIOS_DATE, "02/04/2002"), NO_MATCH
 			} },
+	{ apm_is_horked, "Dell Dimension 4100", { /* APM crashes */
+			MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
+			MATCH(DMI_PRODUCT_NAME, "XPS-Z"),
+			MATCH(DMI_BIOS_VENDOR,"Intel Corp."),
+			MATCH(DMI_BIOS_VERSION,"A11")
+			} },
 	{ set_realmode_power_off, "Award Software v4.60 PGMA", {	/* broken PM poweroff bios */
 			MATCH(DMI_BIOS_VENDOR, "Award Software International, Inc."),
 			MATCH(DMI_BIOS_VERSION, "4.60 PGMA"),
@@ -578,21 +624,16 @@ static __initdata struct dmi_blacklist d
 			MATCH(DMI_PRODUCT_NAME, "PowerEdge 1300/"),
 			NO_MATCH, NO_MATCH
 			} },
-	{ set_bios_reboot, "Dell PowerEdge 300", {	/* Handle problems with rebooting on Dell 1300's */
+	{ set_bios_reboot, "Dell PowerEdge 300", {	/* Handle problems with rebooting on Dell 300's */
 			MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
 			MATCH(DMI_PRODUCT_NAME, "PowerEdge 300/"),
 			NO_MATCH, NO_MATCH
 			} },
-	{ set_bios_reboot, "Dell PowerEdge 2400", {  /* Handle problems with rebooting on Dell 300/800's */
+	{ set_bios_reboot, "Dell PowerEdge 2400", {  /* Handle problems with rebooting on Dell 2400's */
 			MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
 			MATCH(DMI_PRODUCT_NAME, "PowerEdge 2400"),
 			NO_MATCH, NO_MATCH
 			} },
-	{ set_apm_ints, "Dell Inspiron", {	/* Allow interrupts during suspend on Dell Inspiron laptops*/
-			MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
-			MATCH(DMI_PRODUCT_NAME, "Inspiron 4000"),
-			NO_MATCH, NO_MATCH
-			} },
 	{ set_apm_ints, "Compaq 12XL125", {	/* Allow interrupts during suspend on Compaq Laptops*/
 			MATCH(DMI_SYS_VENDOR, "Compaq"),
 			MATCH(DMI_PRODUCT_NAME, "Compaq PC"),
@@ -647,6 +688,16 @@ static __initdata struct dmi_blacklist d
 			MATCH(DMI_BIOS_VENDOR,"Phoenix Technologies LTD"),
 			MATCH(DMI_BIOS_VERSION,"A11")
 			} },
+	{ apm_likes_to_melt, "Jabil AMD", { /* APM idle hangs */
+			MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."),
+			MATCH(DMI_BIOS_VERSION, "0AASNP06"),
+			NO_MATCH, NO_MATCH,
+			} },
+	{ apm_likes_to_melt, "AMI Bios", { /* APM idle hangs */
+			MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."),
+			MATCH(DMI_BIOS_VERSION, "0AASNP05"), 
+			NO_MATCH, NO_MATCH,
+			} },
 	{ sony_vaio_laptop, "Sony Vaio", { /* This is a Sony Vaio laptop */
 			MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
 			MATCH(DMI_PRODUCT_NAME, "PCG-"),
@@ -777,6 +828,11 @@ static __initdata struct dmi_blacklist d
                         } },
 	{ broken_pirq, "l44GX Bios", {        		/* Bad $PIR */
 			MATCH(DMI_BIOS_VENDOR, "Intel Corporation"),
+			MATCH(DMI_BIOS_VERSION,"L440GX0.86B.0115.P12"),
+			NO_MATCH, NO_MATCH
+                        } },
+	{ broken_pirq, "l44GX Bios", {        		/* Bad $PIR */
+			MATCH(DMI_BIOS_VENDOR, "Intel Corporation"),
 			MATCH(DMI_BIOS_VERSION,"L440GX0.86B.0120.P12"),
 			NO_MATCH, NO_MATCH
                         } },
@@ -790,6 +846,12 @@ static __initdata struct dmi_blacklist d
 			MATCH(DMI_BIOS_VERSION,"L440GX0.86B.0066.P07.9906041405"),
 			NO_MATCH, NO_MATCH
 			} },
+
+	{ broken_pirq, "IBM xseries 370", {		/* Bad $PIR */
+			MATCH(DMI_BIOS_VENDOR, "IBM"),
+			MATCH(DMI_BIOS_VERSION,"MMKT33AUS"),
+			NO_MATCH, NO_MATCH
+			} },
                         
 	/* Intel in disguise - In this case they can't hide and they don't run
 	   too well either... */
diff -urpN --exclude-from=/home/davej/.exclude bk-linus/include/linux/apm_bios.h linux-2.5/include/linux/apm_bios.h
--- bk-linus/include/linux/apm_bios.h	2003-09-29 20:09:11.000000000 +0100
+++ linux-2.5/include/linux/apm_bios.h	2003-09-29 20:13:03.000000000 +0100
@@ -53,6 +53,7 @@ struct apm_info {
 	int			get_power_status_broken;
 	int			get_power_status_swabinminutes;
 	int			allow_ints;
+	int			forbid_idle;
 	int			realmode_power_off;
 	int			disabled;
 };

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: DMI updates from 2.4
  2004-01-23  6:35 DMI updates from 2.4 davej
@ 2004-01-23  7:37 ` Andrew Morton
  2004-01-23  7:48   ` Dave Jones
  2004-01-23 13:32 ` Matt Domsch
  1 sibling, 1 reply; 6+ messages in thread
From: Andrew Morton @ 2004-01-23  7:37 UTC (permalink / raw)
  To: davej; +Cc: linux-kernel, torvalds

davej@redhat.com wrote:
>
> +static __init int apm_is_horked_d850md(struct dmi_blacklist *d)

this new function is unreferenced.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: DMI updates from 2.4
  2004-01-23  7:37 ` Andrew Morton
@ 2004-01-23  7:48   ` Dave Jones
  2004-01-23 21:31     ` Dave Jones
  0 siblings, 1 reply; 6+ messages in thread
From: Dave Jones @ 2004-01-23  7:48 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, torvalds

On Thu, Jan 22, 2004 at 11:37:34PM -0800, Andrew Morton wrote:
 > davej@redhat.com wrote:
 > >
 > > +static __init int apm_is_horked_d850md(struct dmi_blacklist *d)
 > 
 > this new function is unreferenced.

ok, I'll chase that one down later.

		Dave


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: DMI updates from 2.4
  2004-01-23  6:35 DMI updates from 2.4 davej
  2004-01-23  7:37 ` Andrew Morton
@ 2004-01-23 13:32 ` Matt Domsch
  2004-01-23 15:17   ` Ducrot Bruno
  1 sibling, 1 reply; 6+ messages in thread
From: Matt Domsch @ 2004-01-23 13:32 UTC (permalink / raw)
  To: davej; +Cc: linux-kernel, torvalds, akpm

> +	{ set_apm_ints, "Dell Latitude", {  /* Allow interrupts during suspend on Dell Latitude laptops*/
> +			MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
> +			MATCH(DMI_PRODUCT_NAME, "Latitude C510"),
> +			NO_MATCH, NO_MATCH
> +			} },
> +	{ apm_is_horked, "Dell Inspiron 2500", { /* APM crashes */
> +			MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
> +			MATCH(DMI_PRODUCT_NAME, "Inspiron 2500"),
> +			MATCH(DMI_BIOS_VENDOR,"Phoenix Technologies LTD"),
> +			MATCH(DMI_BIOS_VERSION,"A11")
> +			} },
> +	{ set_apm_ints, "Dell Inspiron", {	/* Allow interrupts during suspend on Dell Inspiron laptops*/
> +			MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
> +			MATCH(DMI_PRODUCT_NAME, "Inspiron 4000"),
> +			NO_MATCH, NO_MATCH
> +			} },
>  	{ broken_apm_power, "Dell Inspiron 5000e", {	/* Handle problems with APM on Inspiron 5000e */
>  			MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"),
>  			MATCH(DMI_BIOS_VERSION, "A04"),
> @@ -568,6 +608,12 @@ static __initdata struct dmi_blacklist d
>  			MATCH(DMI_BIOS_VERSION, "A12"),
>  			MATCH(DMI_BIOS_DATE, "02/04/2002"), NO_MATCH
>  			} },
> +	{ apm_is_horked, "Dell Dimension 4100", { /* APM crashes */
> +			MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
> +			MATCH(DMI_PRODUCT_NAME, "XPS-Z"),
> +			MATCH(DMI_BIOS_VENDOR,"Intel Corp."),
> +			MATCH(DMI_BIOS_VERSION,"A11")
> +			} },
> -	{ set_apm_ints, "Dell Inspiron", {	/* Allow interrupts during suspend on Dell Inspiron laptops*/
> -			MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
> -			MATCH(DMI_PRODUCT_NAME, "Inspiron 4000"),
> -			NO_MATCH, NO_MATCH
> -			} },


For Dell desktops/notebooks, if someone can provide me with details
regarding BIOS crashes (more than "it's horked", but how it's horked,
and if it's clearly like an ACPI table that's wrong and can be shown
how), I've got the ears of the BIOS guys (being held in jars on
my desk).  They're getting tired of hearing on the discussion boards
"Dell BIOSses are broken".

Of course, I take reports of server and workstation BIOS problems too.

Thanks,
Matt

-- 
Matt Domsch
Sr. Software Engineer, Lead Engineer
Dell Linux Solutions www.dell.com/linux
Linux on Dell mailing lists @ http://lists.us.dell.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: DMI updates from 2.4
  2004-01-23 13:32 ` Matt Domsch
@ 2004-01-23 15:17   ` Ducrot Bruno
  0 siblings, 0 replies; 6+ messages in thread
From: Ducrot Bruno @ 2004-01-23 15:17 UTC (permalink / raw)
  To: Matt Domsch; +Cc: davej, linux-kernel, torvalds, akpm

On Fri, Jan 23, 2004 at 07:32:50AM -0600, Matt Domsch wrote:
> For Dell desktops/notebooks, if someone can provide me with details
> regarding BIOS crashes (more than "it's horked", but how it's horked,
> and if it's clearly like an ACPI table that's wrong and can be shown
> how), I've got the ears of the BIOS guys (being held in jars on
> my desk).  They're getting tired of hearing on the discussion boards
> "Dell BIOSses are broken".
> 
> Of course, I take reports of server and workstation BIOS problems too.
> 

That fine.  I searched someone from Dell for this kind of issues (note
that I can only report ACPI related problems in general, not APM).


-- 
Ducrot Bruno

--  Which is worse:  ignorance or apathy?
--  Don't know.  Don't care.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: DMI updates from 2.4
  2004-01-23  7:48   ` Dave Jones
@ 2004-01-23 21:31     ` Dave Jones
  0 siblings, 0 replies; 6+ messages in thread
From: Dave Jones @ 2004-01-23 21:31 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel, torvalds

On Fri, Jan 23, 2004 at 07:48:57AM +0000, Dave Jones wrote:
 > On Thu, Jan 22, 2004 at 11:37:34PM -0800, Andrew Morton wrote:
 >  > davej@redhat.com wrote:
 >  > >
 >  > > +static __init int apm_is_horked_d850md(struct dmi_blacklist *d)
 >  > 
 >  > this new function is unreferenced.
 > 
 > ok, I'll chase that one down later.

fix0red..

Made to match that in 2.4

		Dave

# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#	           ChangeSet	1.1153  -> 1.1154 
#	arch/i386/kernel/dmi_scan.c	1.48    -> 1.49   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 04/01/23	davej@redhat.com	1.1154
# wire up dmi string
# --------------------------------------------
#
diff -Nru a/arch/i386/kernel/dmi_scan.c b/arch/i386/kernel/dmi_scan.c
--- a/arch/i386/kernel/dmi_scan.c	Fri Jan 23 21:30:50 2004
+++ b/arch/i386/kernel/dmi_scan.c	Fri Jan 23 21:30:50 2004
@@ -660,7 +660,7 @@
 			MATCH(DMI_BIOS_VERSION, "Version1.01"),
 			NO_MATCH, NO_MATCH,
 			} },
-	{ apm_is_horked, "Intel D850MD", { /* APM crashes */
+	{ apm_is_horked_d850md, "Intel D850MD", { /* APM crashes */
 			MATCH(DMI_BIOS_VENDOR, "Intel Corp."),
 			MATCH(DMI_BIOS_VERSION, "MV85010A.86A.0016.P07.0201251536"),
 			NO_MATCH, NO_MATCH,

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2004-01-23 21:32 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-01-23  6:35 DMI updates from 2.4 davej
2004-01-23  7:37 ` Andrew Morton
2004-01-23  7:48   ` Dave Jones
2004-01-23 21:31     ` Dave Jones
2004-01-23 13:32 ` Matt Domsch
2004-01-23 15:17   ` Ducrot Bruno

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox