[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>
diff --git a/sound/pci/oxygen/oxygen.c b/sound/pci/oxygen/oxygen.c
index ecc0e6f..83c6fab 100644
--- a/sound/pci/oxygen/oxygen.c
+++ b/sound/pci/oxygen/oxygen.c
@@ -256,6 +256,7 @@
.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 @@
.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,
diff --git a/sound/pci/oxygen/oxygen.h b/sound/pci/oxygen/oxygen.h
index 66dee95..fb9cb36b 100644
--- a/sound/pci/oxygen/oxygen.h
+++ b/sound/pci/oxygen/oxygen.h
@@ -83,6 +83,7 @@
u8 record_from_dma_b;
u8 cd_in_from_video_in;
u8 dac_minimum_volume;
+ u8 function_flags;
};
/* oxygen_lib.c */
diff --git a/sound/pci/oxygen/oxygen_lib.c b/sound/pci/oxygen/oxygen_lib.c
index ba2bb49..4edf40b 100644
--- a/sound/pci/oxygen/oxygen_lib.c
+++ b/sound/pci/oxygen/oxygen_lib.c
@@ -202,7 +202,7 @@
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);
diff --git a/sound/pci/oxygen/virtuoso.c b/sound/pci/oxygen/virtuoso.c
index bfd1f3c..247d5e1 100644
--- a/sound/pci/oxygen/virtuoso.c
+++ b/sound/pci/oxygen/virtuoso.c
@@ -227,6 +227,7 @@
.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,