aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/oxygen/oxygen.c
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2011-01-10 10:20:29 -0500
committerTakashi Iwai <tiwai@suse.de>2011-01-10 10:46:46 -0500
commit66410bfdf14f7c2ad3b2d4a8adeab41d368b6f05 (patch)
treeaa9d7603372a0f16e7efdecbadc8eb2f31ba4c6d /sound/pci/oxygen/oxygen.c
parent8443d2eb81e30dcc027e531eaa442cdb2477c5ab (diff)
ALSA: oxygen: add Xonar DG support
Add experimental support for the Asus Xonar DG sound card. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/oxygen/oxygen.c')
-rw-r--r--sound/pci/oxygen/oxygen.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sound/pci/oxygen/oxygen.c b/sound/pci/oxygen/oxygen.c
index 304f1a5681f3..b59aeefd14db 100644
--- a/sound/pci/oxygen/oxygen.c
+++ b/sound/pci/oxygen/oxygen.c
@@ -53,13 +53,16 @@
53#include <sound/pcm_params.h> 53#include <sound/pcm_params.h>
54#include <sound/tlv.h> 54#include <sound/tlv.h>
55#include "oxygen.h" 55#include "oxygen.h"
56#include "xonar_dg.h"
56#include "ak4396.h" 57#include "ak4396.h"
57#include "wm8785.h" 58#include "wm8785.h"
58 59
59MODULE_AUTHOR("Clemens Ladisch <clemens@ladisch.de>"); 60MODULE_AUTHOR("Clemens Ladisch <clemens@ladisch.de>");
60MODULE_DESCRIPTION("C-Media CMI8788 driver"); 61MODULE_DESCRIPTION("C-Media CMI8788 driver");
61MODULE_LICENSE("GPL v2"); 62MODULE_LICENSE("GPL v2");
62MODULE_SUPPORTED_DEVICE("{{C-Media,CMI8788}}"); 63MODULE_SUPPORTED_DEVICE("{{C-Media,CMI8786}"
64 ",{C-Media,CMI8787}"
65 ",{C-Media,CMI8788}}");
63 66
64static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; 67static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;
65static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; 68static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;
@@ -79,6 +82,7 @@ enum {
79 MODEL_CLARO_HALO, 82 MODEL_CLARO_HALO,
80 MODEL_FANTASIA, 83 MODEL_FANTASIA,
81 MODEL_2CH_OUTPUT, 84 MODEL_2CH_OUTPUT,
85 MODEL_XONAR_DG,
82}; 86};
83 87
84static DEFINE_PCI_DEVICE_TABLE(oxygen_ids) = { 88static DEFINE_PCI_DEVICE_TABLE(oxygen_ids) = {
@@ -92,6 +96,8 @@ static DEFINE_PCI_DEVICE_TABLE(oxygen_ids) = {
92 { OXYGEN_PCI_SUBID(0x13f6, 0x8788), .driver_data = MODEL_CMEDIA_REF }, 96 { OXYGEN_PCI_SUBID(0x13f6, 0x8788), .driver_data = MODEL_CMEDIA_REF },
93 { OXYGEN_PCI_SUBID(0x147a, 0xa017), .driver_data = MODEL_CMEDIA_REF }, 97 { OXYGEN_PCI_SUBID(0x147a, 0xa017), .driver_data = MODEL_CMEDIA_REF },
94 { OXYGEN_PCI_SUBID(0x1a58, 0x0910), .driver_data = MODEL_CMEDIA_REF }, 98 { OXYGEN_PCI_SUBID(0x1a58, 0x0910), .driver_data = MODEL_CMEDIA_REF },
99 /* Asus Xonar DG */
100 { OXYGEN_PCI_SUBID(0x1043, 0x8467), .driver_data = MODEL_XONAR_DG },
95 /* PCI 2.0 HD Audio */ 101 /* PCI 2.0 HD Audio */
96 { OXYGEN_PCI_SUBID(0x13f6, 0x8782), .driver_data = MODEL_2CH_OUTPUT }, 102 { OXYGEN_PCI_SUBID(0x13f6, 0x8782), .driver_data = MODEL_2CH_OUTPUT },
97 /* Kuroutoshikou CMI8787-HG2PCI */ 103 /* Kuroutoshikou CMI8787-HG2PCI */
@@ -655,6 +661,9 @@ static int __devinit get_oxygen_model(struct oxygen *chip,
655 chip->model.dac_channels_pcm = 2; 661 chip->model.dac_channels_pcm = 2;
656 chip->model.dac_channels_mixer = 2; 662 chip->model.dac_channels_mixer = 2;
657 break; 663 break;
664 case MODEL_XONAR_DG:
665 chip->model = model_xonar_dg;
666 break;
658 } 667 }
659 if (id->driver_data == MODEL_MERIDIAN || 668 if (id->driver_data == MODEL_MERIDIAN ||
660 id->driver_data == MODEL_CLARO_HALO) { 669 id->driver_data == MODEL_CLARO_HALO) {