snd_m3_outw(chip, HOST_INT_STATUS, status); 
outb(status, chip->iobase + HOST_INT_STATUS); 
snd_m3_interrupt(int irq, void *dev_id, struct pt_regs *regs){	m3_t *chip = dev_id;	u8 status;	int i;	status = inb(chip->iobase + HOST_INT_STATUS);	if (status == 0xff)		return IRQ_NONE;   	/*	 * ack an assp int if its running	 * and has an int pending	 */	if (status & ASSP_INT_PENDING) {		u8 ctl = inb(chip->iobase + ASSP_CONTROL_B);		if (!(ctl & STOP_ASSP_CLOCK)) {			ctl = inb(chip->iobase + ASSP_HOST_INT_STATUS);			if (ctl & DSP2HOST_REQ_TIMER) {				outb(DSP2HOST_REQ_TIMER, chip->iobase + ASSP_HOST_INT_STATUS);				/* update adc/dac info if it was a timer int */				spin_lock(&chip->reg_lock);				for (i = 0; i < chip->num_substreams; i++) {					m3_dma_t *s = &chip->substreams[i];					if (s->running)						snd_m3_update_ptr(chip, s);				}				spin_unlock(&chip->reg_lock);			}		}	}#if 0 /* TODO: not supported yet */	if ((status & MPU401_INT_PENDING) && chip->rmidi)		snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data, regs);#endif	/* ack ints */	snd_m3_outw(chip, HOST_INT_STATUS, status);	return IRQ_HANDLED;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/88491386be67f659e6b2c76c7463c997ce4c4ebb/maestro3.c/clean/sound/pci/maestro3.c