/*====================================================================*/
static void tc589_config(dev_link_t *link);
-static void tc589_release(unsigned long arg);
+static void tc589_release(dev_link_t *link);
static int tc589_event(event_t event, int priority,
event_callback_args_t *args);
link->priv = dev;
spin_lock_init(&lp->lock);
- init_timer(&link->release);
- link->release.function = &tc589_release;
- link->release.data = (unsigned long)link;
link->io.NumPorts1 = 16;
link->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT;
if (*linkp == NULL)
return;
- del_timer_sync(&link->release);
if (link->state & DEV_CONFIG) {
- tc589_release((unsigned long)link);
+ tc589_release(link);
if (link->state & DEV_STALE_CONFIG) {
link->state |= DEV_STALE_LINK;
return;
cs_failed:
cs_error(link->handle, last_fn, last_ret);
failed:
- tc589_release((unsigned long)link);
+ tc589_release(link);
return;
} /* tc589_config */
======================================================================*/
-static void tc589_release(unsigned long arg)
+static void tc589_release(dev_link_t *link)
{
- dev_link_t *link = (dev_link_t *)arg;
-
DEBUG(0, "3c589_release(0x%p)\n", link);
if (link->open) {
link->state &= ~DEV_PRESENT;
if (link->state & DEV_CONFIG) {
netif_device_detach(dev);
- mod_timer(&link->release, jiffies + HZ/20);
+ tc589_release(link);
}
break;
case CS_EVENT_CARD_INSERTION:
netif_stop_queue(dev);
del_timer_sync(&lp->media);
if (link->state & DEV_STALE_CONFIG)
- mod_timer(&link->release, jiffies + HZ/20);
+ tc589_release(link);
return 0;
}