static int vxpocket_event(event_t event, int priority, event_callback_args_t *args);
-static void vxpocket_release(u_long arg)
+static void vxpocket_release(dev_link_t *link)
{
- dev_link_t *link = (dev_link_t *)arg;
-
if (link->state & DEV_CONFIG) {
/* release cs resources */
CardServices(ReleaseConfiguration, link->handle);
struct snd_vxp_entry *hw;
dev_link_t *link = &vxp->link;
- vxpocket_release((u_long)link);
+ vxpocket_release(link);
/* Break the link with Card Services */
if (link->handle)
link->irq.Handler = &snd_vx_irq_handler;
link->irq.Instance = chip;
- link->release.function = &vxpocket_release;
- link->release.data = (u_long)link;
-
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.Vcc = 50;
link->conf.IntType = INT_MEMORY_AND_IO;
{
vx_core_t *chip = snd_magic_cast(vx_core_t, link->priv, return);
- del_timer(&link->release);
-
snd_printdd(KERN_DEBUG "vxpocket_detach called\n");
/* Remove the interface data from the linked list */
if (hw) {
snd_printdd(KERN_DEBUG "CARD_REMOVAL..\n");
link->state &= ~DEV_PRESENT;
if (link->state & DEV_CONFIG) {
- mod_timer(&link->release, jiffies + HZ/20);
chip->chip_status |= VX_STAT_IS_STALE;
}
break;