rem: remove_io_interrupt_handler(card->config.irq, emuxki_int, card);
context: emuxki_shutdown(emuxki_dev *card){	uint32       i;	PRINT(("shutdown(%p)\n", card));	remove_io_interrupt_handler(card->config.irq, emuxki_int, card);		emuxki_reg_write_32(&card->config, EMU_HCFG, EMU_HCFG_LOCKSOUNDCACHE |		  EMU_HCFG_LOCKTANKCACHE_MASK | EMU_HCFG_MUTEBUTTONENABLE);	emuxki_reg_write_32(&card->config, EMU_INTE, 0);		dump_hardware_regs(&card->config);		/* Disable any Channels interrupts */	emuxki_chan_write(&card->config, 0, EMU_CLIEL, 0);	emuxki_chan_write(&card->config, 0, EMU_CLIEH, 0);	emuxki_chan_write(&card->config, 0, EMU_SOLEL, 0);	emuxki_chan_write(&card->config, 0, EMU_SOLEH, 0);		/* Stop all channels */	/* This shouldn't be necessary, i'll remove once everything works */	for (i = 0; i < EMU_NUMCHAN; i++)		emuxki_chan_write(&card->config, i, EMU_CHAN_DCYSUSV, 0);	for (i = 0; i < EMU_NUMCHAN; i++) {		emuxki_chan_write(&card->config, i, EMU_CHAN_VTFT, 0);		emuxki_chan_write(&card->config, i, EMU_CHAN_CVCF, 0);		emuxki_chan_write(&card->config, i, EMU_CHAN_PTRX, 0);		emuxki_chan_write(&card->config, i, EMU_CHAN_CPF, 0);	}		/*	 * deallocate Emu10k1 caches and recording buffers Again it will be	 * removed because it will be done in voice shutdown.	 */	emuxki_chan_write(&card->config, 0, EMU_MICBS, EMU_RECBS_BUFSIZE_NONE);	emuxki_chan_write(&card->config, 0, EMU_MICBA, 0);	emuxki_chan_write(&card->config, 0, EMU_FXBS, EMU_RECBS_BUFSIZE_NONE);	emuxki_chan_write(&card->config, 0, EMU_FXBA, 0);	if(IS_AUDIGY(&card->config)) {		emuxki_chan_write(&card->config, 0, EMU_A_FXWC1, 0);		emuxki_chan_write(&card->config, 0, EMU_A_FXWC2, 0);	} else {		emuxki_chan_write(&card->config, 0, EMU_FXWC, 0);	}	emuxki_chan_write(&card->config, 0, EMU_ADCBS, EMU_RECBS_BUFSIZE_NONE);	emuxki_chan_write(&card->config, 0, EMU_ADCBA, 0);	/*	 * I don't know yet how i will handle tank cache buffer,	 * I don't even clearly  know what it is for	 */	emuxki_chan_write(&card->config, 0, EMU_TCB, 0);	/* 16K again */	emuxki_chan_write(&card->config, 0, EMU_TCBS, 0);	emuxki_chan_write(&card->config, 0, EMU_DBG, 0x8000);	/* necessary ? */		PRINT(("freeing ptb_area\n"));	if (card->ptb_area > B_OK)		delete_area(card->ptb_area);	PRINT(("freeing silentpage_area\n"));	if (card->silentpage_area > B_OK)		delete_area(card->silentpage_area);}