When the interrupt is allocated in
snd_mpu401_uart_new(), the private
interrupt handler is used, hence you don't have anything else to do
than creating the mpu401 stuff. Otherwise, you have to call
snd_mpu401_uart_interrupt() explicitly when
a UART interrupt is invoked and checked in your own interrupt
handler.
In this case, you need to pass the private_data of the
returned rawmidi object from
snd_mpu401_uart_new() as the second
argument of snd_mpu401_uart_interrupt().
snd_mpu401_uart_interrupt(irq, rmidi->private_data, regs);