Exemple #1
0
static int __init c4_init(void)
{
	int retval;
	int ncards;

	MOD_INC_USE_COUNT;

	retval = c4_attach_driver (&c4_driver);
	if (retval) {
		MOD_DEC_USE_COUNT;
		return retval;
	}

	retval = c4_attach_driver (&c2_driver);
	if (retval) {
		MOD_DEC_USE_COUNT;
		return retval;
	}

	ncards = pci_register_driver(&c4_pci_driver);
	if (ncards) {
		printk(KERN_INFO "%s: %d C4/C2 card(s) detected\n",
				c4_driver.name, ncards);
		MOD_DEC_USE_COUNT;
		return 0;
	}
	printk(KERN_ERR "%s: NO C4/C2 card detected\n", c4_driver.name);
	pci_unregister_driver(&c4_pci_driver);
	detach_capi_driver(&c4_driver);
	detach_capi_driver(&c2_driver);
	MOD_DEC_USE_COUNT;
	return -ENODEV;
}
Exemple #2
0
void 
hycapi_cleanup(void)
{
	struct capi_driver *driver;
	driver = &hycapi_driver;
	if (!hy_di) {
		printk(KERN_ERR "HYSDN: no capi-driver to detach (?)\n");
		return;
	}
	printk(KERN_NOTICE "HYSDN: Detaching capi-driver\n");
	detach_capi_driver(driver);
	hy_di = 0;
	return;
}
Exemple #3
0
static int __init c4_init(void)
{
	int retval;

	MOD_INC_USE_COUNT;

	retval = c4_attach_driver (&c4_driver);
	if (retval) {
		MOD_DEC_USE_COUNT;
		return retval;
	}

	retval = c4_attach_driver (&c2_driver);
	if (retval) {
		MOD_DEC_USE_COUNT;
		return retval;
	}

	retval = search_cards(&c4_driver, PCI_DEVICE_ID_AVM_C4, 4);
	if (retval && ncards == 0) {
    		detach_capi_driver(&c2_driver);
    		detach_capi_driver(&c4_driver);
		MOD_DEC_USE_COUNT;
		return retval;
	}
	retval = search_cards(&c2_driver, PCI_DEVICE_ID_AVM_C2, 2);
	if (retval && ncards == 0) {
    		detach_capi_driver(&c2_driver);
    		detach_capi_driver(&c4_driver);
		MOD_DEC_USE_COUNT;
		return retval;
	}

	if (ncards) {
		printk(KERN_INFO "%s: %d C4/C2 card(s) detected\n",
				c4_driver.name, ncards);
		MOD_DEC_USE_COUNT;
		return 0;
	}
	printk(KERN_ERR "%s: NO C4/C2 card detected\n", c4_driver.name);
	detach_capi_driver(&c4_driver);
	detach_capi_driver(&c2_driver);
	MOD_DEC_USE_COUNT;
	return -ENODEV;
}
Exemple #4
0
static void __exit c4_exit(void)
{
	pci_unregister_driver(&c4_pci_driver);
	detach_capi_driver(&c2_driver);
	detach_capi_driver(&c4_driver);
}
static void __exit b1isa_exit(void)
{
    detach_capi_driver(&b1isa_driver);
}
Exemple #6
0
static void __exit c4_exit(void)
{
    detach_capi_driver(&c2_driver);
    detach_capi_driver(&c4_driver);
}