aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2010-11-03 12:26:35 +0100
committerTakashi Iwai <tiwai@suse.de>2010-11-03 14:57:32 +0100
commit2146dcfd15ad55cfdd18b45e1e6601d6a86f0cbe (patch)
tree0afc42a4f22a14034654d0906ef83c3cf97e4b2e
parent18f24839f18f1934c1e37e86ce8f3fecbb0328c9 (diff)
ALSA: oxygen: add HiFier Serenade support
Add support for the TempoTec/MediaTek HiFier Serenade sound card. The PCI ID was already there, but the driver handled it like the Fantasia model, which resulted in a dummy recording device. As a stereo output-only card, this model is to be handled exactly like the HG2PCI. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--Documentation/sound/alsa/ALSA-Configuration.txt1
-rw-r--r--sound/pci/Kconfig1
-rw-r--r--sound/pci/oxygen/oxygen.c27
3 files changed, 16 insertions, 13 deletions
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt
index fdd388ded62..7124340038e 100644
--- a/Documentation/sound/alsa/ALSA-Configuration.txt
+++ b/Documentation/sound/alsa/ALSA-Configuration.txt
@@ -1535,6 +1535,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
* Razer Barracuda AC-1
* Sondigo Inferno
* TempoTec HiFier Fantasia
+ * TempoTec HiFier Serenade
This module supports autoprobe and multiple cards.
diff --git a/sound/pci/Kconfig b/sound/pci/Kconfig
index f7139d09cbb..5add96bdf17 100644
--- a/sound/pci/Kconfig
+++ b/sound/pci/Kconfig
@@ -226,6 +226,7 @@ config SND_OXYGEN
* Razer Barracuda AC-1
* Sondigo Inferno
* TempoTec/MediaTek HiFier Fantasia
+ * TempoTec/MediaTek HiFier Serenade
To compile this driver as a module, choose M here: the module
will be called snd-oxygen.
diff --git a/sound/pci/oxygen/oxygen.c b/sound/pci/oxygen/oxygen.c
index 13f39e58f3d..ea8fffefad9 100644
--- a/sound/pci/oxygen/oxygen.c
+++ b/sound/pci/oxygen/oxygen.c
@@ -70,8 +70,8 @@ enum {
MODEL_MERIDIAN,
MODEL_CLARO,
MODEL_CLARO_HALO,
- MODEL_HIFIER,
- MODEL_HG2PCI,
+ MODEL_FANTASIA,
+ MODEL_2CH_OUTPUT,
};
static DEFINE_PCI_DEVICE_TABLE(oxygen_ids) = {
@@ -85,10 +85,11 @@ static DEFINE_PCI_DEVICE_TABLE(oxygen_ids) = {
{ OXYGEN_PCI_SUBID(0x147a, 0xa017), .driver_data = MODEL_CMEDIA_REF },
{ OXYGEN_PCI_SUBID(0x1a58, 0x0910), .driver_data = MODEL_CMEDIA_REF },
/* Kuroutoshikou CMI8787-HG2PCI */
- { OXYGEN_PCI_SUBID(0x13f6, 0xffff), .driver_data = MODEL_HG2PCI },
+ { OXYGEN_PCI_SUBID(0x13f6, 0xffff), .driver_data = MODEL_2CH_OUTPUT },
/* TempoTec HiFier Fantasia */
- { OXYGEN_PCI_SUBID(0x14c3, 0x1710), .driver_data = MODEL_HIFIER },
- { OXYGEN_PCI_SUBID(0x14c3, 0x1711), .driver_data = MODEL_HIFIER },
+ { OXYGEN_PCI_SUBID(0x14c3, 0x1710), .driver_data = MODEL_FANTASIA },
+ /* TempoTec HiFier Serenade */
+ { OXYGEN_PCI_SUBID(0x14c3, 0x1711), .driver_data = MODEL_2CH_OUTPUT },
/* AuzenTech X-Meridian */
{ OXYGEN_PCI_SUBID(0x415a, 0x5431), .driver_data = MODEL_MERIDIAN },
/* HT-Omega Claro */
@@ -244,13 +245,13 @@ static void claro_halo_init(struct oxygen *chip)
claro_enable_hp(chip);
}
-static void hifier_init(struct oxygen *chip)
+static void fantasia_init(struct oxygen *chip)
{
ak4396_init(chip);
snd_component_add(chip->card, "CS5340");
}
-static void hg2pci_init(struct oxygen *chip)
+static void stereo_output_init(struct oxygen *chip)
{
ak4396_init(chip);
}
@@ -583,20 +584,20 @@ static int __devinit get_oxygen_model(struct oxygen *chip,
CAPTURE_0_FROM_I2S_2 |
CAPTURE_1_FROM_SPDIF;
break;
- case MODEL_HIFIER:
- case MODEL_HG2PCI:
+ case MODEL_FANTASIA:
+ case MODEL_2CH_OUTPUT:
chip->model.shortname = "C-Media CMI8787";
chip->model.chip = "CMI8787";
- if (id->driver_data == MODEL_HIFIER)
- chip->model.init = hifier_init;
+ if (id->driver_data == MODEL_FANTASIA)
+ chip->model.init = fantasia_init;
else
- chip->model.init = hg2pci_init;
+ chip->model.init = stereo_output_init;
chip->model.resume = stereo_resume;
chip->model.mixer_init = generic_mixer_init;
chip->model.set_adc_params = set_no_params;
chip->model.device_config = PLAYBACK_0_TO_I2S |
PLAYBACK_1_TO_SPDIF;
- if (id->driver_data == MODEL_HIFIER)
+ if (id->driver_data == MODEL_FANTASIA)
chip->model.device_config |= CAPTURE_0_FROM_I2S_1;
chip->model.dac_channels = 2;
break;