mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-15 05:11:32 +00:00
[ALSA] cmipci: make the test for integrated MIDI port address more robust
Unused bytes in the I/O register range are likely to have the value 0x00 instead of 0xff, so test against both values when checking for the presence of the integrated MIDI port. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This commit is contained in:
parent
dfe495d0a5
commit
c9116ae45b
@ -2827,7 +2827,7 @@ static int __devinit snd_cmipci_create(struct snd_card *card, struct pci_dev *pc
|
||||
};
|
||||
unsigned int val = 0;
|
||||
long iomidi;
|
||||
int integrated_midi;
|
||||
int integrated_midi = 0;
|
||||
int pcm_index, pcm_spdif_index;
|
||||
static struct pci_device_id intel_82437vx[] = {
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82437VX) },
|
||||
@ -2939,11 +2939,14 @@ static int __devinit snd_cmipci_create(struct snd_card *card, struct pci_dev *pc
|
||||
return err;
|
||||
}
|
||||
|
||||
integrated_midi = cm->chip_version > 33 &&
|
||||
snd_cmipci_read_b(cm, CM_REG_MPU_PCI + 1) != 0xff;
|
||||
if (integrated_midi && mpu_port[dev] == 1)
|
||||
iomidi = cm->iobase + CM_REG_MPU_PCI;
|
||||
else {
|
||||
if (cm->chip_version > 33 && mpu_port[dev] == 1) {
|
||||
val = snd_cmipci_read_b(cm, CM_REG_MPU_PCI + 1);
|
||||
if (val != 0x00 && val != 0xff) {
|
||||
iomidi = cm->iobase + CM_REG_MPU_PCI;
|
||||
integrated_midi = 1;
|
||||
}
|
||||
}
|
||||
if (!integrated_midi) {
|
||||
iomidi = mpu_port[dev];
|
||||
switch (iomidi) {
|
||||
case 0x320: val = CM_VMPU_320; break;
|
||||
|
Loading…
Reference in New Issue
Block a user