linux/sound/pci/oxygen/xonar_dg_mixer.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Mixer controls for the Xonar DG/DGX
 *
 * Copyright (c) Clemens Ladisch <[email protected]>
 * Copyright (c) Roman Volkov <[email protected]>
 */

#include <linux/pci.h>
#include <linux/delay.h>
#include <sound/control.h>
#include <sound/core.h>
#include <sound/info.h>
#include <sound/pcm.h>
#include <sound/tlv.h>
#include "oxygen.h"
#include "xonar_dg.h"
#include "cs4245.h"

/* analog output select */

static int output_select_apply(struct oxygen *chip)
{}

static int output_select_info(struct snd_kcontrol *ctl,
			      struct snd_ctl_elem_info *info)
{}

static int output_select_get(struct snd_kcontrol *ctl,
			     struct snd_ctl_elem_value *value)
{}

static int output_select_put(struct snd_kcontrol *ctl,
			     struct snd_ctl_elem_value *value)
{}

/* CS4245 Headphone Channels A&B Volume Control */

static int hp_stereo_volume_info(struct snd_kcontrol *ctl,
				struct snd_ctl_elem_info *info)
{}

static int hp_stereo_volume_get(struct snd_kcontrol *ctl,
				struct snd_ctl_elem_value *val)
{}

static int hp_stereo_volume_put(struct snd_kcontrol *ctl,
				struct snd_ctl_elem_value *val)
{}

/* Headphone Mute */

static int hp_mute_get(struct snd_kcontrol *ctl,
			struct snd_ctl_elem_value *val)
{}

static int hp_mute_put(struct snd_kcontrol *ctl,
			struct snd_ctl_elem_value *val)
{}

/* capture volume for all sources */

static int input_volume_apply(struct oxygen *chip, char left, char right)
{}

static int input_vol_info(struct snd_kcontrol *ctl,
			  struct snd_ctl_elem_info *info)
{}

static int input_vol_get(struct snd_kcontrol *ctl,
			 struct snd_ctl_elem_value *value)
{}

static int input_vol_put(struct snd_kcontrol *ctl,
			 struct snd_ctl_elem_value *value)
{}

/* Capture Source */

static int input_source_apply(struct oxygen *chip)
{}

static int input_sel_info(struct snd_kcontrol *ctl,
			  struct snd_ctl_elem_info *info)
{}

static int input_sel_get(struct snd_kcontrol *ctl,
			 struct snd_ctl_elem_value *value)
{}

static int input_sel_put(struct snd_kcontrol *ctl,
			 struct snd_ctl_elem_value *value)
{}

/* ADC high-pass filter */

static int hpf_info(struct snd_kcontrol *ctl, struct snd_ctl_elem_info *info)
{}

static int hpf_get(struct snd_kcontrol *ctl, struct snd_ctl_elem_value *value)
{}

static int hpf_put(struct snd_kcontrol *ctl, struct snd_ctl_elem_value *value)
{}

#define INPUT_VOLUME(xname, index)
static const DECLARE_TLV_DB_MINMAX(hp_db_scale, -12550, 0);
static const DECLARE_TLV_DB_MINMAX(pga_db_scale, -1200, 1200);
static const struct snd_kcontrol_new dg_controls[] =;

static int dg_control_filter(struct snd_kcontrol_new *template)
{}

static int dg_mixer_init(struct oxygen *chip)
{}

const struct oxygen_model model_xonar_dg =;