Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -327,7 +327,7 @@ static int __devinit generic_oxygen_probe(struct pci_dev *pci,
		return -ENOENT;
	}
	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)
		++dev;
	return err;
+1 −1
Original line number Diff line number Diff line
@@ -92,7 +92,7 @@ struct oxygen_model {

/* 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);
void oxygen_pci_remove(struct pci_dev *pci);

+4 −2
Original line number Diff line number Diff line
@@ -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,
			       const struct oxygen_model *model)
			       int midi, const struct oxygen_model *model)
{
	struct snd_card *card;
	struct oxygen *chip;
@@ -374,7 +374,9 @@ int __devinit oxygen_pci_probe(struct pci_dev *pci, int index, char *id,
	if (err < 0)
		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,
					  chip->addr + OXYGEN_MPU401,
					  MPU401_INFO_INTEGRATED, 0, 0,
+1 −1
Original line number Diff line number Diff line
@@ -266,7 +266,7 @@ static int __devinit xonar_probe(struct pci_dev *pci,
		++dev;
		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)
		++dev;
	return err;