linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* PATCH: Add fixup functionality to the PCI drivers
@ 2004-11-05 16:40 Alan Cox
  2004-11-05 22:13 ` Bartlomiej Zolnierkiewicz
  0 siblings, 1 reply; 6+ messages in thread
From: Alan Cox @ 2004-11-05 16:40 UTC (permalink / raw)
  To: Bartlomiej Zolnierkiewicz, linux-ide

Using the ->fixup field that was added we propogate the fixup
functionality into PCI interfaces. The fixup needs to be in the data
structure really as interfaces may be hotplugged/unplugged [plugged only
in base kernel].
The PCI interfaces stay the same so no driver changes are needed except
to use the fixup hook.

diff --exclude-from /usr/src/exclude -u --new-file --recursive linux.vanilla-2.6.10rc1/drivers/ide/setup-pci.c linux-2.6.10rc1/drivers/ide/setup-pci.c
--- linux.vanilla-2.6.10rc1/drivers/ide/setup-pci.c	2004-11-05 15:34:46.000000000 +0000
+++ linux-2.6.10rc1/drivers/ide/setup-pci.c	2004-11-05 16:27:33.000000000 +0000
@@ -729,14 +729,26 @@
 	return index;
 }
 
+/**
+ *	probe_pci_hwif_init	-	probe the hwif then allow fixups
+ *	@hwif: interface to probe
+ *	@d: PCI device
+ *
+ *	Perform the generic probe and if it is successful invoke any
+ *	remaining post probe fixup logic in the driver itself.
+ */
+static void probe_pci_hwif_init(ide_hwif_t *hwif, ide_pci_device_t *d) {
+	probe_hwif_init_with_fixup(hwif, d->fixup);
+}
+
 void ide_setup_pci_device (struct pci_dev *dev, ide_pci_device_t *d)
 {
 	ata_index_t index_list = do_ide_setup_pci_device(dev, d, 1);
 
 	if ((index_list.b.low & 0xf0) != 0xf0)
-		probe_hwif_init(&ide_hwifs[index_list.b.low]);
+		probe_pci_hwif_init(&ide_hwifs[index_list.b.low], d);
 	if ((index_list.b.high & 0xf0) != 0xf0)
-		probe_hwif_init(&ide_hwifs[index_list.b.high]);
+		probe_pci_hwif_init(&ide_hwifs[index_list.b.high], d);
 
 	create_proc_ide_interfaces();
 }
@@ -749,13 +761,13 @@
 	ata_index_t index_list2 = do_ide_setup_pci_device(dev2, d, 0);
 
 	if ((index_list.b.low & 0xf0) != 0xf0)
-		probe_hwif_init(&ide_hwifs[index_list.b.low]);
+		probe_pci_hwif_init(&ide_hwifs[index_list.b.low], d);
 	if ((index_list.b.high & 0xf0) != 0xf0)
-		probe_hwif_init(&ide_hwifs[index_list.b.high]);
+		probe_pci_hwif_init(&ide_hwifs[index_list.b.high], d);
 	if ((index_list2.b.low & 0xf0) != 0xf0)
-		probe_hwif_init(&ide_hwifs[index_list2.b.low]);
+		probe_pci_hwif_init(&ide_hwifs[index_list2.b.low], d);
 	if ((index_list2.b.high & 0xf0) != 0xf0)
-		probe_hwif_init(&ide_hwifs[index_list2.b.high]);
+		probe_pci_hwif_init(&ide_hwifs[index_list2.b.high], d);
 
 	create_proc_ide_interfaces();
 }


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2004-11-06 16:05 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-11-05 16:40 PATCH: Add fixup functionality to the PCI drivers Alan Cox
2004-11-05 22:13 ` Bartlomiej Zolnierkiewicz
2004-11-05 23:29   ` Alan Cox
2004-11-06  0:44     ` Bartlomiej Zolnierkiewicz
2004-11-05 23:43       ` Alan Cox
2004-11-06 16:05         ` Bartlomiej Zolnierkiewicz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).