]> git.hungrycats.org Git - linux/commitdiff
[PATCH] handle exploding pnpbios
authorAlan Cox <alan@lxorguk.ukuu.org.uk>
Fri, 21 Mar 2003 10:30:00 +0000 (02:30 -0800)
committerLinus Torvalds <torvalds@home.transmeta.com>
Fri, 21 Mar 2003 10:30:00 +0000 (02:30 -0800)
arch/i386/kernel/dmi_scan.c
drivers/pnp/pnpbios/core.c

index 6f755378def8e1e8672c9fa6cda9718ba0460d06..21d2f6b59fc0b9447af08dcc77af8949fbacd626 100644 (file)
@@ -499,6 +499,19 @@ static __init int broken_ps2_resume(struct dmi_blacklist *d)
        return 0;
 }
 
+/*
+ *     Exploding PnPBIOS. Don't yet know if its the BIOS or us for
+ *     some entries
+ */
+
+static __init int exploding_pnp_bios(struct dmi_blacklist *d)
+{
+       printk(KERN_WARNING "%s detected. Disabling PnPBIOS\n", d->ident);
+       dmi_broken |= BROKEN_PNP_BIOS;
+       return 0;
+}
+
+
 
 /*
  *     Simple "print if true" callback
@@ -687,6 +700,13 @@ static __initdata struct dmi_blacklist dmi_blacklist[]={
                        MATCH(DMI_BIOS_VERSION, "WXPO1Z3"),
                        MATCH(DMI_BIOS_DATE, "10/26/01"), NO_MATCH
                        } },
+                       
+       { exploding_pnp_bios, "Higraded P14H", {        /* BIOSPnP problem */
+                       MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."),
+                       MATCH(DMI_BIOS_VERSION, "07.00T"),
+                       MATCH(DMI_SYS_VENDOR, "Higraded"),
+                       MATCH(DMI_PRODUCT_NAME, "P14H")
+                       } },
 
        /* Machines which have problems handling enabled local APICs */
 
index 2e33b62d2d3fda4a8c9f1fdf84d8965a1fbb5166..453ea06b7723dae53fcd6bbf8759cdd697da19c9 100644 (file)
@@ -969,7 +969,7 @@ int __init pnpbios_init(void)
 
        spin_lock_init(&pnp_bios_lock);
 
-       if(pnpbios_disabled) {
+       if(pnpbios_disabled || (dmi_broken & BROKEN_PNP_BIOS)) {
                printk(KERN_INFO "PnPBIOS: Disabled\n");
                return -ENODEV;
        }