git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge to kernel-2.6.20-1.2949.fc6.vs2.2.0.1
[linux-2.6.git]
/
drivers
/
parisc
/
iosapic.c
diff --git
a/drivers/parisc/iosapic.c
b/drivers/parisc/iosapic.c
index
8d7a363
..
6fb3f79
100644
(file)
--- a/
drivers/parisc/iosapic.c
+++ b/
drivers/parisc/iosapic.c
@@
-50,12
+50,12
@@
**
** PA Firmware
** -----------
**
** PA Firmware
** -----------
-** PA-RISC platforms have two fund
e
mentally different types of firmware.
+** PA-RISC platforms have two fund
a
mentally different types of firmware.
** For PCI devices, "Legacy" PDC initializes the "INTERRUPT_LINE" register
** and BARs similar to a traditional PC BIOS.
** The newer "PAT" firmware supports PDC calls which return tables.
** For PCI devices, "Legacy" PDC initializes the "INTERRUPT_LINE" register
** and BARs similar to a traditional PC BIOS.
** The newer "PAT" firmware supports PDC calls which return tables.
-** PAT firmware only initializes PCI Console and Boot interface.
-** With these tables, the OS can progam all other PCI devices.
+** PAT firmware only initializes
the
PCI Console and Boot interface.
+** With these tables, the OS can prog
r
am all other PCI devices.
**
** One such PAT PDC call returns the "Interrupt Routing Table" (IRT).
** The IRT maps each PCI slot's INTA-D "output" line to an I/O SAPIC
**
** One such PAT PDC call returns the "Interrupt Routing Table" (IRT).
** The IRT maps each PCI slot's INTA-D "output" line to an I/O SAPIC
@@
-146,7
+146,7
@@
#include <asm/superio.h>
#endif
#include <asm/superio.h>
#endif
-#include <asm/
iosapic
.h>
+#include <asm/
ropes
.h>
#include "./iosapic_private.h"
#define MODULE_NAME "iosapic"
#include "./iosapic_private.h"
#define MODULE_NAME "iosapic"
@@
-619,7
+619,7
@@
iosapic_set_irt_data( struct vector_info *vi, u32 *dp0, u32 *dp1)
static struct vector_info *iosapic_get_vector(unsigned int irq)
{
static struct vector_info *iosapic_get_vector(unsigned int irq)
{
- return irq_desc[irq].
handler
_data;
+ return irq_desc[irq].
chip
_data;
}
static void iosapic_disable_irq(unsigned int irq)
}
static void iosapic_disable_irq(unsigned int irq)
@@
-692,6
+692,7
@@
static void iosapic_end_irq(unsigned int irq)
DBG(KERN_DEBUG "end_irq(%d): eoi(%p, 0x%x)\n", irq,
vi->eoi_addr, vi->eoi_data);
iosapic_eoi(vi->eoi_addr, vi->eoi_data);
DBG(KERN_DEBUG "end_irq(%d): eoi(%p, 0x%x)\n", irq,
vi->eoi_addr, vi->eoi_data);
iosapic_eoi(vi->eoi_addr, vi->eoi_data);
+ cpu_end_irq(irq);
}
static unsigned int iosapic_startup_irq(unsigned int irq)
}
static unsigned int iosapic_startup_irq(unsigned int irq)
@@
-728,7
+729,7
@@
static struct hw_interrupt_type iosapic_interrupt_type = {
.shutdown = iosapic_disable_irq,
.enable = iosapic_enable_irq,
.disable = iosapic_disable_irq,
.shutdown = iosapic_disable_irq,
.enable = iosapic_enable_irq,
.disable = iosapic_disable_irq,
- .ack =
no
_ack_irq,
+ .ack =
cpu
_ack_irq,
.end = iosapic_end_irq,
#ifdef CONFIG_SMP
.set_affinity = iosapic_set_affinity_irq,
.end = iosapic_end_irq,
#ifdef CONFIG_SMP
.set_affinity = iosapic_set_affinity_irq,
@@
-873,13
+874,13
@@
void *iosapic_register(unsigned long hpa)
return NULL;
}
return NULL;
}
- isi =
(struct iosapic_info *)
kzalloc(sizeof(struct iosapic_info), GFP_KERNEL);
+ isi = kzalloc(sizeof(struct iosapic_info), GFP_KERNEL);
if (!isi) {
BUG();
return NULL;
}
if (!isi) {
BUG();
return NULL;
}
- isi->addr = ioremap(hpa, 4096);
+ isi->addr = ioremap
_nocache
(hpa, 4096);
isi->isi_hpa = hpa;
isi->isi_version = iosapic_rd_version(isi);
isi->isi_num_vectors = IOSAPIC_IRDT_MAX_ENTRY(isi->isi_version) + 1;
isi->isi_hpa = hpa;
isi->isi_version = iosapic_rd_version(isi);
isi->isi_num_vectors = IOSAPIC_IRDT_MAX_ENTRY(isi->isi_version) + 1;