summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2007-09-03 11:56:23 +0400
committerJaroslav Kysela <perex@perex.cz>2007-10-16 17:59:45 +0400
commit88039815d8868fb507eb69448f5a3a65c90b0bf2 (patch)
treec2acd01aac77c96933c15502fcf9fef28e19f1d7
parentc78c950d28df984e39ad028a90bcdadcd3eda3b6 (diff)
downloadlinux-88039815d8868fb507eb69448f5a3a65c90b0bf2.tar.xz
[ALSA] cmipci: check that the legacy MIDI port works
Check that the UART_EN bit actually enabled the MPU-401 port. Apparently, C-Media thinks that it is a good idea to be paranoid here. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
-rw-r--r--sound/pci/cmipci.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c
index fdc4615ea0e7..9149d00d1ad5 100644
--- a/sound/pci/cmipci.c
+++ b/sound/pci/cmipci.c
@@ -3012,6 +3012,13 @@ static int __devinit snd_cmipci_create(struct snd_card *card, struct pci_dev *pc
snd_cmipci_write(cm, CM_REG_LEGACY_CTRL, val);
/* enable UART */
snd_cmipci_set_bit(cm, CM_REG_FUNCTRL1, CM_UART_EN);
+ if (inb(iomidi + 1) == 0xff) {
+ snd_printk(KERN_ERR "cannot enable MPU-401 port"
+ " at %#lx\n", iomidi);
+ snd_cmipci_clear_bit(cm, CM_REG_FUNCTRL1,
+ CM_UART_EN);
+ iomidi = 0;
+ }
}
}