diff options
author | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-07 11:59:11 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-07 11:59:11 -0500 |
commit | 4522d58275f124105819723e24e912c8e5bf3cdd (patch) | |
tree | b92c29014fadffe049c1925676037f0092b8d112 /arch/i386/kernel/acpi/earlyquirk.c | |
parent | 6cf24f031bc97cb5a7c9df3b6e73c45b628b2b28 (diff) | |
parent | 64a26a731235b59c9d73bbe82c1f896d57400d37 (diff) |
Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6
* 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6: (156 commits)
[PATCH] x86-64: Export smp_call_function_single
[PATCH] i386: Clean up smp_tune_scheduling()
[PATCH] unwinder: move .eh_frame to RODATA
[PATCH] unwinder: fully support linker generated .eh_frame_hdr section
[PATCH] x86-64: don't use set_irq_regs()
[PATCH] x86-64: check vector in setup_ioapic_dest to verify if need setup_IO_APIC_irq
[PATCH] x86-64: Make ix86 default to HIGHMEM4G instead of NOHIGHMEM
[PATCH] i386: replace kmalloc+memset with kzalloc
[PATCH] x86-64: remove remaining pc98 code
[PATCH] x86-64: remove unused variable
[PATCH] x86-64: Fix constraints in atomic_add_return()
[PATCH] x86-64: fix asm constraints in i386 atomic_add_return
[PATCH] x86-64: Correct documentation for bzImage protocol v2.05
[PATCH] x86-64: replace kmalloc+memset with kzalloc in MTRR code
[PATCH] x86-64: Fix numaq build error
[PATCH] x86-64: include/asm-x86_64/cpufeature.h isn't a userspace header
[PATCH] unwinder: Add debugging output to the Dwarf2 unwinder
[PATCH] x86-64: Clarify error message in GART code
[PATCH] x86-64: Fix interrupt race in idle callback (3rd try)
[PATCH] x86-64: Remove unwind stack pointer alignment forcing again
...
Fixed conflict in include/linux/uaccess.h manually
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/i386/kernel/acpi/earlyquirk.c')
-rw-r--r-- | arch/i386/kernel/acpi/earlyquirk.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/i386/kernel/acpi/earlyquirk.c b/arch/i386/kernel/acpi/earlyquirk.c index c9841692bb7c..4b60af7f91dd 100644 --- a/arch/i386/kernel/acpi/earlyquirk.c +++ b/arch/i386/kernel/acpi/earlyquirk.c | |||
@@ -10,6 +10,7 @@ | |||
10 | #include <asm/pci-direct.h> | 10 | #include <asm/pci-direct.h> |
11 | #include <asm/acpi.h> | 11 | #include <asm/acpi.h> |
12 | #include <asm/apic.h> | 12 | #include <asm/apic.h> |
13 | #include <asm/irq.h> | ||
13 | 14 | ||
14 | #ifdef CONFIG_ACPI | 15 | #ifdef CONFIG_ACPI |
15 | 16 | ||
@@ -49,6 +50,24 @@ static int __init check_bridge(int vendor, int device) | |||
49 | return 0; | 50 | return 0; |
50 | } | 51 | } |
51 | 52 | ||
53 | static void check_intel(void) | ||
54 | { | ||
55 | u16 vendor, device; | ||
56 | |||
57 | vendor = read_pci_config_16(0, 0, 0, PCI_VENDOR_ID); | ||
58 | |||
59 | if (vendor != PCI_VENDOR_ID_INTEL) | ||
60 | return; | ||
61 | |||
62 | device = read_pci_config_16(0, 0, 0, PCI_DEVICE_ID); | ||
63 | #ifdef CONFIG_SMP | ||
64 | if (device == PCI_DEVICE_ID_INTEL_E7320_MCH || | ||
65 | device == PCI_DEVICE_ID_INTEL_E7520_MCH || | ||
66 | device == PCI_DEVICE_ID_INTEL_E7525_MCH) | ||
67 | quirk_intel_irqbalance(); | ||
68 | #endif | ||
69 | } | ||
70 | |||
52 | void __init check_acpi_pci(void) | 71 | void __init check_acpi_pci(void) |
53 | { | 72 | { |
54 | int num, slot, func; | 73 | int num, slot, func; |
@@ -60,6 +79,8 @@ void __init check_acpi_pci(void) | |||
60 | if (!early_pci_allowed()) | 79 | if (!early_pci_allowed()) |
61 | return; | 80 | return; |
62 | 81 | ||
82 | check_intel(); | ||
83 | |||
63 | /* Poor man's PCI discovery */ | 84 | /* Poor man's PCI discovery */ |
64 | for (num = 0; num < 32; num++) { | 85 | for (num = 0; num < 32; num++) { |
65 | for (slot = 0; slot < 32; slot++) { | 86 | for (slot = 0; slot < 32; slot++) { |