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

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

sound: oxygen: better defaults for upmixing control



On card models with two-channel outputs, the base driver can
automatically disable the upmixing control so that the model
drivers do not need to do this.

Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 268304f4
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -141,19 +141,11 @@ static void set_cs5340_params(struct oxygen *chip,

static const DECLARE_TLV_DB_LINEAR(ak4396_db_scale, TLV_DB_GAIN_MUTE, 0);

static int hifier_control_filter(struct snd_kcontrol_new *template)
{
	if (!strcmp(template->name, "Stereo Upmixing"))
		return 1; /* stereo only - we don't need upmixing */
	return 0;
}

static const struct oxygen_model model_hifier = {
	.shortname = "C-Media CMI8787",
	.longname = "C-Media Oxygen HD Audio",
	.chip = "CMI8788",
	.init = hifier_init,
	.control_filter = hifier_control_filter,
	.cleanup = hifier_cleanup,
	.resume = hifier_resume,
	.set_dac_params = set_ak4396_params,
+3 −0
Original line number Diff line number Diff line
@@ -954,6 +954,9 @@ static int add_controls(struct oxygen *chip,
			if (err == 1)
				continue;
		}
		if (!strcmp(template.name, "Stereo Upmixing") &&
		    chip->model.dac_channels == 2)
			continue;
		if (!strcmp(template.name, "Master Playback Volume") &&
		    chip->model.dac_tlv) {
			template.tlv.p = chip->model.dac_tlv;
+0 −2
Original line number Diff line number Diff line
@@ -605,8 +605,6 @@ static int xonar_st_control_filter(struct snd_kcontrol_new *template)
{
	if (!strncmp(template->name, "CD Capture ", 11))
		return 1; /* no CD input */
	if (!strcmp(template->name, "Stereo Upmixing"))
		return 1; /* stereo only - we don't need upmixing */
	return 0;
}