[ALSA] mpu-401: do not require an ACK byte for the ENTER_UART command
Clemens Ladisch [Thu, 11 Oct 2007 12:15:06 +0000 (14:15 +0200)]
The original MPU-401 does not send an ACK byte after processing the
ENTER_UART command, so we better do not try to wait for it.
Many clones get this wrong and do send an ACK, but when interpreting it
as MIDI, it is just a harmless Active Sensing message, and it is likely
to be read and discarded by the interrupt handler before the MIDI input
device is triggered.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>

sound/drivers/mpu401/mpu401_uart.c

index 85aedc3..b5c5dd1 100644 (file)
@@ -271,7 +271,7 @@ static int snd_mpu401_do_reset(struct snd_mpu401 *mpu)
        if (snd_mpu401_uart_cmd(mpu, MPU401_RESET, 1))
                return -EIO;
        if (!(mpu->info_flags & MPU401_INFO_UART_ONLY) &&
-           snd_mpu401_uart_cmd(mpu, MPU401_ENTER_UART, 1))
+           snd_mpu401_uart_cmd(mpu, MPU401_ENTER_UART, 0))
                return -EIO;
        return 0;
 }