SOURCES (LINUX_2_6): acpi-20050729-2.6.12.patch (NEW) - fresh snap.
pluto
pluto at pld-linux.org
Sun Jul 31 14:34:49 CEST 2005
Author: pluto Date: Sun Jul 31 12:34:49 2005 GMT
Module: SOURCES Tag: LINUX_2_6
---- Log message:
- fresh snap.
---- Files affected:
SOURCES:
acpi-20050729-2.6.12.patch (NONE -> 1.1.2.1) (NEW)
---- Diffs:
================================================================
Index: SOURCES/acpi-20050729-2.6.12.patch
diff -u /dev/null SOURCES/acpi-20050729-2.6.12.patch:1.1.2.1
--- /dev/null Sun Jul 31 14:34:49 2005
+++ SOURCES/acpi-20050729-2.6.12.patch Sun Jul 31 14:34:43 2005
@@ -0,0 +1,37258 @@
+ Documentation/acpi-hotkey.txt | 38
+ arch/frv/mb93090-mb00/pci-irq.c | 2
+ arch/i386/kernel/acpi/Makefile | 4
+ arch/i386/kernel/acpi/cstate.c | 103 +
+ arch/i386/kernel/acpi/wakeup.S | 5
+ arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c | 7
+ arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c | 2
+ arch/i386/pci/acpi.c | 1
+ arch/i386/pci/common.c | 6
+ arch/i386/pci/irq.c | 17
+ arch/i386/pci/pci.h | 1
+ arch/i386/pci/visws.c | 2
+ arch/ia64/kernel/acpi.c | 54 +
+ arch/ia64/kernel/mca.c | 2
+ arch/ia64/kernel/process.c | 1
+ arch/ia64/kernel/setup.c | 3
+ arch/ia64/kernel/topology.c | 7
+ drivers/acpi/Kconfig | 40
+ drivers/acpi/Makefile | 5
+ drivers/acpi/asus_acpi.c | 4
+ drivers/acpi/bus.c | 8
+ drivers/acpi/button.c | 245 ----
+ drivers/acpi/dispatcher/dsfield.c | 58 -
+ drivers/acpi/dispatcher/dsinit.c | 48
+ drivers/acpi/dispatcher/dsmethod.c | 78 -
+ drivers/acpi/dispatcher/dsmthdat.c | 198 ++-
+ drivers/acpi/dispatcher/dsobject.c | 82 +
+ drivers/acpi/dispatcher/dsopcode.c | 120 +-
+ drivers/acpi/dispatcher/dsutils.c | 41
+ drivers/acpi/dispatcher/dswexec.c | 57 -
+ drivers/acpi/dispatcher/dswload.c | 168 ++-
+ drivers/acpi/dispatcher/dswscope.c | 31
+ drivers/acpi/dispatcher/dswstate.c | 464 ++++----
+ drivers/acpi/ec.c | 990 ++++++++++++++++---
+ drivers/acpi/events/evevent.c | 33
+ drivers/acpi/events/evgpe.c | 44
+ drivers/acpi/events/evgpeblk.c | 122 +-
+ drivers/acpi/events/evmisc.c | 104 +
+ drivers/acpi/events/evregion.c | 35
+ drivers/acpi/events/evrgnini.c | 24
+ drivers/acpi/events/evsci.c | 12
+ drivers/acpi/events/evxface.c | 29
+ drivers/acpi/events/evxfevnt.c | 31
+ drivers/acpi/executer/exconfig.c | 79 -
+ drivers/acpi/executer/exconvrt.c | 44
+ drivers/acpi/executer/excreate.c | 50
+ drivers/acpi/executer/exdump.c | 278 ++++-
+ drivers/acpi/executer/exfield.c | 30
+ drivers/acpi/executer/exfldio.c | 133 +-
+ drivers/acpi/executer/exmisc.c | 9
+ drivers/acpi/executer/exmutex.c | 45
+ drivers/acpi/executer/exnames.c | 77 -
+ drivers/acpi/executer/exoparg1.c | 123 +-
+ drivers/acpi/executer/exoparg2.c | 69 -
+ drivers/acpi/executer/exoparg3.c | 84 +
+ drivers/acpi/executer/exoparg6.c | 26
+ drivers/acpi/executer/exprep.c | 104 +
+ drivers/acpi/executer/exregion.c | 34
+ drivers/acpi/executer/exresnte.c | 24
+ drivers/acpi/executer/exresolv.c | 63 -
+ drivers/acpi/executer/exresop.c | 96 +
+ drivers/acpi/executer/exstore.c | 264 +++--
+ drivers/acpi/executer/exstoren.c | 24
+ drivers/acpi/executer/exstorob.c | 9
+ drivers/acpi/executer/exsystem.c | 48
+ drivers/acpi/executer/exutils.c | 37
+ drivers/acpi/glue.c | 360 ++++++
+ drivers/acpi/hardware/hwacpi.c | 19
+ drivers/acpi/hardware/hwgpe.c | 51
+ drivers/acpi/hardware/hwregs.c | 116 +-
+ drivers/acpi/hardware/hwsleep.c | 113 +-
+ drivers/acpi/hardware/hwtimer.c | 4
+ drivers/acpi/hotkey.c | 1019 +++++++++++++++++++
+ drivers/acpi/ibm_acpi.c | 8
+ drivers/acpi/namespace/nsaccess.c | 18
+ drivers/acpi/namespace/nsalloc.c | 145 --
+ drivers/acpi/namespace/nsdump.c | 185 ++-
+ drivers/acpi/namespace/nsdumpdv.c | 18
+ drivers/acpi/namespace/nseval.c | 80 +
+ drivers/acpi/namespace/nsinit.c | 28
+ drivers/acpi/namespace/nsload.c | 70 -
+ drivers/acpi/namespace/nsnames.c | 12
+ drivers/acpi/namespace/nsobject.c | 14
+ drivers/acpi/namespace/nsparse.c | 6
+ drivers/acpi/namespace/nssearch.c | 29
+ drivers/acpi/namespace/nsutils.c | 167 +--
+ drivers/acpi/namespace/nswalk.c | 2
+ drivers/acpi/namespace/nsxfeval.c | 16
+ drivers/acpi/namespace/nsxfname.c | 8
+ drivers/acpi/namespace/nsxfobj.c | 4
+ drivers/acpi/osl.c | 208 +++
+ drivers/acpi/parser/Makefile | 2
+ drivers/acpi/parser/psargs.c | 55 -
+ drivers/acpi/parser/psloop.c | 781 ++++++++++++++
+ drivers/acpi/parser/psopcode.c | 324 ------
+ drivers/acpi/parser/psparse.c | 729 -------------
+ drivers/acpi/parser/psscope.c | 45
+ drivers/acpi/parser/pstree.c | 159 +--
+ drivers/acpi/parser/psutils.c | 52
+ drivers/acpi/parser/pswalk.c | 11
+ drivers/acpi/parser/psxface.c | 254 ++--
+ drivers/acpi/pci_irq.c | 85 +
+ drivers/acpi/pci_link.c | 130 +-
+ drivers/acpi/processor_core.c | 37
+ drivers/acpi/processor_idle.c | 163 ++-
+ drivers/acpi/processor_perflib.c | 33
+ drivers/acpi/resources/rsaddr.c | 480 +++------
+ drivers/acpi/resources/rscalc.c | 144 +-
+ drivers/acpi/resources/rscreate.c | 45
+ drivers/acpi/resources/rsdump.c | 402 ++++---
+ drivers/acpi/resources/rsio.c | 197 +--
+ drivers/acpi/resources/rsirq.c | 167 +--
+ drivers/acpi/resources/rslist.c | 68 -
+ drivers/acpi/resources/rsmemory.c | 236 +---
+ drivers/acpi/resources/rsmisc.c | 160 +--
+ drivers/acpi/resources/rsutils.c | 53 -
+ drivers/acpi/resources/rsxface.c | 43
+ drivers/acpi/scan.c | 12
+ drivers/acpi/sleep/main.c | 74 -
+ drivers/acpi/sleep/poweroff.c | 81 +
+ drivers/acpi/sleep/proc.c | 9
+ drivers/acpi/tables/tbconvrt.c | 113 +-
+ drivers/acpi/tables/tbget.c | 63 -
+ drivers/acpi/tables/tbgetall.c | 45
+ drivers/acpi/tables/tbinstal.c | 61 -
+ drivers/acpi/tables/tbrsdt.c | 74 -
+ drivers/acpi/tables/tbutils.c | 134 ++
+ drivers/acpi/tables/tbxface.c | 56 -
+ drivers/acpi/tables/tbxfroot.c | 231 ++--
+ drivers/acpi/toshiba_acpi.c | 8
+ drivers/acpi/utilities/Makefile | 2
+ drivers/acpi/utilities/utalloc.c | 360 +++---
+ drivers/acpi/utilities/utcache.c | 328 ++++++
+ drivers/acpi/utilities/utcopy.c | 172 ++-
+ drivers/acpi/utilities/utdebug.c | 320 +++---
+ drivers/acpi/utilities/utdelete.c | 199 +--
+ drivers/acpi/utilities/uteval.c | 36
+ drivers/acpi/utilities/utglobal.c | 231 +---
+ drivers/acpi/utilities/utinit.c | 38
+ drivers/acpi/utilities/utmath.c | 2
+ drivers/acpi/utilities/utmisc.c | 1146 +++++-----------------
+ drivers/acpi/utilities/utmutex.c | 380 +++++++
+ drivers/acpi/utilities/utobject.c | 102 -
+ drivers/acpi/utilities/utstate.c | 376 +++++++
+ drivers/acpi/utilities/utxface.c | 84 -
+ drivers/acpi/video.c | 15
+ drivers/base/sys.c | 1
+ drivers/net/b44.c | 3
+ drivers/net/ne2k-pci.c | 3
+ drivers/net/sk98lin/skge.c | 63 +
+ drivers/pci/pci-acpi.c | 110 ++
+ drivers/pci/pci.c | 22
+ drivers/pci/pci.h | 4
+ drivers/pcmcia/yenta_socket.c | 12
+ drivers/pnp/pnpacpi/rsparser.c | 15
+ drivers/pnp/pnpbios/rsparser.c | 2
+ drivers/pnp/resource.c | 2
+ drivers/usb/core/hcd-pci.c | 1
+ include/acpi/acconfig.h | 14
+ include/acpi/acdebug.h | 152 --
+ include/acpi/acdisasm.h | 117 --
+ include/acpi/acdispat.h | 169 ---
+ include/acpi/acevents.h | 86 -
+ include/acpi/acexcep.h | 11
+ include/acpi/acglobal.h | 41
+ include/acpi/achware.h | 58 -
+ include/acpi/acinterp.h | 243 +---
+ include/acpi/aclocal.h | 92 -
+ include/acpi/acmacros.h | 112 +-
+ include/acpi/acnames.h | 89 +
+ include/acpi/acnamesp.h | 165 ---
+ include/acpi/acobject.h | 4
+ include/acpi/acopcode.h | 325 ++++++
+ include/acpi/acoutput.h | 2
+ include/acpi/acparser.h | 127 +-
+ include/acpi/acpi.h | 1
+ include/acpi/acpi_bus.h | 21
+ include/acpi/acpi_drivers.h | 8
+ include/acpi/acpiosxf.h | 53 -
+ include/acpi/acpixf.h | 15
+ include/acpi/acresrc.h | 67 -
+ include/acpi/acstruct.h | 16
+ include/acpi/actables.h | 72 -
+ include/acpi/actbl.h | 60 -
+ include/acpi/actbl1.h | 52
+ include/acpi/actbl2.h | 109 +-
+ include/acpi/actypes.h | 17
+ include/acpi/acutils.h | 359 ++----
+ include/acpi/amlcode.h | 14
+ include/acpi/pdc_intel.h | 29
+ include/acpi/platform/acenv.h | 57 -
+ include/acpi/platform/acgcc.h | 8
+ include/acpi/platform/aclinux.h | 11
+ include/acpi/processor.h | 34
+ include/asm-alpha/pci.h | 2
+ include/asm-arm/pci.h | 2
+ include/asm-h8300/pci.h | 2
+ include/asm-i386/acpi.h | 10
+ include/asm-i386/apicdef.h | 6
+ include/asm-i386/pci.h | 2
+ include/asm-ia64/acpi.h | 9
+ include/asm-ia64/pci.h | 2
+ include/asm-m68k/pci.h | 2
+ include/asm-mips/pci.h | 2
+ include/asm-ppc/pci.h | 2
+ include/asm-ppc64/pci.h | 2
+ include/asm-sh/pci.h | 2
+ include/asm-sh64/pci.h | 2
+ include/asm-sparc/pci.h | 2
+ include/asm-sparc64/pci.h | 2
+ include/asm-x86_64/acpi.h | 8
+ include/asm-x86_64/pci.h | 2
+ include/linux/acpi.h | 11
+ include/linux/device.h | 6
+ include/linux/pm.h | 2
+ kernel/power/main.c | 16
+ sound/pci/intel8x0.c | 6
+ 217 files changed, 12228 insertions(+), 8305 deletions(-)
+diff --git a/Documentation/acpi-hotkey.txt b/Documentation/acpi-hotkey.txt
+new file mode 100644
+--- /dev/null
++++ b/Documentation/acpi-hotkey.txt
+@@ -0,0 +1,38 @@
++driver/acpi/hotkey.c implement:
++1. /proc/acpi/hotkey/event_config
++(event based hotkey or event config interface):
++a. add a event based hotkey(event) :
++echo "0:bus::action:method:num:num" > event_config
++
++b. delete a event based hotkey(event):
++echo "1:::::num:num" > event_config
++
++c. modify a event based hotkey(event):
++echo "2:bus::action:method:num:num" > event_config
++
++2. /proc/acpi/hotkey/poll_config
++(polling based hotkey or event config interface):
++a.add a polling based hotkey(event) :
++echo "0:bus:method:action:method:num" > poll_config
++this adding command will create a proc file
++/proc/acpi/hotkey/method, which is used to get
++result of polling.
++
++b.delete a polling based hotkey(event):
++echo "1:::::num" > event_config
++
++c.modify a polling based hotkey(event):
++echo "2:bus:method:action:method:num" > poll_config
++
++3./proc/acpi/hotkey/action
++(interface to call aml method associated with a
++specific hotkey(event))
++echo "event_num:event_type:event_argument" >
++ /proc/acpi/hotkey/action.
++The result of the execution of this aml method is
++attached to /proc/acpi/hotkey/poll_method, which is dnyamically
++created. Please use command "cat /proc/acpi/hotkey/polling_method"
++to retrieve it.
++
++Note: Use cmdline "acpi_specific_hotkey" to enable legacy platform
++specific drivers.
+diff --git a/arch/frv/mb93090-mb00/pci-irq.c b/arch/frv/mb93090-mb00/pci-irq.c
+--- a/arch/frv/mb93090-mb00/pci-irq.c
++++ b/arch/frv/mb93090-mb00/pci-irq.c
+@@ -60,7 +60,7 @@ void __init pcibios_fixup_irqs(void)
+ }
+ }
+
+-void __init pcibios_penalize_isa_irq(int irq)
++void __init pcibios_penalize_isa_irq(int irq, int active)
+ {
+ }
+
+diff --git a/arch/i386/kernel/acpi/Makefile b/arch/i386/kernel/acpi/Makefile
+--- a/arch/i386/kernel/acpi/Makefile
++++ b/arch/i386/kernel/acpi/Makefile
+@@ -2,3 +2,7 @@ obj-$(CONFIG_ACPI_BOOT) := boot.o
+ obj-$(CONFIG_X86_IO_APIC) += earlyquirk.o
+ obj-$(CONFIG_ACPI_SLEEP) += sleep.o wakeup.o
+
++ifneq ($(CONFIG_ACPI_PROCESSOR),)
++obj-y += cstate.o
++endif
++
+diff --git a/arch/i386/kernel/acpi/cstate.c b/arch/i386/kernel/acpi/cstate.c
+new file mode 100644
+--- /dev/null
++++ b/arch/i386/kernel/acpi/cstate.c
+@@ -0,0 +1,103 @@
++/*
++ * arch/i386/kernel/acpi/cstate.c
++ *
++ * Copyright (C) 2005 Intel Corporation
++ * Venkatesh Pallipadi <venkatesh.pallipadi at intel.com>
++ * - Added _PDC for SMP C-states on Intel CPUs
++ */
++
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/acpi.h>
++
++#include <acpi/processor.h>
++#include <asm/acpi.h>
++
++static void acpi_processor_power_init_intel_pdc(struct acpi_processor_power
++ *pow)
++{
++ struct acpi_object_list *obj_list;
++ union acpi_object *obj;
++ u32 *buf;
++
++ /* allocate and initialize pdc. It will be used later. */
++ obj_list = kmalloc(sizeof(struct acpi_object_list), GFP_KERNEL);
++ if (!obj_list) {
++ printk(KERN_ERR "Memory allocation error\n");
++ return;
++ }
++
++ obj = kmalloc(sizeof(union acpi_object), GFP_KERNEL);
++ if (!obj) {
++ printk(KERN_ERR "Memory allocation error\n");
++ kfree(obj_list);
++ return;
++ }
++
++ buf = kmalloc(12, GFP_KERNEL);
++ if (!buf) {
++ printk(KERN_ERR "Memory allocation error\n");
++ kfree(obj);
++ kfree(obj_list);
++ return;
++ }
++
++ buf[0] = ACPI_PDC_REVISION_ID;
++ buf[1] = 1;
++ buf[2] = ACPI_PDC_C_CAPABILITY_SMP;
++
++ obj->type = ACPI_TYPE_BUFFER;
++ obj->buffer.length = 12;
++ obj->buffer.pointer = (u8 *) buf;
++ obj_list->count = 1;
++ obj_list->pointer = obj;
++ pow->pdc = obj_list;
++
++ return;
++}
++
++/* Initialize _PDC data based on the CPU vendor */
++void acpi_processor_power_init_pdc(struct acpi_processor_power *pow,
++ unsigned int cpu)
++{
++ struct cpuinfo_x86 *c = cpu_data + cpu;
++
++ pow->pdc = NULL;
++ if (c->x86_vendor == X86_VENDOR_INTEL)
++ acpi_processor_power_init_intel_pdc(pow);
++
++ return;
++}
++
++EXPORT_SYMBOL(acpi_processor_power_init_pdc);
++
++/*
++ * Initialize bm_flags based on the CPU cache properties
++ * On SMP it depends on cache configuration
++ * - When cache is not shared among all CPUs, we flush cache
++ * before entering C3.
++ * - When cache is shared among all CPUs, we use bm_check
++ * mechanism as in UP case
++ *
++ * This routine is called only after all the CPUs are online
++ */
++void acpi_processor_power_init_bm_check(struct acpi_processor_flags *flags,
++ unsigned int cpu)
++{
++ struct cpuinfo_x86 *c = cpu_data + cpu;
++
++ flags->bm_check = 0;
++ if (num_online_cpus() == 1)
++ flags->bm_check = 1;
++ else if (c->x86_vendor == X86_VENDOR_INTEL) {
++ /*
++ * Today all CPUs that support C3 share cache.
++ * TBD: This needs to look at cache shared map, once
++ * multi-core detection patch makes to the base.
++ */
++ flags->bm_check = 1;
++ }
++}
++
++EXPORT_SYMBOL(acpi_processor_power_init_bm_check);
+diff --git a/arch/i386/kernel/acpi/wakeup.S b/arch/i386/kernel/acpi/wakeup.S
+--- a/arch/i386/kernel/acpi/wakeup.S
++++ b/arch/i386/kernel/acpi/wakeup.S
+@@ -74,8 +74,9 @@ wakeup_code:
+ movw %ax,%fs
+ movw $0x0e00 + 'i', %fs:(0x12)
+
+- # need a gdt
+- lgdt real_save_gdt - wakeup_code
++ # need a gdt -- use lgdtl to force 32-bit operands, in case
++ # the GDT is located past 16 megabytes.
++ lgdtl real_save_gdt - wakeup_code
+
+ movl real_save_cr0 - wakeup_code, %eax
+ movl %eax, %cr0
+diff --git a/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
+--- a/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
++++ b/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
+@@ -442,6 +442,13 @@ acpi_cpufreq_cpu_init (
+ (u32) data->acpi_data.states[i].transition_latency);
+
+ cpufreq_frequency_table_get_attr(data->freq_table, policy->cpu);
++
++ /*
++ * the first call to ->target() should result in us actually
++ * writing something to the appropriate registers.
++ */
++ data->resume = 1;
++
+ return (result);
+
+ err_freqfree:
+diff --git a/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c b/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c
+--- a/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c
++++ b/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c
+@@ -375,7 +375,7 @@ static int centrino_cpu_init_acpi(struct
+ arg0.buffer.pointer = (u8 *) arg0_buf;
+ arg0_buf[0] = ACPI_PDC_REVISION_ID;
+ arg0_buf[1] = 1;
+- arg0_buf[2] = ACPI_PDC_EST_CAPABILITY_SMP | ACPI_PDC_EST_CAPABILITY_MSR;
++ arg0_buf[2] = ACPI_PDC_EST_CAPABILITY_SMP_MSR;
+
+ p.pdc = &arg_list;
+
+diff --git a/arch/i386/pci/acpi.c b/arch/i386/pci/acpi.c
+--- a/arch/i386/pci/acpi.c
++++ b/arch/i386/pci/acpi.c
+@@ -30,6 +30,7 @@ static int __init pci_acpi_init(void)
+ acpi_irq_penalty_init();
+ pcibios_scanned++;
+ pcibios_enable_irq = acpi_pci_irq_enable;
++ pcibios_disable_irq = acpi_pci_irq_disable;
+
+ if (pci_routeirq) {
+ /*
+diff --git a/arch/i386/pci/common.c b/arch/i386/pci/common.c
+--- a/arch/i386/pci/common.c
++++ b/arch/i386/pci/common.c
+@@ -249,3 +249,9 @@ int pcibios_enable_device(struct pci_dev
+
+ return pcibios_enable_irq(dev);
+ }
++
++void pcibios_disable_device (struct pci_dev *dev)
++{
++ if (pcibios_disable_irq)
++ pcibios_disable_irq(dev);
++}
+diff --git a/arch/i386/pci/irq.c b/arch/i386/pci/irq.c
+--- a/arch/i386/pci/irq.c
++++ b/arch/i386/pci/irq.c
+@@ -56,6 +56,7 @@ struct irq_router_handler {
+ };
+
+ int (*pcibios_enable_irq)(struct pci_dev *dev) = NULL;
++void (*pcibios_disable_irq)(struct pci_dev *dev) = NULL;
+
+ /*
+ * Search 0xf0000 -- 0xfffff for the PCI IRQ Routing Table.
+@@ -1006,24 +1007,28 @@ static int __init pcibios_irq_init(void)
+ subsys_initcall(pcibios_irq_init);
+
+
+-static void pirq_penalize_isa_irq(int irq)
++static void pirq_penalize_isa_irq(int irq, int active)
+ {
+ /*
+ * If any ISAPnP device reports an IRQ in its list of possible
+ * IRQ's, we try to avoid assigning it to PCI devices.
+ */
+- if (irq < 16)
+- pirq_penalty[irq] += 100;
++ if (irq < 16) {
++ if (active)
++ pirq_penalty[irq] += 1000;
++ else
++ pirq_penalty[irq] += 100;
++ }
+ }
+
+-void pcibios_penalize_isa_irq(int irq)
++void pcibios_penalize_isa_irq(int irq, int active)
+ {
+ #ifdef CONFIG_ACPI_PCI
+ if (!acpi_noirq)
+- acpi_penalize_isa_irq(irq);
++ acpi_penalize_isa_irq(irq, active);
+ else
+ #endif
+- pirq_penalize_isa_irq(irq);
++ pirq_penalize_isa_irq(irq, active);
+ }
+
+ static int pirq_enable_irq(struct pci_dev *dev)
+diff --git a/arch/i386/pci/pci.h b/arch/i386/pci/pci.h
+--- a/arch/i386/pci/pci.h
++++ b/arch/i386/pci/pci.h
+@@ -72,3 +72,4 @@ extern int pcibios_scanned;
+ extern spinlock_t pci_config_lock;
+
+ extern int (*pcibios_enable_irq)(struct pci_dev *dev);
++extern void (*pcibios_disable_irq)(struct pci_dev *dev);
+diff --git a/arch/i386/pci/visws.c b/arch/i386/pci/visws.c
+--- a/arch/i386/pci/visws.c
++++ b/arch/i386/pci/visws.c
+@@ -21,7 +21,7 @@ static int pci_visws_enable_irq(struct p
+
+ int (*pcibios_enable_irq)(struct pci_dev *dev) = &pci_visws_enable_irq;
+
+-void __init pcibios_penalize_isa_irq(int irq) {}
++void __init pcibios_penalize_isa_irq(int irq, int active) {}
+
+
+ unsigned int pci_bus0, pci_bus1;
+diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
+--- a/arch/ia64/kernel/acpi.c
++++ b/arch/ia64/kernel/acpi.c
+@@ -11,6 +11,7 @@
+ * Copyright (C) 2001 Jenna Hall <jenna.s.hall at intel.com>
+ * Copyright (C) 2001 Takayoshi Kochi <t-kochi at bq.jp.nec.com>
+ * Copyright (C) 2002 Erich Focht <efocht at ess.nec.de>
++ * Copyright (C) 2004 Ashok Raj <ashok.raj at intel.com>
+ *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *
+@@ -67,6 +68,11 @@ EXPORT_SYMBOL(pm_power_off);
+ unsigned char acpi_kbd_controller_present = 1;
+ unsigned char acpi_legacy_devices;
+
++static unsigned int __initdata acpi_madt_rev;
++
++unsigned int acpi_cpei_override;
++unsigned int acpi_cpei_phys_cpuid;
++
+ #define MAX_SAPICS 256
+ u16 ia64_acpiid_to_sapicid[MAX_SAPICS] =
+ { [0 ... MAX_SAPICS - 1] = -1 };
+@@ -267,10 +273,56 @@ acpi_parse_plat_int_src (
+ (plintsrc->flags.trigger == 1) ? IOSAPIC_EDGE : IOSAPIC_LEVEL);
+
+ platform_intr_list[plintsrc->type] = vector;
++ if (acpi_madt_rev > 1) {
++ acpi_cpei_override = plintsrc->plint_flags.cpei_override_flag;
++ }
++
++ /*
++ * Save the physical id, so we can check when its being removed
++ */
++ acpi_cpei_phys_cpuid = ((plintsrc->id << 8) | (plintsrc->eid)) & 0xffff;
++
+ return 0;
+ }
+
+
++unsigned int can_cpei_retarget(void)
++{
++ extern int cpe_vector;
++
++ /*
++ * Only if CPEI is supported and the override flag
++ * is present, otherwise return that its re-targettable
++ * if we are in polling mode.
++ */
++ if (cpe_vector > 0 && !acpi_cpei_override)
++ return 0;
++ else
++ return 1;
++}
++
++unsigned int is_cpu_cpei_target(unsigned int cpu)
++{
++ unsigned int logical_id;
++
++ logical_id = cpu_logical_id(acpi_cpei_phys_cpuid);
++
++ if (logical_id == cpu)
++ return 1;
++ else
++ return 0;
<<Diff was trimmed, longer than 597 lines>>
More information about the pld-cvs-commit
mailing list