Exemplo n.º 1
0
static int os_128_put(struct snd_kcontrol *ctl,
		      struct snd_ctl_elem_value *value)
{
	struct oxygen *chip = ctl->private_data;
	struct xonar_pcm179x *data = chip->model_data;
	int changed;

	mutex_lock(&chip->mutex);
	changed = value->value.enumerated.item[0] != data->os_128;
	if (changed) {
		data->os_128 = value->value.enumerated.item[0];
		if (data->has_cs2000)
			update_cs2000_rate(chip, data->current_rate);
		oxygen_write16_masked(chip, OXYGEN_I2S_MULTICH_FORMAT,
				      mclk_from_rate(chip, data->current_rate),
				      OXYGEN_I2S_MCLK_MASK);
		update_pcm1796_oversampling(chip);
	}
	mutex_unlock(&chip->mutex);
	return changed;
}
Exemplo n.º 2
0
static void set_st_params(struct oxygen *chip,
			  struct snd_pcm_hw_params *params)
{
	update_cs2000_rate(chip, params_rate(params));
	set_pcm1796_params(chip, params);
}