diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2007-09-03 09:56:23 +0200 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2007-10-16 15:59:45 +0200 |
commit | 88039815d8868fb507eb69448f5a3a65c90b0bf2 (patch) | |
tree | c2acd01aac77c96933c15502fcf9fef28e19f1d7 | |
parent | c78c950d28df984e39ad028a90bcdadcd3eda3b6 (diff) | |
download | linux-88039815d8868fb507eb69448f5a3a65c90b0bf2.tar.gz linux-88039815d8868fb507eb69448f5a3a65c90b0bf2.tar.bz2 linux-88039815d8868fb507eb69448f5a3a65c90b0bf2.zip |
[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.c | 7 |
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; + } } } |