From df7e3fdf83699328d1fdf7000ce0dc852fbb0ad9 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Fri, 25 Apr 2008 09:13:45 +0200 Subject: [ALSA] Add MPU401_INFO_NO_ACK bitflag Added MPU401_INFO_NO_ACK bitflag to ignore the ACK check for UART commands. VT172x doesn't handle ACK commands, for example. Tested-by: Pavel Hofman Signed-off-by: Takashi Iwai --- include/sound/mpu401.h | 1 + sound/drivers/mpu401/mpu401_uart.c | 2 +- sound/pci/ice1712/ice1724.c | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/sound/mpu401.h b/include/sound/mpu401.h index 68b634b7506..1f1d53f8830 100644 --- a/include/sound/mpu401.h +++ b/include/sound/mpu401.h @@ -50,6 +50,7 @@ #define MPU401_INFO_INTEGRATED (1 << 2) /* integrated h/w port */ #define MPU401_INFO_MMIO (1 << 3) /* MMIO access */ #define MPU401_INFO_TX_IRQ (1 << 4) /* independent TX irq */ +#define MPU401_INFO_NO_ACK (1 << 6) /* No ACK cmd needed */ #define MPU401_MODE_BIT_INPUT 0 #define MPU401_MODE_BIT_OUTPUT 1 diff --git a/sound/drivers/mpu401/mpu401_uart.c b/sound/drivers/mpu401/mpu401_uart.c index 18cca2457d4..2af09996a3d 100644 --- a/sound/drivers/mpu401/mpu401_uart.c +++ b/sound/drivers/mpu401/mpu401_uart.c @@ -243,7 +243,7 @@ static int snd_mpu401_uart_cmd(struct snd_mpu401 * mpu, unsigned char cmd, #endif } mpu->write(mpu, cmd, MPU401C(mpu)); - if (ack) { + if (ack && !(mpu->info_flags & MPU401_INFO_NO_ACK)) { ok = 0; timeout = 10000; while (!ok && timeout-- > 0) { diff --git a/sound/pci/ice1712/ice1724.c b/sound/pci/ice1712/ice1724.c index 4490422fb93..681fbbd8a5c 100644 --- a/sound/pci/ice1712/ice1724.c +++ b/sound/pci/ice1712/ice1724.c @@ -2429,6 +2429,7 @@ static int __devinit snd_vt1724_probe(struct pci_dev *pci, if ((err = snd_mpu401_uart_new(card, 0, MPU401_HW_ICE1712, ICEREG1724(ice, MPU_CTRL), (MPU401_INFO_INTEGRATED | + MPU401_INFO_NO_ACK | MPU401_INFO_TX_IRQ), ice->irq, 0, &ice->rmidi[0])) < 0) { -- cgit v1.2.3-18-g5258