Commit 44fb7aae authored by Clemens Ladisch's avatar Clemens Ladisch Committed by Jaroslav Kysela

[ALSA] oxygen: remove MIDI autodetection

The MIDI bit in the MISC register is set by default and cannot be used
to detect the presence of a MIDI port.  Instead, add a parameter to the
oxygen_pci_probe() function so that model drivers can specify this.
Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
parent db2396d4
...@@ -327,7 +327,7 @@ static int __devinit generic_oxygen_probe(struct pci_dev *pci, ...@@ -327,7 +327,7 @@ static int __devinit generic_oxygen_probe(struct pci_dev *pci,
return -ENOENT; return -ENOENT;
} }
model = pci_id->driver_data ? &model_meridian : &model_generic; model = pci_id->driver_data ? &model_meridian : &model_generic;
err = oxygen_pci_probe(pci, index[dev], id[dev], model); err = oxygen_pci_probe(pci, index[dev], id[dev], 1, model);
if (err >= 0) if (err >= 0)
++dev; ++dev;
return err; return err;
......
...@@ -92,7 +92,7 @@ struct oxygen_model { ...@@ -92,7 +92,7 @@ struct oxygen_model {
/* oxygen_lib.c */ /* oxygen_lib.c */
int oxygen_pci_probe(struct pci_dev *pci, int index, char *id, int oxygen_pci_probe(struct pci_dev *pci, int index, char *id, int midi,
const struct oxygen_model *model); const struct oxygen_model *model);
void oxygen_pci_remove(struct pci_dev *pci); void oxygen_pci_remove(struct pci_dev *pci);
......
...@@ -306,7 +306,7 @@ static void oxygen_card_free(struct snd_card *card) ...@@ -306,7 +306,7 @@ static void oxygen_card_free(struct snd_card *card)
} }
int __devinit oxygen_pci_probe(struct pci_dev *pci, int index, char *id, int __devinit oxygen_pci_probe(struct pci_dev *pci, int index, char *id,
const struct oxygen_model *model) int midi, const struct oxygen_model *model)
{ {
struct snd_card *card; struct snd_card *card;
struct oxygen *chip; struct oxygen *chip;
...@@ -374,7 +374,9 @@ int __devinit oxygen_pci_probe(struct pci_dev *pci, int index, char *id, ...@@ -374,7 +374,9 @@ int __devinit oxygen_pci_probe(struct pci_dev *pci, int index, char *id,
if (err < 0) if (err < 0)
goto err_card; goto err_card;
if (oxygen_read8(chip, OXYGEN_MISC) & OXYGEN_MISC_MIDI) { oxygen_write8_masked(chip, OXYGEN_MISC,
midi ? OXYGEN_MISC_MIDI : 0, OXYGEN_MISC_MIDI);
if (midi) {
err = snd_mpu401_uart_new(card, 0, MPU401_HW_CMIPCI, err = snd_mpu401_uart_new(card, 0, MPU401_HW_CMIPCI,
chip->addr + OXYGEN_MPU401, chip->addr + OXYGEN_MPU401,
MPU401_INFO_INTEGRATED, 0, 0, MPU401_INFO_INTEGRATED, 0, 0,
......
...@@ -266,7 +266,7 @@ static int __devinit xonar_probe(struct pci_dev *pci, ...@@ -266,7 +266,7 @@ static int __devinit xonar_probe(struct pci_dev *pci,
++dev; ++dev;
return -ENOENT; return -ENOENT;
} }
err = oxygen_pci_probe(pci, index[dev], id[dev], &model_xonar); err = oxygen_pci_probe(pci, index[dev], id[dev], 1, &model_xonar);
if (err >= 0) if (err >= 0)
++dev; ++dev;
return err; return err;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment