irqreturn_t snd_mpu401_uart_interrupt(int irq, void *dev_id) { struct snd_mpu401 *mpu = dev_id; if (mpu == NULL) return IRQ_NONE; _snd_mpu401_uart_interrupt(mpu); return IRQ_HANDLED; }
/** * snd_mpu401_uart_interrupt - generic MPU401-UART interrupt handler * @irq: the irq number * @dev_id: mpu401 instance * @regs: the reigster * * Processes the interrupt for MPU401-UART i/o. */ irqreturn_t snd_mpu401_uart_interrupt(int irq, void *dev_id, struct pt_regs *regs) { mpu401_t *mpu = dev_id; if (mpu == NULL) return IRQ_NONE; _snd_mpu401_uart_interrupt(mpu); return IRQ_HANDLED; }
/* * timer callback * reprogram the timer and call the interrupt job */ static void snd_mpu401_uart_timer(unsigned long data) { mpu401_t *mpu = (mpu401_t *)data; spin_lock(&mpu->timer_lock); /*mpu->mode |= MPU401_MODE_TIMER;*/ mpu->timer.expires = 1 + jiffies; add_timer(&mpu->timer); spin_unlock(&mpu->timer_lock); if (mpu->rmidi) _snd_mpu401_uart_interrupt(mpu); }
/* * timer callback * reprogram the timer and call the interrupt job */ static void snd_mpu401_uart_timer(unsigned long data) { struct snd_mpu401 *mpu = (struct snd_mpu401 *)data; unsigned long flags; spin_lock_irqsave(&mpu->timer_lock, flags); /*mpu->mode |= MPU401_MODE_TIMER;*/ mod_timer(&mpu->timer, 1 + jiffies); spin_unlock_irqrestore(&mpu->timer_lock, flags); if (mpu->rmidi) _snd_mpu401_uart_interrupt(mpu); }
static void snd_mpu401_uart_timer(unsigned long data) { struct snd_mpu401 *mpu = (struct snd_mpu401 *)data; unsigned long flags; spin_lock_irqsave(&mpu->timer_lock, flags); mpu->timer.expires = 1 + jiffies; add_timer(&mpu->timer); spin_unlock_irqrestore(&mpu->timer_lock, flags); if (mpu->rmidi) _snd_mpu401_uart_interrupt(mpu); }