Exemplo n.º 1
0
static void update_pcm1796_volume(struct oxygen *chip)
{
	struct xonar_pcm179x *data = chip->model_data;
	unsigned int i;
	s8 gain_offset;

	gain_offset = data->hp_active ? data->hp_gain_offset : 0;
	for (i = 0; i < data->dacs; ++i) {
		pcm1796_write_cached(chip, i, 16, chip->dac_volume[i * 2]
				     + gain_offset);
		pcm1796_write_cached(chip, i, 17, chip->dac_volume[i * 2 + 1]
				     + gain_offset);
	}
}
Exemplo n.º 2
0
static void update_pcm1796_mute(struct oxygen *chip)
{
	struct xonar_pcm179x *data = chip->model_data;
	unsigned int i;
	u8 value;

	value = PCM1796_DMF_DISABLED | PCM1796_FMT_24_I2S | PCM1796_ATLD;
	if (chip->dac_mute)
		value |= PCM1796_MUTE;
	for (i = 0; i < data->dacs; ++i)
		pcm1796_write_cached(chip, i, 18, value);
}
Exemplo n.º 3
0
static void update_pcm1796_oversampling(struct oxygen *chip)
{
	struct xonar_pcm179x *data = chip->model_data;
	unsigned int i;
	u8 reg;

	if (data->current_rate <= 48000 && !data->h6)
		reg = PCM1796_OS_128;
	else
		reg = PCM1796_OS_64;
	for (i = 0; i < data->dacs; ++i)
		pcm1796_write_cached(chip, i, 20, reg);
}