Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6cc58e1 authored by Clemens Ladisch's avatar Clemens Ladisch Committed by Takashi Iwai
Browse files

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: default avatarAndreas Allacher <andreas.allacher@gmx.at>
Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent dd38dc1a
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -419,6 +419,7 @@ static void xonar_st_init_common(struct oxygen *chip)

	data->generic.output_enable_bit = GPIO_ST_OUTPUT_ENABLE;
	data->dacs = chip->model.dac_channels_mixer / 2;
	data->h6 = chip->model.dac_channels_mixer > 2;
	data->hp_gain_offset = 2*-18;

	pcm1796_init(chip);
@@ -1142,8 +1143,18 @@ int get_xonar_pcm179x_model(struct oxygen *chip,
		break;
	case 0x85f4:
		chip->model = model_xonar_st;
		/* TODO: daughterboard support */
		oxygen_clear_bits16(chip, OXYGEN_GPIO_CONTROL, GPIO_DB_MASK);
		switch (oxygen_read16(chip, OXYGEN_GPIO_DATA) & GPIO_DB_MASK) {
		default:
			chip->model.shortname = "Xonar STX II";
			break;
		case GPIO_DB_H6:
			chip->model.shortname = "Xonar STX II+H6";
			chip->model.dac_channels_pcm = 8;
			chip->model.dac_channels_mixer = 8;
			chip->model.dac_mclks = OXYGEN_MCLKS(256, 128, 128);
			break;
		}
		chip->model.init = xonar_stx_init;
		chip->model.resume = xonar_stx_resume;
		chip->model.set_dac_params = set_pcm1796_params;