forked from luck/tmp_suning_uos_patched
sound: oxygen: handle AK5385 ADC on Claro halo cards
The HT-Omega Claro halo's ADC is an AK5385 instead of a WM8785, so we should handle the ADC parameters as we do with the X-Meridian. Using the code for the wrong ADC does not seem to have any audible effects, and the Windows driver does it, but it is nonetheless a good idea to run the AK5385 with an oversampling ratio that is not outside the documented limits. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
1275d6f608
commit
d91b424d6d
|
@ -196,6 +196,12 @@ static void meridian_init(struct oxygen *chip)
|
|||
ak5385_init(chip);
|
||||
}
|
||||
|
||||
static void halo_init(struct oxygen *chip)
|
||||
{
|
||||
ak4396_init(chip);
|
||||
ak5385_init(chip);
|
||||
}
|
||||
|
||||
static void generic_cleanup(struct oxygen *chip)
|
||||
{
|
||||
}
|
||||
|
@ -211,6 +217,11 @@ static void meridian_resume(struct oxygen *chip)
|
|||
ak4396_registers_init(chip);
|
||||
}
|
||||
|
||||
static void halo_resume(struct oxygen *chip)
|
||||
{
|
||||
ak4396_registers_init(chip);
|
||||
}
|
||||
|
||||
static void set_ak4396_params(struct oxygen *chip,
|
||||
struct snd_pcm_hw_params *params)
|
||||
{
|
||||
|
@ -335,6 +346,11 @@ static int __devinit get_oxygen_model(struct oxygen *chip,
|
|||
CAPTURE_0_FROM_I2S_2 |
|
||||
CAPTURE_1_FROM_SPDIF;
|
||||
break;
|
||||
case MODEL_HALO:
|
||||
chip->model.init = halo_init;
|
||||
chip->model.resume = halo_resume;
|
||||
chip->model.set_adc_params = set_ak5385_params;
|
||||
break;
|
||||
}
|
||||
if (id->driver_data == MODEL_MERIDIAN ||
|
||||
id->driver_data == MODEL_HALO) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user