Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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 <pavel.hofman@insite.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>

+3 -1
+1
include/sound/mpu401.h
··· 50 50 #define MPU401_INFO_INTEGRATED (1 << 2) /* integrated h/w port */ 51 51 #define MPU401_INFO_MMIO (1 << 3) /* MMIO access */ 52 52 #define MPU401_INFO_TX_IRQ (1 << 4) /* independent TX irq */ 53 + #define MPU401_INFO_NO_ACK (1 << 6) /* No ACK cmd needed */ 53 54 54 55 #define MPU401_MODE_BIT_INPUT 0 55 56 #define MPU401_MODE_BIT_OUTPUT 1
+1 -1
sound/drivers/mpu401/mpu401_uart.c
··· 243 243 #endif 244 244 } 245 245 mpu->write(mpu, cmd, MPU401C(mpu)); 246 - if (ack) { 246 + if (ack && !(mpu->info_flags & MPU401_INFO_NO_ACK)) { 247 247 ok = 0; 248 248 timeout = 10000; 249 249 while (!ok && timeout-- > 0) {
+1
sound/pci/ice1712/ice1724.c
··· 2429 2429 if ((err = snd_mpu401_uart_new(card, 0, MPU401_HW_ICE1712, 2430 2430 ICEREG1724(ice, MPU_CTRL), 2431 2431 (MPU401_INFO_INTEGRATED | 2432 + MPU401_INFO_NO_ACK | 2432 2433 MPU401_INFO_TX_IRQ), 2433 2434 ice->irq, 0, 2434 2435 &ice->rmidi[0])) < 0) {