aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Kokshaysky <ink@jurassic.park.msu.ru>2005-10-31 17:43:56 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2005-11-10 19:09:16 -0500
commita5312e28c195f6118ba52fb8abe17cf2efc6a427 (patch)
tree49a4812dd3c48b0a98c5acd94a8c7117a5155c1d
parent02f313b2cc5d8273e3f2ffa23fc72392b2174cef (diff)
[PATCH] PCI: NCR 53c810 quirk
Move the PPC fixup for old NCR 810 controllers to generic quirks - it's needed for Alpha, x86 and other architectures that use setup-bus.c. Thanks to Jay Estabrook for pointing out the issue. Signed-off-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--arch/ppc/kernel/pci.c14
-rw-r--r--drivers/pci/quirks.c15
2 files changed, 15 insertions, 14 deletions
diff --git a/arch/ppc/kernel/pci.c b/arch/ppc/kernel/pci.c
index e8f4e576750a..48ed58f995c0 100644
--- a/arch/ppc/kernel/pci.c
+++ b/arch/ppc/kernel/pci.c
@@ -62,20 +62,6 @@ struct pci_controller** hose_tail = &hose_head;
62static int pci_bus_count; 62static int pci_bus_count;
63 63
64static void 64static void
65fixup_rev1_53c810(struct pci_dev* dev)
66{
67 /* rev 1 ncr53c810 chips don't set the class at all which means
68 * they don't get their resources remapped. Fix that here.
69 */
70
71 if ((dev->class == PCI_CLASS_NOT_DEFINED)) {
72 printk("NCR 53c810 rev 1 detected, setting PCI class.\n");
73 dev->class = PCI_CLASS_STORAGE_SCSI;
74 }
75}
76DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NCR, PCI_DEVICE_ID_NCR_53C810, fixup_rev1_53c810);
77
78static void
79fixup_broken_pcnet32(struct pci_dev* dev) 65fixup_broken_pcnet32(struct pci_dev* dev)
80{ 66{
81 if ((dev->class>>8 == PCI_CLASS_NETWORK_ETHERNET)) { 67 if ((dev->class>>8 == PCI_CLASS_NETWORK_ETHERNET)) {
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index afcbd50ffc0e..3a4f49f4effb 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -1243,6 +1243,21 @@ static void __devinit quirk_netmos(struct pci_dev *dev)
1243} 1243}
1244DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NETMOS, PCI_ANY_ID, quirk_netmos); 1244DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NETMOS, PCI_ANY_ID, quirk_netmos);
1245 1245
1246
1247static void __devinit fixup_rev1_53c810(struct pci_dev* dev)
1248{
1249 /* rev 1 ncr53c810 chips don't set the class at all which means
1250 * they don't get their resources remapped. Fix that here.
1251 */
1252
1253 if (dev->class == PCI_CLASS_NOT_DEFINED) {
1254 printk(KERN_INFO "NCR 53c810 rev 1 detected, setting PCI class.\n");
1255 dev->class = PCI_CLASS_STORAGE_SCSI;
1256 }
1257}
1258DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NCR, PCI_DEVICE_ID_NCR_53C810, fixup_rev1_53c810);
1259
1260
1246static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_fixup *end) 1261static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_fixup *end)
1247{ 1262{
1248 while (f < end) { 1263 while (f < end) {