Diff output is rather weird
--- linux-2.4.1-ac4.orig/drivers/media/radio/radio-maxiradio.c	Tue Feb  6 21:48:07 2001
+++ linux-2.4.1-ac4/drivers/media/radio/radio-maxiradio.c	Tue Feb  6 22:31:02 2001
@@ -308,80 +308,77 @@
 {
 }
 
-
-inline static __u16 radio_install(struct pci_dev *pcidev);
-
 MODULE_AUTHOR("Dimitromanolakis Apostolos, apdim@grecian.net");
 MODULE_DESCRIPTION("Radio driver for the Guillemot Maxi Radio FM2000 radio.");
 
 EXPORT_NO_SYMBOLS;
 
-void __exit maxiradio_radio_exit(void)
+static int __devinit maxiradio_init_one(struct pci_dev *pdev, struct pci_device_id *ent)
 {
-	video_unregister_device(&maxiradio_radio);
+	if(!request_region(pci_resource_start(pdev, 0),
+	                   pci_resource_len(pdev, 0), "Maxi Radio FM 2000")) {
+	        printk(KERN_ERR "radio-maxiradio: can't reserve I/O ports\n");
+	        goto err_out;
+	}
+	if (pci_enable_device(pdev))
+	        goto err_out_free_region;
 
-	release_region(radio_unit.io,4);
-}
+	radio_unit.io = pci_resource_start(pdev, 0);
+	init_MUTEX(&radio_unit.lock);
+	maxiradio_radio.priv = &radio_unit;
 
-int __init maxiradio_radio_init(void)
-{
-	struct pci_dev *pcidev = NULL;
-	int found;
-	
-	if(!pci_present())
-		return -ENODEV;
-	
-	found = 0;
-
-	pcidev = pci_find_device(PCI_VENDOR_ID_GUILLEMOT, 
-							PCI_DEVICE_ID_GUILLEMOT_MAXIRADIO,
-						  pcidev);
-							
-	found += radio_install(pcidev);
-		
-	if(found == 0) {
-		printk(KERN_INFO "radio-maxiradio: no devices found.\n");
-		return -ENODEV;
+	if(video_register_device(&maxiradio_radio, VFL_TYPE_RADIO)==-1) {
+	        printk("radio-maxiradio: can't register device!");
+	        goto err_out_free_region;
 	}
 
+
+	printk(KERN_INFO "radio-maxiradio: version "
+	       DRIVER_VERSION
+	       " time "
+	       __TIME__ "  "
+	       __DATE__
+	       "\n");
+
+	printk(KERN_INFO "radio-maxiradio: found Guillemot MAXI Radio device (io = 0x%x)\n",
+	       radio_unit.io);
 	return 0;
-}
 
-module_init(maxiradio_radio_init);
-module_exit(maxiradio_radio_exit);
+err_out_free_region:
+	release_region(pci_resource_start(pdev, 0), pci_resource_len(pdev, 0));
+err_out:
+	return -ENODEV;
+}
 
-inline static __u16 radio_install(struct pci_dev *pcidev)
+static void __devexit maxiradio_remove_one(struct pci_dev *pdev)
 {
-	radio_unit.io = pcidev->resource[0].start;
+	video_unregister_device(&maxiradio_radio);
+	release_region(pci_resource_start(pdev, 0), pci_resource_len(pdev, 0));
+}
 
-	pci_enable_device(pcidev);
-	maxiradio_radio.priv = &radio_unit;
-	init_MUTEX(&radio_unit.lock);
-	
-	if(video_register_device(&maxiradio_radio, VFL_TYPE_RADIO)==-1) {
-		printk("radio-maxiradio: can't register device!");
-			return 0;
-		}
-		
-		
-	printk(KERN_INFO "radio-maxiradio: version "
-	       DRIVER_VERSION 
-	       "\n");
-					 
-	printk(KERN_INFO 
-		"radio-maxiradio: found Guillemot MAXI Radio device (io = 0x%x)\n",
-		radio_unit.io
-		);
-
-
-	if(!request_region(radio_unit.io, 4, "Maxi Radio FM 2000"))
-		{
-			printk(KERN_ERR "radio-maxiradio: port 0x%x already in use\n",
-			radio_unit.io);
-			
-			return 0;
-		}
+static struct pci_device_id maxiradio_pci_tbl[] __devinitdata = {
+	{ PCI_VENDOR_ID_GUILLEMOT, PCI_DEVICE_ID_GUILLEMOT_MAXIRADIO,
+		PCI_ANY_ID, PCI_ANY_ID, },
+	{ 0,}
+};
+MODULE_DEVICE_TABLE(pci, maxiradio_pci_tbl);
+
+static struct pci_driver maxiradio_driver = {
+	name:		"rqdio-maxiradio",
+	id_table:	maxiradio_pci_tbl,
+	probe:		maxiradio_init_one,
+	remove:		maxiradio_remove_one,
+};
+
+int __init maxiradio_radio_init(pdev)
+{
+	return pci_register_driver(&maxiradio_driver);
+}
 
-	return 1;
+void __exit maxiradio_radio_exit(void)
+{
+	pci_unregister_driver(&maxiradio_driver);
 }
 
+module_init(maxiradio_radio_init);
+module_exit(maxiradio_radio_exit);
-- Ueimor - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/