x86: coding style fixes to arch/x86/pci/irq.
Before: total: 60 errors, 85 warnings, 1237 lines checked After: total: 1 errors, 82 warnings, 1226 lines checked WARNING: line over 80 characters Compile tested. paolo@paolo-desktop:/tmp$ size irq.o.* text data bss dec hex filename 6128 440 76 6644 19f4 irq.o.after 6128 440 76 6644 19f4 irq.o.before Signed-off-by: Paolo Ciarrocchi <paolo.ciarrocchi@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Родитель
ce8e37cdbd
Коммит
7058b06188
|
@ -11,8 +11,8 @@
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/dmi.h>
|
#include <linux/dmi.h>
|
||||||
#include <asm/io.h>
|
#include <linux/io.h>
|
||||||
#include <asm/smp.h>
|
#include <linux/smp.h>
|
||||||
#include <asm/io_apic.h>
|
#include <asm/io_apic.h>
|
||||||
#include <linux/irq.h>
|
#include <linux/irq.h>
|
||||||
#include <linux/acpi.h>
|
#include <linux/acpi.h>
|
||||||
|
@ -61,7 +61,7 @@ void (*pcibios_disable_irq)(struct pci_dev *dev) = NULL;
|
||||||
* and perform checksum verification.
|
* and perform checksum verification.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline struct irq_routing_table * pirq_check_routing_table(u8 *addr)
|
static inline struct irq_routing_table *pirq_check_routing_table(u8 *addr)
|
||||||
{
|
{
|
||||||
struct irq_routing_table *rt;
|
struct irq_routing_table *rt;
|
||||||
int i;
|
int i;
|
||||||
|
@ -74,7 +74,7 @@ static inline struct irq_routing_table * pirq_check_routing_table(u8 *addr)
|
||||||
rt->size < sizeof(struct irq_routing_table))
|
rt->size < sizeof(struct irq_routing_table))
|
||||||
return NULL;
|
return NULL;
|
||||||
sum = 0;
|
sum = 0;
|
||||||
for (i=0; i < rt->size; i++)
|
for (i = 0; i < rt->size; i++)
|
||||||
sum += addr[i];
|
sum += addr[i];
|
||||||
if (!sum) {
|
if (!sum) {
|
||||||
DBG(KERN_DEBUG "PCI: Interrupt Routing Table found at 0x%p\n", rt);
|
DBG(KERN_DEBUG "PCI: Interrupt Routing Table found at 0x%p\n", rt);
|
||||||
|
@ -100,7 +100,7 @@ static struct irq_routing_table * __init pirq_find_routing_table(void)
|
||||||
return rt;
|
return rt;
|
||||||
printk(KERN_WARNING "PCI: PIRQ table NOT found at pirqaddr\n");
|
printk(KERN_WARNING "PCI: PIRQ table NOT found at pirqaddr\n");
|
||||||
}
|
}
|
||||||
for(addr = (u8 *) __va(0xf0000); addr < (u8 *) __va(0x100000); addr += 16) {
|
for (addr = (u8 *) __va(0xf0000); addr < (u8 *) __va(0x100000); addr += 16) {
|
||||||
rt = pirq_check_routing_table(addr);
|
rt = pirq_check_routing_table(addr);
|
||||||
if (rt)
|
if (rt)
|
||||||
return rt;
|
return rt;
|
||||||
|
@ -122,20 +122,20 @@ static void __init pirq_peer_trick(void)
|
||||||
struct irq_info *e;
|
struct irq_info *e;
|
||||||
|
|
||||||
memset(busmap, 0, sizeof(busmap));
|
memset(busmap, 0, sizeof(busmap));
|
||||||
for(i=0; i < (rt->size - sizeof(struct irq_routing_table)) / sizeof(struct irq_info); i++) {
|
for (i = 0; i < (rt->size - sizeof(struct irq_routing_table)) / sizeof(struct irq_info); i++) {
|
||||||
e = &rt->slots[i];
|
e = &rt->slots[i];
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
{
|
{
|
||||||
int j;
|
int j;
|
||||||
DBG(KERN_DEBUG "%02x:%02x slot=%02x", e->bus, e->devfn/8, e->slot);
|
DBG(KERN_DEBUG "%02x:%02x slot=%02x", e->bus, e->devfn/8, e->slot);
|
||||||
for(j=0; j<4; j++)
|
for (j = 0; j < 4; j++)
|
||||||
DBG(" %d:%02x/%04x", j, e->irq[j].link, e->irq[j].bitmap);
|
DBG(" %d:%02x/%04x", j, e->irq[j].link, e->irq[j].bitmap);
|
||||||
DBG("\n");
|
DBG("\n");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
busmap[e->bus] = 1;
|
busmap[e->bus] = 1;
|
||||||
}
|
}
|
||||||
for(i = 1; i < 256; i++) {
|
for (i = 1; i < 256; i++) {
|
||||||
int node;
|
int node;
|
||||||
if (!busmap[i] || pci_find_bus(0, i))
|
if (!busmap[i] || pci_find_bus(0, i))
|
||||||
continue;
|
continue;
|
||||||
|
@ -285,7 +285,7 @@ static int pirq_ite_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
|
||||||
static const unsigned char pirqmap[4] = { 1, 0, 2, 3 };
|
static const unsigned char pirqmap[4] = { 1, 0, 2, 3 };
|
||||||
|
|
||||||
WARN_ON_ONCE(pirq > 4);
|
WARN_ON_ONCE(pirq > 4);
|
||||||
return read_config_nybble(router,0x43, pirqmap[pirq-1]);
|
return read_config_nybble(router, 0x43, pirqmap[pirq-1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pirq_ite_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
|
static int pirq_ite_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
|
||||||
|
@ -314,7 +314,7 @@ static int pirq_opti_set(struct pci_dev *router, struct pci_dev *dev, int pirq,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Cyrix: nibble offset 0x5C
|
* Cyrix: nibble offset 0x5C
|
||||||
* 0x5C bits 7:4 is INTB bits 3:0 is INTA
|
* 0x5C bits 7:4 is INTB bits 3:0 is INTA
|
||||||
* 0x5D bits 7:4 is INTD bits 3:0 is INTC
|
* 0x5D bits 7:4 is INTD bits 3:0 is INTC
|
||||||
*/
|
*/
|
||||||
static int pirq_cyrix_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
|
static int pirq_cyrix_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
|
||||||
|
@ -350,7 +350,7 @@ static int pirq_cyrix_set(struct pci_dev *router, struct pci_dev *dev, int pirq,
|
||||||
* Apparently there are systems implementing PCI routing table using
|
* Apparently there are systems implementing PCI routing table using
|
||||||
* link values 0x01-0x04 and others using 0x41-0x44 for PCI INTA..D.
|
* link values 0x01-0x04 and others using 0x41-0x44 for PCI INTA..D.
|
||||||
* We try our best to handle both link mappings.
|
* We try our best to handle both link mappings.
|
||||||
*
|
*
|
||||||
* Currently (2003-05-21) it appears most SiS chipsets follow the
|
* Currently (2003-05-21) it appears most SiS chipsets follow the
|
||||||
* definition of routing registers from the SiS-5595 southbridge.
|
* definition of routing registers from the SiS-5595 southbridge.
|
||||||
* According to the SiS 5595 datasheets the revision id's of the
|
* According to the SiS 5595 datasheets the revision id's of the
|
||||||
|
@ -370,7 +370,7 @@ static int pirq_cyrix_set(struct pci_dev *router, struct pci_dev *dev, int pirq,
|
||||||
*
|
*
|
||||||
* 0x62: USBIRQ:
|
* 0x62: USBIRQ:
|
||||||
* bit 6 OHCI function disabled (0), enabled (1)
|
* bit 6 OHCI function disabled (0), enabled (1)
|
||||||
*
|
*
|
||||||
* 0x6a: ACPI/SCI IRQ: bits 4-6 reserved
|
* 0x6a: ACPI/SCI IRQ: bits 4-6 reserved
|
||||||
*
|
*
|
||||||
* 0x7e: Data Acq. Module IRQ - bits 4-6 reserved
|
* 0x7e: Data Acq. Module IRQ - bits 4-6 reserved
|
||||||
|
@ -487,9 +487,7 @@ static int pirq_amd756_get(struct pci_dev *router, struct pci_dev *dev, int pirq
|
||||||
u8 irq;
|
u8 irq;
|
||||||
irq = 0;
|
irq = 0;
|
||||||
if (pirq <= 4)
|
if (pirq <= 4)
|
||||||
{
|
|
||||||
irq = read_config_nybble(router, 0x56, pirq - 1);
|
irq = read_config_nybble(router, 0x56, pirq - 1);
|
||||||
}
|
|
||||||
printk(KERN_INFO "AMD756: dev %04x:%04x, router pirq : %d get irq : %2d\n",
|
printk(KERN_INFO "AMD756: dev %04x:%04x, router pirq : %d get irq : %2d\n",
|
||||||
dev->vendor, dev->device, pirq, irq);
|
dev->vendor, dev->device, pirq, irq);
|
||||||
return irq;
|
return irq;
|
||||||
|
@ -497,12 +495,10 @@ static int pirq_amd756_get(struct pci_dev *router, struct pci_dev *dev, int pirq
|
||||||
|
|
||||||
static int pirq_amd756_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
|
static int pirq_amd756_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
|
||||||
{
|
{
|
||||||
printk(KERN_INFO "AMD756: dev %04x:%04x, router pirq : %d SET irq : %2d\n",
|
printk(KERN_INFO "AMD756: dev %04x:%04x, router pirq : %d SET irq : %2d\n",
|
||||||
dev->vendor, dev->device, pirq, irq);
|
dev->vendor, dev->device, pirq, irq);
|
||||||
if (pirq <= 4)
|
if (pirq <= 4)
|
||||||
{
|
|
||||||
write_config_nybble(router, 0x56, pirq - 1, irq);
|
write_config_nybble(router, 0x56, pirq - 1, irq);
|
||||||
}
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -549,50 +545,49 @@ static __init int intel_router_probe(struct irq_router *r, struct pci_dev *route
|
||||||
if (pci_dev_present(pirq_440gx))
|
if (pci_dev_present(pirq_440gx))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
switch(device)
|
switch (device) {
|
||||||
{
|
case PCI_DEVICE_ID_INTEL_82371FB_0:
|
||||||
case PCI_DEVICE_ID_INTEL_82371FB_0:
|
case PCI_DEVICE_ID_INTEL_82371SB_0:
|
||||||
case PCI_DEVICE_ID_INTEL_82371SB_0:
|
case PCI_DEVICE_ID_INTEL_82371AB_0:
|
||||||
case PCI_DEVICE_ID_INTEL_82371AB_0:
|
case PCI_DEVICE_ID_INTEL_82371MX:
|
||||||
case PCI_DEVICE_ID_INTEL_82371MX:
|
case PCI_DEVICE_ID_INTEL_82443MX_0:
|
||||||
case PCI_DEVICE_ID_INTEL_82443MX_0:
|
case PCI_DEVICE_ID_INTEL_82801AA_0:
|
||||||
case PCI_DEVICE_ID_INTEL_82801AA_0:
|
case PCI_DEVICE_ID_INTEL_82801AB_0:
|
||||||
case PCI_DEVICE_ID_INTEL_82801AB_0:
|
case PCI_DEVICE_ID_INTEL_82801BA_0:
|
||||||
case PCI_DEVICE_ID_INTEL_82801BA_0:
|
case PCI_DEVICE_ID_INTEL_82801BA_10:
|
||||||
case PCI_DEVICE_ID_INTEL_82801BA_10:
|
case PCI_DEVICE_ID_INTEL_82801CA_0:
|
||||||
case PCI_DEVICE_ID_INTEL_82801CA_0:
|
case PCI_DEVICE_ID_INTEL_82801CA_12:
|
||||||
case PCI_DEVICE_ID_INTEL_82801CA_12:
|
case PCI_DEVICE_ID_INTEL_82801DB_0:
|
||||||
case PCI_DEVICE_ID_INTEL_82801DB_0:
|
case PCI_DEVICE_ID_INTEL_82801E_0:
|
||||||
case PCI_DEVICE_ID_INTEL_82801E_0:
|
case PCI_DEVICE_ID_INTEL_82801EB_0:
|
||||||
case PCI_DEVICE_ID_INTEL_82801EB_0:
|
case PCI_DEVICE_ID_INTEL_ESB_1:
|
||||||
case PCI_DEVICE_ID_INTEL_ESB_1:
|
case PCI_DEVICE_ID_INTEL_ICH6_0:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH6_0:
|
case PCI_DEVICE_ID_INTEL_ICH6_1:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH6_1:
|
case PCI_DEVICE_ID_INTEL_ICH7_0:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH7_0:
|
case PCI_DEVICE_ID_INTEL_ICH7_1:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH7_1:
|
case PCI_DEVICE_ID_INTEL_ICH7_30:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH7_30:
|
case PCI_DEVICE_ID_INTEL_ICH7_31:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH7_31:
|
case PCI_DEVICE_ID_INTEL_ESB2_0:
|
||||||
case PCI_DEVICE_ID_INTEL_ESB2_0:
|
case PCI_DEVICE_ID_INTEL_ICH8_0:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH8_0:
|
case PCI_DEVICE_ID_INTEL_ICH8_1:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH8_1:
|
case PCI_DEVICE_ID_INTEL_ICH8_2:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH8_2:
|
case PCI_DEVICE_ID_INTEL_ICH8_3:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH8_3:
|
case PCI_DEVICE_ID_INTEL_ICH8_4:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH8_4:
|
case PCI_DEVICE_ID_INTEL_ICH9_0:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH9_0:
|
case PCI_DEVICE_ID_INTEL_ICH9_1:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH9_1:
|
case PCI_DEVICE_ID_INTEL_ICH9_2:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH9_2:
|
case PCI_DEVICE_ID_INTEL_ICH9_3:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH9_3:
|
case PCI_DEVICE_ID_INTEL_ICH9_4:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH9_4:
|
case PCI_DEVICE_ID_INTEL_ICH9_5:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH9_5:
|
case PCI_DEVICE_ID_INTEL_TOLAPAI_0:
|
||||||
case PCI_DEVICE_ID_INTEL_TOLAPAI_0:
|
case PCI_DEVICE_ID_INTEL_ICH10_0:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH10_0:
|
case PCI_DEVICE_ID_INTEL_ICH10_1:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH10_1:
|
case PCI_DEVICE_ID_INTEL_ICH10_2:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH10_2:
|
case PCI_DEVICE_ID_INTEL_ICH10_3:
|
||||||
case PCI_DEVICE_ID_INTEL_ICH10_3:
|
r->name = "PIIX/ICH";
|
||||||
r->name = "PIIX/ICH";
|
r->get = pirq_piix_get;
|
||||||
r->get = pirq_piix_get;
|
r->set = pirq_piix_set;
|
||||||
r->set = pirq_piix_set;
|
return 1;
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -606,7 +601,7 @@ static __init int via_router_probe(struct irq_router *r,
|
||||||
* workarounds for some buggy BIOSes
|
* workarounds for some buggy BIOSes
|
||||||
*/
|
*/
|
||||||
if (device == PCI_DEVICE_ID_VIA_82C586_0) {
|
if (device == PCI_DEVICE_ID_VIA_82C586_0) {
|
||||||
switch(router->device) {
|
switch (router->device) {
|
||||||
case PCI_DEVICE_ID_VIA_82C686:
|
case PCI_DEVICE_ID_VIA_82C686:
|
||||||
/*
|
/*
|
||||||
* Asus k7m bios wrongly reports 82C686A
|
* Asus k7m bios wrongly reports 82C686A
|
||||||
|
@ -624,7 +619,7 @@ static __init int via_router_probe(struct irq_router *r,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(device) {
|
switch (device) {
|
||||||
case PCI_DEVICE_ID_VIA_82C586_0:
|
case PCI_DEVICE_ID_VIA_82C586_0:
|
||||||
r->name = "VIA";
|
r->name = "VIA";
|
||||||
r->get = pirq_via586_get;
|
r->get = pirq_via586_get;
|
||||||
|
@ -647,13 +642,12 @@ static __init int via_router_probe(struct irq_router *r,
|
||||||
|
|
||||||
static __init int vlsi_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
|
static __init int vlsi_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
|
||||||
{
|
{
|
||||||
switch(device)
|
switch (device) {
|
||||||
{
|
case PCI_DEVICE_ID_VLSI_82C534:
|
||||||
case PCI_DEVICE_ID_VLSI_82C534:
|
r->name = "VLSI 82C534";
|
||||||
r->name = "VLSI 82C534";
|
r->get = pirq_vlsi_get;
|
||||||
r->get = pirq_vlsi_get;
|
r->set = pirq_vlsi_set;
|
||||||
r->set = pirq_vlsi_set;
|
return 1;
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -661,14 +655,13 @@ static __init int vlsi_router_probe(struct irq_router *r, struct pci_dev *router
|
||||||
|
|
||||||
static __init int serverworks_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
|
static __init int serverworks_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
|
||||||
{
|
{
|
||||||
switch(device)
|
switch (device) {
|
||||||
{
|
case PCI_DEVICE_ID_SERVERWORKS_OSB4:
|
||||||
case PCI_DEVICE_ID_SERVERWORKS_OSB4:
|
case PCI_DEVICE_ID_SERVERWORKS_CSB5:
|
||||||
case PCI_DEVICE_ID_SERVERWORKS_CSB5:
|
r->name = "ServerWorks";
|
||||||
r->name = "ServerWorks";
|
r->get = pirq_serverworks_get;
|
||||||
r->get = pirq_serverworks_get;
|
r->set = pirq_serverworks_set;
|
||||||
r->set = pirq_serverworks_set;
|
return 1;
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -677,7 +670,7 @@ static __init int sis_router_probe(struct irq_router *r, struct pci_dev *router,
|
||||||
{
|
{
|
||||||
if (device != PCI_DEVICE_ID_SI_503)
|
if (device != PCI_DEVICE_ID_SI_503)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
r->name = "SIS";
|
r->name = "SIS";
|
||||||
r->get = pirq_sis_get;
|
r->get = pirq_sis_get;
|
||||||
r->set = pirq_sis_set;
|
r->set = pirq_sis_set;
|
||||||
|
@ -686,47 +679,43 @@ static __init int sis_router_probe(struct irq_router *r, struct pci_dev *router,
|
||||||
|
|
||||||
static __init int cyrix_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
|
static __init int cyrix_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
|
||||||
{
|
{
|
||||||
switch(device)
|
switch (device) {
|
||||||
{
|
case PCI_DEVICE_ID_CYRIX_5520:
|
||||||
case PCI_DEVICE_ID_CYRIX_5520:
|
r->name = "NatSemi";
|
||||||
r->name = "NatSemi";
|
r->get = pirq_cyrix_get;
|
||||||
r->get = pirq_cyrix_get;
|
r->set = pirq_cyrix_set;
|
||||||
r->set = pirq_cyrix_set;
|
return 1;
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static __init int opti_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
|
static __init int opti_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
|
||||||
{
|
{
|
||||||
switch(device)
|
switch (device) {
|
||||||
{
|
case PCI_DEVICE_ID_OPTI_82C700:
|
||||||
case PCI_DEVICE_ID_OPTI_82C700:
|
r->name = "OPTI";
|
||||||
r->name = "OPTI";
|
r->get = pirq_opti_get;
|
||||||
r->get = pirq_opti_get;
|
r->set = pirq_opti_set;
|
||||||
r->set = pirq_opti_set;
|
return 1;
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static __init int ite_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
|
static __init int ite_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
|
||||||
{
|
{
|
||||||
switch(device)
|
switch (device) {
|
||||||
{
|
case PCI_DEVICE_ID_ITE_IT8330G_0:
|
||||||
case PCI_DEVICE_ID_ITE_IT8330G_0:
|
r->name = "ITE";
|
||||||
r->name = "ITE";
|
r->get = pirq_ite_get;
|
||||||
r->get = pirq_ite_get;
|
r->set = pirq_ite_set;
|
||||||
r->set = pirq_ite_set;
|
return 1;
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static __init int ali_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
|
static __init int ali_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
|
||||||
{
|
{
|
||||||
switch(device)
|
switch (device) {
|
||||||
{
|
|
||||||
case PCI_DEVICE_ID_AL_M1533:
|
case PCI_DEVICE_ID_AL_M1533:
|
||||||
case PCI_DEVICE_ID_AL_M1563:
|
case PCI_DEVICE_ID_AL_M1563:
|
||||||
printk(KERN_DEBUG "PCI: Using ALI IRQ Router\n");
|
printk(KERN_DEBUG "PCI: Using ALI IRQ Router\n");
|
||||||
|
@ -740,25 +729,24 @@ static __init int ali_router_probe(struct irq_router *r, struct pci_dev *router,
|
||||||
|
|
||||||
static __init int amd_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
|
static __init int amd_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
|
||||||
{
|
{
|
||||||
switch(device)
|
switch (device) {
|
||||||
{
|
case PCI_DEVICE_ID_AMD_VIPER_740B:
|
||||||
case PCI_DEVICE_ID_AMD_VIPER_740B:
|
r->name = "AMD756";
|
||||||
r->name = "AMD756";
|
break;
|
||||||
break;
|
case PCI_DEVICE_ID_AMD_VIPER_7413:
|
||||||
case PCI_DEVICE_ID_AMD_VIPER_7413:
|
r->name = "AMD766";
|
||||||
r->name = "AMD766";
|
break;
|
||||||
break;
|
case PCI_DEVICE_ID_AMD_VIPER_7443:
|
||||||
case PCI_DEVICE_ID_AMD_VIPER_7443:
|
r->name = "AMD768";
|
||||||
r->name = "AMD768";
|
break;
|
||||||
break;
|
default:
|
||||||
default:
|
return 0;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
r->get = pirq_amd756_get;
|
r->get = pirq_amd756_get;
|
||||||
r->set = pirq_amd756_set;
|
r->set = pirq_amd756_set;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static __init int pico_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
|
static __init int pico_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
|
||||||
{
|
{
|
||||||
switch (device) {
|
switch (device) {
|
||||||
|
@ -800,7 +788,7 @@ static struct pci_dev *pirq_router_dev;
|
||||||
* FIXME: should we have an option to say "generic for
|
* FIXME: should we have an option to say "generic for
|
||||||
* chipset" ?
|
* chipset" ?
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void __init pirq_find_router(struct irq_router *r)
|
static void __init pirq_find_router(struct irq_router *r)
|
||||||
{
|
{
|
||||||
struct irq_routing_table *rt = pirq_table;
|
struct irq_routing_table *rt = pirq_table;
|
||||||
|
@ -819,7 +807,7 @@ static void __init pirq_find_router(struct irq_router *r)
|
||||||
r->name = "default";
|
r->name = "default";
|
||||||
r->get = NULL;
|
r->get = NULL;
|
||||||
r->set = NULL;
|
r->set = NULL;
|
||||||
|
|
||||||
DBG(KERN_DEBUG "PCI: Attempting to find IRQ router for %04x:%04x\n",
|
DBG(KERN_DEBUG "PCI: Attempting to find IRQ router for %04x:%04x\n",
|
||||||
rt->rtr_vendor, rt->rtr_device);
|
rt->rtr_vendor, rt->rtr_device);
|
||||||
|
|
||||||
|
@ -830,7 +818,7 @@ static void __init pirq_find_router(struct irq_router *r)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for( h = pirq_routers; h->vendor; h++) {
|
for (h = pirq_routers; h->vendor; h++) {
|
||||||
/* First look for a router match */
|
/* First look for a router match */
|
||||||
if (rt->rtr_vendor == h->vendor && h->probe(r, pirq_router_dev, rt->rtr_device))
|
if (rt->rtr_vendor == h->vendor && h->probe(r, pirq_router_dev, rt->rtr_device))
|
||||||
break;
|
break;
|
||||||
|
@ -882,7 +870,7 @@ static int pcibios_lookup_irq(struct pci_dev *dev, int assign)
|
||||||
|
|
||||||
if (!pirq_table)
|
if (!pirq_table)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
DBG(KERN_DEBUG "IRQ for %s[%c]", pci_name(dev), 'A' + pin);
|
DBG(KERN_DEBUG "IRQ for %s[%c]", pci_name(dev), 'A' + pin);
|
||||||
info = pirq_get_info(dev);
|
info = pirq_get_info(dev);
|
||||||
if (!info) {
|
if (!info) {
|
||||||
|
@ -921,8 +909,10 @@ static int pcibios_lookup_irq(struct pci_dev *dev, int assign)
|
||||||
*/
|
*/
|
||||||
newirq = dev->irq;
|
newirq = dev->irq;
|
||||||
if (newirq && !((1 << newirq) & mask)) {
|
if (newirq && !((1 << newirq) & mask)) {
|
||||||
if ( pci_probe & PCI_USE_PIRQ_MASK) newirq = 0;
|
if (pci_probe & PCI_USE_PIRQ_MASK)
|
||||||
else printk("\n" KERN_WARNING
|
newirq = 0;
|
||||||
|
else
|
||||||
|
printk("\n" KERN_WARNING
|
||||||
"PCI: IRQ %i for device %s doesn't match PIRQ mask "
|
"PCI: IRQ %i for device %s doesn't match PIRQ mask "
|
||||||
"- try pci=usepirqmask\n" KERN_DEBUG, newirq,
|
"- try pci=usepirqmask\n" KERN_DEBUG, newirq,
|
||||||
pci_name(dev));
|
pci_name(dev));
|
||||||
|
@ -942,8 +932,8 @@ static int pcibios_lookup_irq(struct pci_dev *dev, int assign)
|
||||||
irq = pirq & 0xf;
|
irq = pirq & 0xf;
|
||||||
DBG(" -> hardcoded IRQ %d\n", irq);
|
DBG(" -> hardcoded IRQ %d\n", irq);
|
||||||
msg = "Hardcoded";
|
msg = "Hardcoded";
|
||||||
} else if ( r->get && (irq = r->get(pirq_router_dev, dev, pirq)) && \
|
} else if (r->get && (irq = r->get(pirq_router_dev, dev, pirq)) && \
|
||||||
((!(pci_probe & PCI_USE_PIRQ_MASK)) || ((1 << irq) & mask)) ) {
|
((!(pci_probe & PCI_USE_PIRQ_MASK)) || ((1 << irq) & mask))) {
|
||||||
DBG(" -> got IRQ %d\n", irq);
|
DBG(" -> got IRQ %d\n", irq);
|
||||||
msg = "Found";
|
msg = "Found";
|
||||||
eisa_set_level_irq(irq);
|
eisa_set_level_irq(irq);
|
||||||
|
@ -978,15 +968,15 @@ static int pcibios_lookup_irq(struct pci_dev *dev, int assign)
|
||||||
continue;
|
continue;
|
||||||
if (info->irq[pin].link == pirq) {
|
if (info->irq[pin].link == pirq) {
|
||||||
/* We refuse to override the dev->irq information. Give a warning! */
|
/* We refuse to override the dev->irq information. Give a warning! */
|
||||||
if ( dev2->irq && dev2->irq != irq && \
|
if (dev2->irq && dev2->irq != irq && \
|
||||||
(!(pci_probe & PCI_USE_PIRQ_MASK) || \
|
(!(pci_probe & PCI_USE_PIRQ_MASK) || \
|
||||||
((1 << dev2->irq) & mask)) ) {
|
((1 << dev2->irq) & mask))) {
|
||||||
#ifndef CONFIG_PCI_MSI
|
#ifndef CONFIG_PCI_MSI
|
||||||
printk(KERN_INFO "IRQ routing conflict for %s, have irq %d, want irq %d\n",
|
printk(KERN_INFO "IRQ routing conflict for %s, have irq %d, want irq %d\n",
|
||||||
pci_name(dev2), dev2->irq, irq);
|
pci_name(dev2), dev2->irq, irq);
|
||||||
#endif
|
#endif
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
dev2->irq = irq;
|
dev2->irq = irq;
|
||||||
pirq_penalty[irq]++;
|
pirq_penalty[irq]++;
|
||||||
if (dev != dev2)
|
if (dev != dev2)
|
||||||
|
@ -1024,8 +1014,7 @@ static void __init pcibios_fixup_irqs(void)
|
||||||
/*
|
/*
|
||||||
* Recalculate IRQ numbers if we use the I/O APIC.
|
* Recalculate IRQ numbers if we use the I/O APIC.
|
||||||
*/
|
*/
|
||||||
if (io_apic_assign_pci_irqs)
|
if (io_apic_assign_pci_irqs) {
|
||||||
{
|
|
||||||
int irq;
|
int irq;
|
||||||
|
|
||||||
if (pin) {
|
if (pin) {
|
||||||
|
@ -1038,10 +1027,10 @@ static void __init pcibios_fixup_irqs(void)
|
||||||
* busses itself so we should get into this branch reliably.
|
* busses itself so we should get into this branch reliably.
|
||||||
*/
|
*/
|
||||||
if (irq < 0 && dev->bus->parent) { /* go back to the bridge */
|
if (irq < 0 && dev->bus->parent) { /* go back to the bridge */
|
||||||
struct pci_dev * bridge = dev->bus->self;
|
struct pci_dev *bridge = dev->bus->self;
|
||||||
|
|
||||||
pin = (pin + PCI_SLOT(dev->devfn)) % 4;
|
pin = (pin + PCI_SLOT(dev->devfn)) % 4;
|
||||||
irq = IO_APIC_get_PCI_irq_vector(bridge->bus->number,
|
irq = IO_APIC_get_PCI_irq_vector(bridge->bus->number,
|
||||||
PCI_SLOT(bridge->devfn), pin);
|
PCI_SLOT(bridge->devfn), pin);
|
||||||
if (irq >= 0)
|
if (irq >= 0)
|
||||||
printk(KERN_WARNING "PCI: using PPB %s[%c] to get irq %d\n",
|
printk(KERN_WARNING "PCI: using PPB %s[%c] to get irq %d\n",
|
||||||
|
@ -1131,7 +1120,7 @@ static int __init pcibios_irq_init(void)
|
||||||
pirq_find_router(&pirq_router);
|
pirq_find_router(&pirq_router);
|
||||||
if (pirq_table->exclusive_irqs) {
|
if (pirq_table->exclusive_irqs) {
|
||||||
int i;
|
int i;
|
||||||
for (i=0; i<16; i++)
|
for (i = 0; i < 16; i++)
|
||||||
if (!(pirq_table->exclusive_irqs & (1 << i)))
|
if (!(pirq_table->exclusive_irqs & (1 << i)))
|
||||||
pirq_penalty[i] += 100;
|
pirq_penalty[i] += 100;
|
||||||
}
|
}
|
||||||
|
@ -1196,10 +1185,10 @@ static int pirq_enable_irq(struct pci_dev *dev)
|
||||||
*/
|
*/
|
||||||
temp_dev = dev;
|
temp_dev = dev;
|
||||||
while (irq < 0 && dev->bus->parent) { /* go back to the bridge */
|
while (irq < 0 && dev->bus->parent) { /* go back to the bridge */
|
||||||
struct pci_dev * bridge = dev->bus->self;
|
struct pci_dev *bridge = dev->bus->self;
|
||||||
|
|
||||||
pin = (pin + PCI_SLOT(dev->devfn)) % 4;
|
pin = (pin + PCI_SLOT(dev->devfn)) % 4;
|
||||||
irq = IO_APIC_get_PCI_irq_vector(bridge->bus->number,
|
irq = IO_APIC_get_PCI_irq_vector(bridge->bus->number,
|
||||||
PCI_SLOT(bridge->devfn), pin);
|
PCI_SLOT(bridge->devfn), pin);
|
||||||
if (irq >= 0)
|
if (irq >= 0)
|
||||||
printk(KERN_WARNING "PCI: using PPB %s[%c] to get irq %d\n",
|
printk(KERN_WARNING "PCI: using PPB %s[%c] to get irq %d\n",
|
||||||
|
|
Загрузка…
Ссылка в новой задаче