diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2014-09-07 15:47:33 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2014-09-08 04:57:45 -0400 |
commit | d6cc58e127a0b7df78d869a29ff073da6fb899bb (patch) | |
tree | 8b88e2f69939f4a75b1bf1d3c610f796388a11d7 /sound/pci/oxygen/xonar_pcm179x.c | |
parent | dd38dc1a9bf780b619ab93b3d7a5e90ebad441f5 (diff) |
ALSA: virtuoso: add Xonar Essence STX II daughterboard support
Detect and handle the H6 daughterboard; it works the same as with the
ST, except that there is no conflict with the CS2000 chip.
Tested-by: Andreas Allacher <andreas.allacher@gmx.at>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/oxygen/xonar_pcm179x.c')
-rw-r--r-- | sound/pci/oxygen/xonar_pcm179x.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/sound/pci/oxygen/xonar_pcm179x.c b/sound/pci/oxygen/xonar_pcm179x.c index 3c0a679c4539..0d6a805e8b62 100644 --- a/sound/pci/oxygen/xonar_pcm179x.c +++ b/sound/pci/oxygen/xonar_pcm179x.c | |||
@@ -419,6 +419,7 @@ static void xonar_st_init_common(struct oxygen *chip) | |||
419 | 419 | ||
420 | data->generic.output_enable_bit = GPIO_ST_OUTPUT_ENABLE; | 420 | data->generic.output_enable_bit = GPIO_ST_OUTPUT_ENABLE; |
421 | data->dacs = chip->model.dac_channels_mixer / 2; | 421 | data->dacs = chip->model.dac_channels_mixer / 2; |
422 | data->h6 = chip->model.dac_channels_mixer > 2; | ||
422 | data->hp_gain_offset = 2*-18; | 423 | data->hp_gain_offset = 2*-18; |
423 | 424 | ||
424 | pcm1796_init(chip); | 425 | pcm1796_init(chip); |
@@ -1142,8 +1143,18 @@ int get_xonar_pcm179x_model(struct oxygen *chip, | |||
1142 | break; | 1143 | break; |
1143 | case 0x85f4: | 1144 | case 0x85f4: |
1144 | chip->model = model_xonar_st; | 1145 | chip->model = model_xonar_st; |
1145 | /* TODO: daughterboard support */ | 1146 | oxygen_clear_bits16(chip, OXYGEN_GPIO_CONTROL, GPIO_DB_MASK); |
1146 | chip->model.shortname = "Xonar STX II"; | 1147 | switch (oxygen_read16(chip, OXYGEN_GPIO_DATA) & GPIO_DB_MASK) { |
1148 | default: | ||
1149 | chip->model.shortname = "Xonar STX II"; | ||
1150 | break; | ||
1151 | case GPIO_DB_H6: | ||
1152 | chip->model.shortname = "Xonar STX II+H6"; | ||
1153 | chip->model.dac_channels_pcm = 8; | ||
1154 | chip->model.dac_channels_mixer = 8; | ||
1155 | chip->model.dac_mclks = OXYGEN_MCLKS(256, 128, 128); | ||
1156 | break; | ||
1157 | } | ||
1147 | chip->model.init = xonar_stx_init; | 1158 | chip->model.init = xonar_stx_init; |
1148 | chip->model.resume = xonar_stx_resume; | 1159 | chip->model.resume = xonar_stx_resume; |
1149 | chip->model.set_dac_params = set_pcm1796_params; | 1160 | chip->model.set_dac_params = set_pcm1796_params; |