aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2007-09-03 03:55:49 -0400
committerJaroslav Kysela <perex@perex.cz>2007-10-16 09:59:44 -0400
commitc78c950d28df984e39ad028a90bcdadcd3eda3b6 (patch)
tree3353f01703a224b0c9be3b3d7bbb93cebea7c799
parent8992e18db32f5df55fd4b458def7dccd2a5c3266 (diff)
[ALSA] cmipci: do not check for integrated FM/MIDI ports with chip version 37
Integrated MPU-401/OPL3 ports are available with chip version 39 and later, so we do not test for the port with version 37. Now that the test is known to work, we can again enable the MIDI port by default. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
-rw-r--r--Documentation/sound/alsa/ALSA-Configuration.txt3
-rw-r--r--Documentation/sound/alsa/CMIPCI.txt13
-rw-r--r--sound/pci/cmipci.c6
3 files changed, 11 insertions, 11 deletions
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt
index 38e775629c12..96bf25ccc1c5 100644
--- a/Documentation/sound/alsa/ALSA-Configuration.txt
+++ b/Documentation/sound/alsa/ALSA-Configuration.txt
@@ -367,9 +367,8 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
367 367
368 Module for C-Media CMI8338/8738/8768/8770 PCI sound cards. 368 Module for C-Media CMI8338/8738/8768/8770 PCI sound cards.
369 369
370 mpu_port - port address of MIDI interface: 370 mpu_port - port address of MIDI interface (8338 only):
371 0x300,0x310,0x320,0x330 = legacy port, 371 0x300,0x310,0x320,0x330 = legacy port,
372 1 = integrated PCI port (8738 or later),
373 0 = disable (default) 372 0 = disable (default)
374 fm_port - port address of OPL-3 FM synthesizer (8x38 only): 373 fm_port - port address of OPL-3 FM synthesizer (8x38 only):
375 0x388 = legacy port, 374 0x388 = legacy port,
diff --git a/Documentation/sound/alsa/CMIPCI.txt b/Documentation/sound/alsa/CMIPCI.txt
index 664be46566b8..16935c8561f7 100644
--- a/Documentation/sound/alsa/CMIPCI.txt
+++ b/Documentation/sound/alsa/CMIPCI.txt
@@ -209,12 +209,13 @@ In addition to the standard SB mixer, CM8x38 provides more functions.
209MIDI CONTROLLER 209MIDI CONTROLLER
210--------------- 210---------------
211 211
212The MPU401-UART interface is disabled as default. You need to set 212With CMI8338 chips, the MPU401-UART interface is disabled as default.
213module option "mpu_port" with a valid I/O port address to enable the 213You need to set the module option "mpu_port" to a valid I/O port address
214MIDI support. The valid I/O ports are 0x300, 0x310, 0x320 and 0x330. 214to enable MIDI support. Valid I/O ports are 0x300, 0x310, 0x320 and
215Choose the value which doesn't conflict with other cards. With 2150x330. Choose a value that doesn't conflict with other cards.
216CMI8738 and newer chips, you can use "mpu_port=1" to use a PCI port 216
217address that does not conflict with any other card. 217With CMI8738 and newer chips, the MIDI interface is enabled by default
218and the driver automatically chooses a port address.
218 219
219There is _no_ hardware wavetable function on this chip (except for 220There is _no_ hardware wavetable function on this chip (except for
220OPL3 synth below). 221OPL3 synth below).
diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c
index af266eb83059..fdc4615ea0e7 100644
--- a/sound/pci/cmipci.c
+++ b/sound/pci/cmipci.c
@@ -2798,7 +2798,7 @@ static int __devinit snd_cmipci_create_fm(struct cmipci *cm, long fm_port)
2798 if (!fm_port) 2798 if (!fm_port)
2799 goto disable_fm; 2799 goto disable_fm;
2800 2800
2801 if (cm->chip_version > 33) { 2801 if (cm->chip_version >= 39) {
2802 /* first try FM regs in PCI port range */ 2802 /* first try FM regs in PCI port range */
2803 iosynth = cm->iobase + CM_REG_FM_PCI; 2803 iosynth = cm->iobase + CM_REG_FM_PCI;
2804 err = snd_opl3_create(cm->card, iosynth, iosynth + 2, 2804 err = snd_opl3_create(cm->card, iosynth, iosynth + 2,
@@ -2990,8 +2990,7 @@ static int __devinit snd_cmipci_create(struct snd_card *card, struct pci_dev *pc
2990 return err; 2990 return err;
2991 } 2991 }
2992 2992
2993 val = 0; 2993 if (cm->chip_version >= 39) {
2994 if (cm->chip_version > 33 && mpu_port[dev] == 1) {
2995 val = snd_cmipci_read_b(cm, CM_REG_MPU_PCI + 1); 2994 val = snd_cmipci_read_b(cm, CM_REG_MPU_PCI + 1);
2996 if (val != 0x00 && val != 0xff) { 2995 if (val != 0x00 && val != 0xff) {
2997 iomidi = cm->iobase + CM_REG_MPU_PCI; 2996 iomidi = cm->iobase + CM_REG_MPU_PCI;
@@ -2999,6 +2998,7 @@ static int __devinit snd_cmipci_create(struct snd_card *card, struct pci_dev *pc
2999 } 2998 }
3000 } 2999 }
3001 if (!integrated_midi) { 3000 if (!integrated_midi) {
3001 val = 0;
3002 iomidi = mpu_port[dev]; 3002 iomidi = mpu_port[dev];
3003 switch (iomidi) { 3003 switch (iomidi) {
3004 case 0x320: val = CM_VMPU_320; break; 3004 case 0x320: val = CM_VMPU_320; break;