patch-2.4.21 linux-2.4.21/arch/ppc64/kernel/pci_dn.c
Next file: linux-2.4.21/arch/ppc64/kernel/perfmon.c
Previous file: linux-2.4.21/arch/ppc64/kernel/pci_dma.c
Back to the patch index
Back to the overall index
- Lines: 32
- Date:
2003-06-13 07:51:32.000000000 -0700
- Orig file:
linux-2.4.20/arch/ppc64/kernel/pci_dn.c
- Orig date:
2002-11-28 15:53:11.000000000 -0800
diff -urN linux-2.4.20/arch/ppc64/kernel/pci_dn.c linux-2.4.21/arch/ppc64/kernel/pci_dn.c
@@ -50,6 +50,7 @@
struct pci_controller *phb = (struct pci_controller *)data;
u32 *regs;
char *device_type = get_property(dn, "device_type", 0);
+ char *status = get_property(dn, "status", 0);
dn->phb = phb;
if (device_type && strcmp(device_type, "pci") == 0 && get_property(dn, "class-code", 0) == 0) {
@@ -65,6 +66,11 @@
dn->devfn = (regs[0] >> 8) & 0xff;
}
}
+ if (status && strcmp(status, "ok") != 0) {
+ char *name = get_property(dn, "name", 0);
+ printk(KERN_ERR "PCI: %04x:%02x.%x %s (%s) has bad status from firmware! (%s)", dn->busno, PCI_SLOT(dn->devfn), PCI_FUNC(dn->devfn), name ? name : "<no name>", device_type ? device_type : "<unknown type>", status);
+ dn->status = 1;
+ }
return NULL;
}
@@ -75,9 +81,11 @@
static void * __init
write_OF_bars(struct device_node *dn, void *data)
{
+#ifdef CONFIG_PPC_PSERIES
int i;
u32 oldbar, newbar, newbartest;
u8 config_offset;
+#endif
char *name = get_property(dn, "name", 0);
char *device_type = get_property(dn, "device_type", 0);
char devname[128];
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)