diff options
| author | Clemens Ladisch <clemens@ladisch.de> | 2008-03-19 08:20:59 +0100 | 
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2008-04-24 12:00:28 +0200 | 
| commit | db12b8e301455cf18644aa3b765ae10869eb947c (patch) | |
| tree | a572f2ed562624cb06431b82a3ee4a19725763ad | |
| parent | 87eedd2fd409d5cd515ccd6fc454cef15c5fa38b (diff) | |
| download | olio-linux-3.10-db12b8e301455cf18644aa3b765ae10869eb947c.tar.xz olio-linux-3.10-db12b8e301455cf18644aa3b765ae10869eb947c.zip  | |
[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: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
| -rw-r--r-- | sound/pci/oxygen/hifier.c | 2 | ||||
| -rw-r--r-- | sound/pci/oxygen/oxygen.c | 3 | ||||
| -rw-r--r-- | sound/pci/oxygen/oxygen.h | 3 | ||||
| -rw-r--r-- | sound/pci/oxygen/oxygen_lib.c | 12 | ||||
| -rw-r--r-- | sound/pci/oxygen/virtuoso.c | 3 | 
5 files changed, 13 insertions, 10 deletions
diff --git a/sound/pci/oxygen/hifier.c b/sound/pci/oxygen/hifier.c index 143d83d916d..1e54a3cd721 100644 --- a/sound/pci/oxygen/hifier.c +++ b/sound/pci/oxygen/hifier.c @@ -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; diff --git a/sound/pci/oxygen/oxygen.c b/sound/pci/oxygen/oxygen.c index e9031ede962..511ef34a43c 100644 --- a/sound/pci/oxygen/oxygen.c +++ b/sound/pci/oxygen/oxygen.c @@ -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; diff --git a/sound/pci/oxygen/oxygen.h b/sound/pci/oxygen/oxygen.h index fde995cf2ed..5103482f65e 100644 --- a/sound/pci/oxygen/oxygen.h +++ b/sound/pci/oxygen/oxygen.h @@ -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); diff --git a/sound/pci/oxygen/oxygen_lib.c b/sound/pci/oxygen/oxygen_lib.c index b7c7eb33106..87df2b81c57 100644 --- a/sound/pci/oxygen/oxygen_lib.c +++ b/sound/pci/oxygen/oxygen_lib.c @@ -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, diff --git a/sound/pci/oxygen/virtuoso.c b/sound/pci/oxygen/virtuoso.c index 5bf3661ab1f..fa79db696e2 100644 --- a/sound/pci/oxygen/virtuoso.c +++ b/sound/pci/oxygen/virtuoso.c @@ -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;  |