예제 #1
0
static void __exit exit_elsa_cs(void)
{
    DEBUG(0, "elsa_cs: unloading\n");
    unregister_pccard_driver(&dev_info);
    while (dev_list != NULL)
        elsa_cs_detach(dev_list);
}
예제 #2
0
static void __exit prism2cs_cleanup(void)
{
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,68))
        dev_link_t *link = dev_list;
        dev_link_t *nlink;
        DBFENTER;

#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10) )
	for (link=dev_list; link != NULL; link = nlink) {
		nlink = link->next;
		if ( link->state & DEV_CONFIG ) {
			prism2sta_release((u_long)link);
		}
		prism2sta_detach(link); /* remember detach() frees link */
	}
#endif

	unregister_pccard_driver( &dev_info);
#else
	pcmcia_unregister_driver(&prism2_cs_driver);
#endif

        printk(KERN_NOTICE "%s Unloaded\n", version);

        DBFEXIT;
        return;
}
예제 #3
0
void __exit exit_bluecard_cs(void)
{
	unregister_pccard_driver(&dev_info);

	while (dev_list != NULL)
		bluecard_detach(dev_list);
}
예제 #4
0
static void __exit avmcs_exit(void)
{
    unregister_pccard_driver(&dev_info);
    while (dev_list != NULL) {
	if (dev_list->state & DEV_CONFIG)
	    avmcs_release((u_long)dev_list);
	avmcs_detach(dev_list);
    }
}
예제 #5
0
static void __exit exit_prism2_pccard(void)
{
	unregister_pccard_driver(&dev_info);
	while (dev_list) {
		PDEBUG(DEBUG_FLOW, "exit_prism2 - detaching device\n");
#ifdef HOSTAP_USE_RELEASE_TIMER
		del_timer(&dev_list->release);
#endif /* HOSTAP_USE_RELEASE_TIMER */
		if (dev_list->state & DEV_CONFIG)
			prism2_release((u_long)dev_list);
		prism2_detach(dev_list);
	}

	printk(KERN_INFO "%s: Driver unloaded\n", dev_info);
}
예제 #6
0
static void __exit
exit_orinoco_cs(void)
{
	TRACE_ENTER("orinoco");

	unregister_pccard_driver(&dev_info);

	if (dev_list)
		DEBUG(0, "orinoco_cs: Removing leftover devices.\n");
	while (dev_list != NULL) {
		del_timer(&dev_list->release);
		if (dev_list->state & DEV_CONFIG)
			orinoco_cs_release((u_long) dev_list);
		orinoco_cs_detach(dev_list);
	}

	TRACE_EXIT("orinoco");
}
예제 #7
0
//****************************************************************************
// small interface to rest of driver, only register and deinit
void pcan_pccard_deinit(void)
{
  DPRINTK(KERN_DEBUG "%s: pcan_pccard_deinit()\n", DEVICE_NAME);

  #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16)
  pcan_unlink_pccard();
  #endif

	#ifdef LINUX_24
  unregister_pccard_driver(&pccard_info);
	#else
  if (pcan_drv.pccarddrv.drv.name)
  {
    // then it was registered
    // unregister pccard parts, makes a plugout of registered devices
    pcmcia_unregister_driver(&pcan_drv.pccarddrv);
  }
	#endif
}