fix for changes in driver_register for 2.6.10 and higher versions

This commit is contained in:
Karsten Keil 2005-03-09 03:04:07 +00:00
parent 2476232664
commit 5e7f03944c
4 changed files with 31 additions and 5 deletions

View File

@ -1329,7 +1329,7 @@ static int __devinit fritzpci_probe(struct pci_dev *pdev, const struct pci_devic
}
printk(KERN_INFO "mISDN_fcpcipnp: found adapter %s at %s\n",
(char *) ent->driver_data, pdev->slot_name);
(char *) ent->driver_data, pci_name(pdev));
card->addr = pci_resource_start(pdev, 1);
card->irq = pdev->irq;
@ -1456,7 +1456,10 @@ static char FritzName[] = "AVM Fritz";
static int __init Fritz_init(void)
{
int err, pci_nr_found;
int err;
#ifdef OLD_PCI_REGISTER_DRIVER
int pci_nr_found;
#endif
printk(KERN_INFO "AVM Fritz PCI/PnP driver Rev. %s\n", mISDN_getrev(avm_fritz_rev));
#ifdef MODULE
@ -1476,25 +1479,31 @@ static int __init Fritz_init(void)
err = pci_register_driver(&fcpci_driver);
if (err < 0)
goto out;
#ifdef OLD_PCI_REGISTER_DRIVER
pci_nr_found = err;
#endif
#if defined(CONFIG_PNP)
err = pnp_register_driver(&fcpnp_driver);
if (err < 0)
goto out_unregister_pci;
#endif
#if !defined(CONFIG_HOTPLUG) || defined(MODULE)
#ifdef OLD_PCI_REGISTER_DRIVER
if (pci_nr_found + err == 0) {
err = -ENODEV;
goto out_unregister_isapnp;
}
#endif
#endif
return 0;
#if !defined(CONFIG_HOTPLUG) || defined(MODULE)
#ifdef OLD_PCI_REGISTER_DRIVER
out_unregister_isapnp:
#if defined(CONFIG_PNP)
pnp_unregister_driver(&fcpnp_driver);
#endif
#endif
#endif
out_unregister_pci:
pci_unregister_driver(&fcpci_driver);

View File

@ -812,7 +812,7 @@ static int __devinit sedlpci_probe(struct pci_dev *pdev, const struct pci_device
}
printk(KERN_INFO "mISDN: sedlpci found adapter %s at %s\n",
(char *) ent->driver_data, pdev->slot_name);
(char *) ent->driver_data, pci_name(pdev));
card->cfg = pci_resource_start(pdev, 0);
card->irq = pdev->irq;
@ -937,7 +937,10 @@ static struct isapnp_driver sedlpnp_driver = {
static int __init Speedfax_init(void)
{
int err, pci_nr_found;
int err;
#ifdef OLD_PCI_REGISTER_DRIVER
int pci_nr_found;
#endif
#ifdef MODULE
speedfax.owner = THIS_MODULE;
@ -960,25 +963,31 @@ static int __init Speedfax_init(void)
err = pci_register_driver(&sedlpci_driver);
if (err < 0)
goto out;
#ifdef OLD_PCI_REGISTER_DRIVER
pci_nr_found = err;
#endif
#if defined(CONFIG_PNP)
err = pnp_register_driver(&sedlpnp_driver);
if (err < 0)
goto out_unregister_pci;
#endif
#ifdef OLD_PCI_REGISTER_DRIVER
#if !defined(CONFIG_HOTPLUG) || defined(MODULE)
if (pci_nr_found + err == 0) {
err = -ENODEV;
goto out_unregister_isapnp;
}
#endif
#endif
return 0;
#ifdef OLD_PCI_REGISTER_DRIVER
#if !defined(CONFIG_HOTPLUG) || defined(MODULE)
out_unregister_isapnp:
#if defined(CONFIG_PNP)
pnp_unregister_driver(&sedlpnp_driver);
#endif
#endif
#endif
out_unregister_pci:
pci_unregister_driver(&sedlpci_driver);

View File

@ -1503,7 +1503,7 @@ static int __devinit w6692_probe(struct pci_dev *pdev, const struct pci_device_i
}
printk(KERN_INFO "mISDN_w6692: found adapter %s at %s\n",
(char *) ent->driver_data, pdev->slot_name);
(char *) ent->driver_data, pci_name(pdev));
card->addr = pci_resource_start(pdev, 1);
card->irq = pdev->irq;
@ -1580,11 +1580,13 @@ static int __init w6692_init(void)
if (err < 0)
goto out;
#ifdef OLD_PCI_REGISTER_DRIVER
if (err == 0) {
err = -ENODEV;
pci_unregister_driver(&w6692_driver);
goto out;
}
#endif
return 0;
out:

View File

@ -84,5 +84,11 @@ typedef struct wait_queue *wait_queue_head_t;
#define init_waitqueue_entry(q,p) ((q)->task)=(p)
#endif /* COMPAT_HAS_NEW_WAITQ */
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)
#define OLD_PCI_REGISTER_DRIVER 1
#else
#undef OLD_PCI_REGISTER_DRIVER
#endif
#endif /* __KERNEL__ */
#endif /* _LINUX_ISDN_COMPAT_H */