X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fchar%2Fapplicom.c;h=a7c4990b5b6bf0f3929bad97d5957aad0e134ce6;hb=533bb8a4d7388686243c37a414c4448ba3566f8a;hp=bcc4668835b5b11065256ba8a177f865a2f5dfe8;hpb=0a1340c185734a57fbf4775927966ad4a1347b02;p=linux-2.6 diff --git a/drivers/char/applicom.c b/drivers/char/applicom.c index bcc4668835..a7c4990b5b 100644 --- a/drivers/char/applicom.c +++ b/drivers/char/applicom.c @@ -57,7 +57,6 @@ #define PCI_DEVICE_ID_APPLICOM_PCI2000IBS_CAN 0x0002 #define PCI_DEVICE_ID_APPLICOM_PCI2000PFB 0x0003 #endif -#define MAX_PCI_DEVICE_NUM 3 static char *applicom_pci_devnames[] = { "PCI board", @@ -66,12 +65,9 @@ static char *applicom_pci_devnames[] = { }; static struct pci_device_id applicom_pci_tbl[] = { - { PCI_VENDOR_ID_APPLICOM, PCI_DEVICE_ID_APPLICOM_PCIGENERIC, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, - { PCI_VENDOR_ID_APPLICOM, PCI_DEVICE_ID_APPLICOM_PCI2000IBS_CAN, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, - { PCI_VENDOR_ID_APPLICOM, PCI_DEVICE_ID_APPLICOM_PCI2000PFB, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, + { PCI_VDEVICE(APPLICOM, PCI_DEVICE_ID_APPLICOM_PCIGENERIC) }, + { PCI_VDEVICE(APPLICOM, PCI_DEVICE_ID_APPLICOM_PCI2000IBS_CAN) }, + { PCI_VDEVICE(APPLICOM, PCI_DEVICE_ID_APPLICOM_PCI2000PFB) }, { 0 } }; MODULE_DEVICE_TABLE(pci, applicom_pci_tbl); @@ -110,9 +106,9 @@ static ssize_t ac_read (struct file *, char __user *, size_t, loff_t *); static ssize_t ac_write (struct file *, const char __user *, size_t, loff_t *); static int ac_ioctl(struct inode *, struct file *, unsigned int, unsigned long); -static irqreturn_t ac_interrupt(int, void *, struct pt_regs *); +static irqreturn_t ac_interrupt(int, void *); -static struct file_operations ac_fops = { +static const struct file_operations ac_fops = { .owner = THIS_MODULE, .llseek = no_llseek, .read = ac_read, @@ -197,31 +193,29 @@ static int __init applicom_init(void) while ( (dev = pci_get_class(PCI_CLASS_OTHERS << 16, dev))) { - if (dev->vendor != PCI_VENDOR_ID_APPLICOM) - continue; - - if (dev->device > MAX_PCI_DEVICE_NUM || dev->device == 0) + if (!pci_match_id(applicom_pci_tbl, dev)) continue; if (pci_enable_device(dev)) return -EIO; - RamIO = ioremap(dev->resource[0].start, LEN_RAM_IO); + RamIO = ioremap(pci_resource_start(dev, 0), LEN_RAM_IO); if (!RamIO) { printk(KERN_INFO "ac.o: Failed to ioremap PCI memory " "space at 0x%llx\n", - (unsigned long long)dev->resource[0].start); + (unsigned long long)pci_resource_start(dev, 0)); pci_disable_device(dev); return -EIO; } printk(KERN_INFO "Applicom %s found at mem 0x%llx, irq %d\n", applicom_pci_devnames[dev->device-1], - (unsigned long long)dev->resource[0].start, + (unsigned long long)pci_resource_start(dev, 0), dev->irq); - boardno = ac_register_board(dev->resource[0].start, RamIO,0); + boardno = ac_register_board(pci_resource_start(dev, 0), + RamIO, 0); if (!boardno) { printk(KERN_INFO "ac.o: PCI Applicom device doesn't have correct signature.\n"); iounmap(RamIO); @@ -617,7 +611,7 @@ static ssize_t ac_read (struct file *filp, char __user *buf, size_t count, loff_ } } -static irqreturn_t ac_interrupt(int vec, void *dev_instance, struct pt_regs *regs) +static irqreturn_t ac_interrupt(int vec, void *dev_instance) { unsigned int i; unsigned int FlagInt;