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

Commit db12b8e3 authored by Clemens Ladisch's avatar Clemens Ladisch Committed by Takashi Iwai
Browse files

[ALSA] oxygen: move MIDI flag to model struct



Put the flag that enables the MIDI port into the model structure instead
of passing it as a separate parameter to oxygen_pci_probe().

Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 87eedd2f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -181,7 +181,7 @@ static int __devinit hifier_probe(struct pci_dev *pci,
		++dev;
		return -ENOENT;
	}
	err = oxygen_pci_probe(pci, index[dev], id[dev], 0, &model_hifier);
	err = oxygen_pci_probe(pci, index[dev], id[dev], &model_hifier);
	if (err >= 0)
		++dev;
	return err;
+2 −1
Original line number Diff line number Diff line
@@ -336,6 +336,7 @@ static const struct oxygen_model model_meridian = {
		       CAPTURE_1_FROM_SPDIF |
		       CAPTURE_2_FROM_AC97_1,
	.dac_channels = 8,
	.misc_flags = OXYGEN_MISC_MIDI,
	.function_flags = OXYGEN_FUNCTION_SPI |
			  OXYGEN_FUNCTION_ENABLE_SPI_4_5,
	.dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
@@ -356,7 +357,7 @@ static int __devinit generic_oxygen_probe(struct pci_dev *pci,
		return -ENOENT;
	}
	is_meridian = pci_id->driver_data;
	err = oxygen_pci_probe(pci, index[dev], id[dev], is_meridian,
	err = oxygen_pci_probe(pci, index[dev], id[dev],
			       is_meridian ? &model_meridian : &model_generic);
	if (err >= 0)
		++dev;
+2 −1
Original line number Diff line number Diff line
@@ -103,6 +103,7 @@ struct oxygen_model {
	size_t model_data_size;
	unsigned int pcm_dev_cfg;
	u8 dac_channels;
	u8 misc_flags;
	u8 function_flags;
	u16 dac_i2s_format;
	u16 adc_i2s_format;
@@ -110,7 +111,7 @@ struct oxygen_model {

/* oxygen_lib.c */

int oxygen_pci_probe(struct pci_dev *pci, int index, char *id, int midi,
int oxygen_pci_probe(struct pci_dev *pci, int index, char *id,
		     const struct oxygen_model *model);
void oxygen_pci_remove(struct pci_dev *pci);

+6 −6
Original line number Diff line number Diff line
@@ -253,11 +253,13 @@ static void oxygen_init(struct oxygen *chip)
		      OXYGEN_DMA_A_BURST_8 |
		      OXYGEN_DMA_MULTICH_BURST_8);
	oxygen_write16(chip, OXYGEN_INTERRUPT_MASK, 0);
	oxygen_write8_masked(chip, OXYGEN_MISC, 0,
	oxygen_write8_masked(chip, OXYGEN_MISC,
			     chip->model->misc_flags,
			     OXYGEN_MISC_WRITE_PCI_SUBID |
			     OXYGEN_MISC_REC_C_FROM_SPDIF |
			     OXYGEN_MISC_REC_B_FROM_AC97 |
			     OXYGEN_MISC_REC_A_FROM_MULTICH);
			     OXYGEN_MISC_REC_A_FROM_MULTICH |
			     OXYGEN_MISC_MIDI);
	oxygen_write8(chip, OXYGEN_REC_FORMAT,
		      (OXYGEN_FORMAT_16 << OXYGEN_REC_FORMAT_A_SHIFT) |
		      (OXYGEN_FORMAT_16 << OXYGEN_REC_FORMAT_B_SHIFT) |
@@ -400,7 +402,7 @@ static void oxygen_card_free(struct snd_card *card)
}

int oxygen_pci_probe(struct pci_dev *pci, int index, char *id,
		     int midi, const struct oxygen_model *model)
		     const struct oxygen_model *model)
{
	struct snd_card *card;
	struct oxygen *chip;
@@ -472,9 +474,7 @@ int oxygen_pci_probe(struct pci_dev *pci, int index, char *id,
	if (err < 0)
		goto err_card;

	oxygen_write8_masked(chip, OXYGEN_MISC,
			     midi ? OXYGEN_MISC_MIDI : 0, OXYGEN_MISC_MIDI);
	if (midi) {
	if (model->misc_flags & OXYGEN_MISC_MIDI) {
		err = snd_mpu401_uart_new(card, 0, MPU401_HW_CMIPCI,
					  chip->addr + OXYGEN_MPU401,
					  MPU401_INFO_INTEGRATED, 0, 0,
+2 −1
Original line number Diff line number Diff line
@@ -353,6 +353,7 @@ static const struct oxygen_model model_xonar = {
		       CAPTURE_0_FROM_I2S_2 |
		       CAPTURE_1_FROM_SPDIF,
	.dac_channels = 8,
	.misc_flags = OXYGEN_MISC_MIDI,
	.function_flags = OXYGEN_FUNCTION_SPI |
			  OXYGEN_FUNCTION_ENABLE_SPI_4_5,
	.dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
@@ -371,7 +372,7 @@ static int __devinit xonar_probe(struct pci_dev *pci,
		++dev;
		return -ENOENT;
	}
	err = oxygen_pci_probe(pci, index[dev], id[dev], 1, &model_xonar);
	err = oxygen_pci_probe(pci, index[dev], id[dev], &model_xonar);
	if (err >= 0)
		++dev;
	return err;