static void __exit au1000_pcmcia_driver_shutdown(void) { int i; del_timer_sync(&poll_timer); unregister_ss_entry(&au1000_pcmcia_operations); pcmcia_low_level->shutdown(); flush_scheduled_tasks(); for(i=0; i < socket_count; i++) { if (pcmcia_socket[i].virt_io) iounmap((void *)pcmcia_socket[i].virt_io); } DEBUG(1, "au1000: shutdown complete\n"); }
/* sa1100_pcmcia_driver_shutdown() * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * Invokes the low-level kernel service to free IRQs associated with this * socket controller and reset GPIO edge detection. */ static void __exit sa1100_pcmcia_driver_shutdown(void) { int i; del_timer_sync(&poll_timer); unregister_ss_entry(&sa1100_pcmcia_operations); #ifdef CONFIG_CPU_FREQ cpufreq_unregister_notifier(&sa1100_pcmcia_notifier_block); #endif for (i = 0; i < sa1100_pcmcia_socket_count; i++) { iounmap(sa1100_pcmcia_socket[i].virt_io); release_mem_region(_PCMCIA(i), PCMCIASp); } pcmcia_low_level->shutdown(); flush_scheduled_tasks(); }
static inline void cancel_mac_stats_update(struct adapter *ap) { del_timer_sync(&ap->stats_update_timer); flush_scheduled_tasks(); }
/* ssa_pcmcia_driver_shutdown() * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * Invokes the low-level kernel service to free IRQs associated with this * socket controller and reset GPIO edge detection. */ static void __exit ssa_pcmcia_driver_shutdown (void) { del_timer_sync (&poll_timer); unregister_ss_entry (&ssa_pcmcia_operations); flush_scheduled_tasks(); }