diff options
| author | Takashi Iwai <tiwai@suse.de> | 2008-04-25 03:13:45 -0400 |
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2008-04-29 13:01:56 -0400 |
| commit | df7e3fdf83699328d1fdf7000ce0dc852fbb0ad9 (patch) | |
| tree | dc5ca06bc0754352c8adf201b4f950d7fbf7c0b1 | |
| parent | a01e035ebb552223c03f2d9138ffc73f2d4d3965 (diff) | |
[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>
| -rw-r--r-- | include/sound/mpu401.h | 1 | ||||
| -rw-r--r-- | sound/drivers/mpu401/mpu401_uart.c | 2 | ||||
| -rw-r--r-- | sound/pci/ice1712/ice1724.c | 1 |
3 files changed, 3 insertions, 1 deletions
diff --git a/include/sound/mpu401.h b/include/sound/mpu401.h index 68b634b75068..1f1d53f8830b 100644 --- a/include/sound/mpu401.h +++ b/include/sound/mpu401.h | |||
| @@ -50,6 +50,7 @@ | |||
| 50 | #define MPU401_INFO_INTEGRATED (1 << 2) /* integrated h/w port */ | 50 | #define MPU401_INFO_INTEGRATED (1 << 2) /* integrated h/w port */ |
| 51 | #define MPU401_INFO_MMIO (1 << 3) /* MMIO access */ | 51 | #define MPU401_INFO_MMIO (1 << 3) /* MMIO access */ |
| 52 | #define MPU401_INFO_TX_IRQ (1 << 4) /* independent TX irq */ | 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 | #define MPU401_MODE_BIT_INPUT 0 | 55 | #define MPU401_MODE_BIT_INPUT 0 |
| 55 | #define MPU401_MODE_BIT_OUTPUT 1 | 56 | #define MPU401_MODE_BIT_OUTPUT 1 |
diff --git a/sound/drivers/mpu401/mpu401_uart.c b/sound/drivers/mpu401/mpu401_uart.c index 18cca2457d44..2af09996a3d0 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, | |||
| 243 | #endif | 243 | #endif |
| 244 | } | 244 | } |
| 245 | mpu->write(mpu, cmd, MPU401C(mpu)); | 245 | mpu->write(mpu, cmd, MPU401C(mpu)); |
| 246 | if (ack) { | 246 | if (ack && !(mpu->info_flags & MPU401_INFO_NO_ACK)) { |
| 247 | ok = 0; | 247 | ok = 0; |
| 248 | timeout = 10000; | 248 | timeout = 10000; |
| 249 | while (!ok && timeout-- > 0) { | 249 | while (!ok && timeout-- > 0) { |
diff --git a/sound/pci/ice1712/ice1724.c b/sound/pci/ice1712/ice1724.c index 4490422fb930..681fbbd8a5ce 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, | |||
| 2429 | if ((err = snd_mpu401_uart_new(card, 0, MPU401_HW_ICE1712, | 2429 | if ((err = snd_mpu401_uart_new(card, 0, MPU401_HW_ICE1712, |
| 2430 | ICEREG1724(ice, MPU_CTRL), | 2430 | ICEREG1724(ice, MPU_CTRL), |
| 2431 | (MPU401_INFO_INTEGRATED | | 2431 | (MPU401_INFO_INTEGRATED | |
| 2432 | MPU401_INFO_NO_ACK | | ||
| 2432 | MPU401_INFO_TX_IRQ), | 2433 | MPU401_INFO_TX_IRQ), |
| 2433 | ice->irq, 0, | 2434 | ice->irq, 0, |
| 2434 | &ice->rmidi[0])) < 0) { | 2435 | &ice->rmidi[0])) < 0) { |
