diff options
-rw-r--r-- | Documentation/sound/alsa/ALSA-Configuration.txt | 3 | ||||
-rw-r--r-- | Documentation/sound/alsa/CMIPCI.txt | 13 | ||||
-rw-r--r-- | sound/pci/cmipci.c | 6 |
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. | |||
209 | MIDI CONTROLLER | 209 | MIDI CONTROLLER |
210 | --------------- | 210 | --------------- |
211 | 211 | ||
212 | The MPU401-UART interface is disabled as default. You need to set | 212 | With CMI8338 chips, the MPU401-UART interface is disabled as default. |
213 | module option "mpu_port" with a valid I/O port address to enable the | 213 | You need to set the module option "mpu_port" to a valid I/O port address |
214 | MIDI support. The valid I/O ports are 0x300, 0x310, 0x320 and 0x330. | 214 | to enable MIDI support. Valid I/O ports are 0x300, 0x310, 0x320 and |
215 | Choose the value which doesn't conflict with other cards. With | 215 | 0x330. Choose a value that doesn't conflict with other cards. |
216 | CMI8738 and newer chips, you can use "mpu_port=1" to use a PCI port | 216 | |
217 | address that does not conflict with any other card. | 217 | With CMI8738 and newer chips, the MIDI interface is enabled by default |
218 | and the driver automatically chooses a port address. | ||
218 | 219 | ||
219 | There is _no_ hardware wavetable function on this chip (except for | 220 | There is _no_ hardware wavetable function on this chip (except for |
220 | OPL3 synth below). | 221 | OPL3 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; |