Jelajahi Sumber

[ALSA] oxygen: make SPI configuration configurable

Add a field to the model structure so that it is possible to have a card
where the SPI outputs 4 and 5 are used for an EEPROM.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Clemens Ladisch 17 tahun lalu
induk
melakukan
84aa6b7ba7

+ 2 - 0
sound/pci/oxygen/oxygen.c

@@ -256,6 +256,7 @@ static const struct oxygen_model model_generic = {
 	.update_dac_volume = update_ak4396_volume,
 	.update_dac_mute = update_ak4396_mute,
 	.dac_tlv = ak4396_db_scale,
+	.function_flags = OXYGEN_FUNCTION_ENABLE_SPI_4_5,
 };
 static const struct oxygen_model model_meridian = {
 	.shortname = "C-Media CMI8788",
@@ -270,6 +271,7 @@ static const struct oxygen_model model_meridian = {
 	.update_dac_mute = update_ak4396_mute,
 	.dac_tlv = ak4396_db_scale,
 	.record_from_dma_b = 1,
+	.function_flags = OXYGEN_FUNCTION_ENABLE_SPI_4_5,
 };
 
 static int __devinit generic_oxygen_probe(struct pci_dev *pci,

+ 1 - 0
sound/pci/oxygen/oxygen.h

@@ -83,6 +83,7 @@ struct oxygen_model {
 	u8 record_from_dma_b;
 	u8 cd_in_from_video_in;
 	u8 dac_minimum_volume;
+	u8 function_flags;
 };
 
 /* oxygen_lib.c */

+ 1 - 1
sound/pci/oxygen/oxygen_lib.c

@@ -202,7 +202,7 @@ static void __devinit oxygen_init(struct oxygen *chip)
 
 	oxygen_set_bits8(chip, OXYGEN_FUNCTION,
 			 OXYGEN_FUNCTION_RESET_CODEC |
-			 OXYGEN_FUNCTION_ENABLE_SPI_4_5);
+			 chip->model->function_flags);
 	oxygen_write16(chip, OXYGEN_I2S_MULTICH_FORMAT, 0x010a);
 	oxygen_write16(chip, OXYGEN_I2S_A_FORMAT, 0x010a);
 	oxygen_write16(chip, OXYGEN_I2S_B_FORMAT, 0x010a);

+ 1 - 0
sound/pci/oxygen/virtuoso.c

@@ -227,6 +227,7 @@ static const struct oxygen_model model_xonar = {
 	.record_from_dma_b = 1,
 	.cd_in_from_video_in = 1,
 	.dac_minimum_volume = 15,
+	.function_flags = OXYGEN_FUNCTION_ENABLE_SPI_4_5,
 };
 
 static int __devinit xonar_probe(struct pci_dev *pci,