diff options
Diffstat (limited to 'drivers/uio/uio_cif.c')
| -rw-r--r-- | drivers/uio/uio_cif.c | 28 |
1 files changed, 8 insertions, 20 deletions
diff --git a/drivers/uio/uio_cif.c b/drivers/uio/uio_cif.c index 57376060b97..30f533ce375 100644 --- a/drivers/uio/uio_cif.c +++ b/drivers/uio/uio_cif.c @@ -1,7 +1,7 @@ /* * UIO Hilscher CIF card driver * - * (C) 2007 Hans J. Koch <hjk@linutronix.de> + * (C) 2007 Hans J. Koch <hjk@hansjkoch.de> * Original code (C) 2005 Benedikt Spranger <b.spranger@linutronix.de> * * Licensed under GPL version 2 only. @@ -11,6 +11,7 @@ #include <linux/device.h> #include <linux/module.h> #include <linux/pci.h> +#include <linux/slab.h> #include <linux/uio_driver.h> #include <asm/io.h> @@ -39,7 +40,7 @@ static irqreturn_t hilscher_handler(int irq, struct uio_info *dev_info) return IRQ_HANDLED; } -static int __devinit hilscher_pci_probe(struct pci_dev *dev, +static int hilscher_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) { struct uio_info *info; @@ -57,8 +58,7 @@ static int __devinit hilscher_pci_probe(struct pci_dev *dev, info->mem[0].addr = pci_resource_start(dev, 0); if (!info->mem[0].addr) goto out_release; - info->mem[0].internal_addr = ioremap(pci_resource_start(dev, 0), - pci_resource_len(dev, 0)); + info->mem[0].internal_addr = pci_ioremap_bar(dev, 0); if (!info->mem[0].internal_addr) goto out_release; @@ -79,7 +79,7 @@ static int __devinit hilscher_pci_probe(struct pci_dev *dev, } info->version = "0.0.1"; info->irq = dev->irq; - info->irq_flags = IRQF_DISABLED | IRQF_SHARED; + info->irq_flags = IRQF_SHARED; info->handler = hilscher_handler; if (uio_register_device(&dev->dev, info)) @@ -106,13 +106,12 @@ static void hilscher_pci_remove(struct pci_dev *dev) uio_unregister_device(info); pci_release_regions(dev); pci_disable_device(dev); - pci_set_drvdata(dev, NULL); iounmap(info->mem[0].internal_addr); kfree (info); } -static struct pci_device_id hilscher_pci_ids[] __devinitdata = { +static struct pci_device_id hilscher_pci_ids[] = { { .vendor = PCI_VENDOR_ID_PLX, .device = PCI_DEVICE_ID_PLX_9030, @@ -135,18 +134,7 @@ static struct pci_driver hilscher_pci_driver = { .remove = hilscher_pci_remove, }; -static int __init hilscher_init_module(void) -{ - return pci_register_driver(&hilscher_pci_driver); -} - -static void __exit hilscher_exit_module(void) -{ - pci_unregister_driver(&hilscher_pci_driver); -} - -module_init(hilscher_init_module); -module_exit(hilscher_exit_module); - +module_pci_driver(hilscher_pci_driver); +MODULE_DEVICE_TABLE(pci, hilscher_pci_ids); MODULE_LICENSE("GPL v2"); MODULE_AUTHOR("Hans J. Koch, Benedikt Spranger"); |
