4 #include <linux/kernel.h>
10 static struct pci_dev *fake_pci_dev(
struct pci_channel *hose,
11 int top_bus,
int busnr,
int devfn)
21 bus.ops = hose->pci_ops;
32 #define EARLY_PCI_OP(rw, size, type) \
33 int __init early_##rw##_config_##size(struct pci_channel *hose, \
34 int top_bus, int bus, int devfn, int offset, type value) \
36 return pci_##rw##_config_##size( \
37 fake_pci_dev(hose, top_bus, bus, devfn), \
49 int top_bus,
int current_bus)
58 for (pci_devfn = 0; pci_devfn < 0xff; pci_devfn++) {
61 if (early_read_config_word(hose, top_bus, current_bus,
72 early_read_config_word(hose, top_bus, current_bus,
76 "PCI: %02x:%02x not 66MHz capable.\n",
77 current_bus, pci_devfn);
87 static void pcibios_enable_err(
unsigned long __data)
89 struct pci_channel *hose = (
struct pci_channel *)__data;
96 static void pcibios_enable_serr(
unsigned long __data)
98 struct pci_channel *hose = (
struct pci_channel *)__data;
109 hose->err_timer.data = (
unsigned long)hose;
110 hose->err_timer.function = pcibios_enable_err;
113 if (hose->serr_irq) {
115 hose->serr_timer.data = (
unsigned long)hose;
116 hose->serr_timer.function = pcibios_enable_serr;
126 struct pci_channel *hose)
128 unsigned int cmd = 0;
139 PCI_STATUS_REC_MASTER_ABORT, 1);