logo       

Re: 2.6.0-test11-mm1: msg#00030

Subject: Re: 2.6.0-test11-mm1
Hullo Andrew,
        I believe this was the intention;

On Wed, 17 Dec 2003, Andrew Morton wrote:

> mpparse_es7000.patch
>   mpparse: fix IRQ breakage from the es7000 merge

For ES7000 add an offset of 16 to the irq in order to setup a mapping where
ISA/legacy interrupts are in the 0-15 range and PCI 16 and above. This was
a cleanup fix in order to facilitate easy differentiating between legacy
and non legacy interrupt setup.

===
The ES7000 merge added a bit of code of offset the IRQ numbers.  We're not
too sure why; it wasn't changelogged.

But it broke other systems, so this patch arranges for that code to only be
activated on es7000 machines.



 arch/i386/kernel/dmi_scan.c    |    1 +
 arch/i386/kernel/mpparse.c     |    7 +++++--
 arch/i386/mach-es7000/es7000.c |    2 --
 include/asm-i386/system.h      |    1 +
 4 files changed, 7 insertions(+), 4 deletions(-)

diff -puN arch/i386/kernel/dmi_scan.c~mpparse_es7000 arch/i386/kernel/dmi_scan.c
--- 25/arch/i386/kernel/dmi_scan.c~mpparse_es7000       2003-11-21 
01:30:11.000000000 -0800
+++ 25-akpm/arch/i386/kernel/dmi_scan.c 2003-11-21 01:30:11.000000000 -0800
@@ -16,6 +16,7 @@ EXPORT_SYMBOL(dmi_broken);

 int is_sony_vaio_laptop;
 int is_unsafe_smbus;
+int es7000_plat = 0;

 struct dmi_header
 {
diff -puN arch/i386/kernel/mpparse.c~mpparse_es7000 arch/i386/kernel/mpparse.c
--- 25/arch/i386/kernel/mpparse.c~mpparse_es7000        2003-11-21 
01:30:11.000000000 -0800
+++ 25-akpm/arch/i386/kernel/mpparse.c  2003-11-21 01:30:11.000000000 -0800
@@ -1129,8 +1129,11 @@ void __init mp_parse_prt (void)
                        continue;
                ioapic_pin = irq - mp_ioapic_routing[ioapic].irq_start;

-               if (!ioapic && (irq < 16))
-                       irq += 16;
+               if (es7000_plat) {
+                       if (!ioapic && (irq < 16))
+                               irq += 16;
+               }
+
                /*
                 * Avoid pin reprogramming.  PRTs typically include entries
                 * with redundant pin->irq mappings (but unique PCI devices);
diff -puN arch/i386/mach-es7000/es7000.c~mpparse_es7000 
arch/i386/mach-es7000/es7000.c
--- 25/arch/i386/mach-es7000/es7000.c~mpparse_es7000    2003-11-21 
01:30:11.000000000 -0800
+++ 25-akpm/arch/i386/mach-es7000/es7000.c      2003-11-21 01:30:11.000000000 
-0800
@@ -51,8 +51,6 @@ struct mip_reg                *host_reg;
 int                    mip_port;
 unsigned long          mip_addr, host_addr;

-static int             es7000_plat;
-
 /*
  * Parse the OEM Table
  */
diff -puN include/asm-i386/system.h~mpparse_es7000 include/asm-i386/system.h
--- 25/include/asm-i386/system.h~mpparse_es7000 2003-11-21 01:30:11.000000000 
-0800
+++ 25-akpm/include/asm-i386/system.h   2003-11-21 01:30:11.000000000 -0800
@@ -470,6 +470,7 @@ void enable_hlt(void);

 extern unsigned long dmi_broken;
 extern int is_sony_vaio_laptop;
+extern int es7000_plat;

 #define BROKEN_ACPI_Sx         0x0001
 #define BROKEN_INIT_AFTER_S1   0x0002

_
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxxx  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@xxxxxxxxx";> aart@xxxxxxxxx </a>



<Prev in Thread] Current Thread [Next in Thread>