diff options
Diffstat (limited to 'sound/soc/codecs/cs47l15.c')
| -rw-r--r-- | sound/soc/codecs/cs47l15.c | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/sound/soc/codecs/cs47l15.c b/sound/soc/codecs/cs47l15.c index 391fd7da331f..da64e0a1db28 100644 --- a/sound/soc/codecs/cs47l15.c +++ b/sound/soc/codecs/cs47l15.c @@ -106,8 +106,7 @@ static int cs47l15_adsp_power_ev(struct snd_soc_dapm_widget *w, static int cs47l15_in1_adc_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - struct snd_soc_component *component = - snd_soc_kcontrol_component(kcontrol); + struct snd_soc_component *component = snd_kcontrol_chip(kcontrol); struct cs47l15 *cs47l15 = snd_soc_component_get_drvdata(component); ucontrol->value.integer.value[0] = !!cs47l15->in1_lp_mode; @@ -118,10 +117,12 @@ static int cs47l15_in1_adc_get(struct snd_kcontrol *kcontrol, static int cs47l15_in1_adc_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - struct snd_soc_component *component = - snd_soc_kcontrol_component(kcontrol); + struct snd_soc_component *component = snd_kcontrol_chip(kcontrol); struct cs47l15 *cs47l15 = snd_soc_component_get_drvdata(component); + if (!!ucontrol->value.integer.value[0] == cs47l15->in1_lp_mode) + return 0; + switch (ucontrol->value.integer.value[0]) { case 0: /* Set IN1 to normal mode */ @@ -150,7 +151,7 @@ static int cs47l15_in1_adc_put(struct snd_kcontrol *kcontrol, break; } - return 0; + return 1; } static const struct snd_kcontrol_new cs47l15_snd_controls[] = { @@ -1140,6 +1141,10 @@ static int cs47l15_set_fll(struct snd_soc_component *component, int fll_id, } } +static const struct snd_soc_dai_ops cs47l15_dai_ops = { + .compress_new = snd_soc_new_compress, +}; + static struct snd_soc_dai_driver cs47l15_dai[] = { { .name = "cs47l15-aif1", @@ -1216,7 +1221,7 @@ static struct snd_soc_dai_driver cs47l15_dai[] = { .rates = MADERA_RATES, .formats = MADERA_FORMATS, }, - .compress_new = snd_soc_new_compress, + .ops = &cs47l15_dai_ops, }, { .name = "cs47l15-dsp-trace", @@ -1239,12 +1244,12 @@ static int cs47l15_open(struct snd_soc_component *component, struct madera *madera = priv->madera; int n_adsp; - if (strcmp(asoc_rtd_to_codec(rtd, 0)->name, "cs47l15-dsp-trace") == 0) { + if (strcmp(snd_soc_rtd_to_codec(rtd, 0)->name, "cs47l15-dsp-trace") == 0) { n_adsp = 0; } else { dev_err(madera->dev, "No suitable compressed stream for DAI '%s'\n", - asoc_rtd_to_codec(rtd, 0)->name); + snd_soc_rtd_to_codec(rtd, 0)->name); return -EINVAL; } @@ -1273,6 +1278,7 @@ static const struct snd_soc_dapm_route cs47l15_mono_routes[] = { static int cs47l15_component_probe(struct snd_soc_component *component) { + struct snd_soc_dapm_context *dapm = snd_soc_component_to_dapm(component); struct cs47l15 *cs47l15 = snd_soc_component_get_drvdata(component); struct madera *madera = cs47l15->core.madera; int ret; @@ -1280,7 +1286,7 @@ static int cs47l15_component_probe(struct snd_soc_component *component) snd_soc_component_init_regmap(component, madera->regmap); mutex_lock(&madera->dapm_ptr_lock); - madera->dapm = snd_soc_component_get_dapm(component); + madera->dapm = snd_soc_component_to_dapm(component); mutex_unlock(&madera->dapm_ptr_lock); ret = madera_init_inputs(component); @@ -1293,7 +1299,7 @@ static int cs47l15_component_probe(struct snd_soc_component *component) if (ret) return ret; - snd_soc_component_disable_pin(component, "HAPTICS"); + snd_soc_dapm_disable_pin(dapm, "HAPTICS"); ret = snd_soc_add_component_controls(component, madera_adsp_rate_controls, @@ -1353,7 +1359,6 @@ static const struct snd_soc_component_driver soc_component_dev_cs47l15 = { .num_dapm_routes = ARRAY_SIZE(cs47l15_dapm_routes), .use_pmdown_time = 1, .endianness = 1, - .non_legacy_dai_naming = 1, }; static int cs47l15_probe(struct platform_device *pdev) @@ -1466,7 +1471,7 @@ error_core: return ret; } -static int cs47l15_remove(struct platform_device *pdev) +static void cs47l15_remove(struct platform_device *pdev) { struct cs47l15 *cs47l15 = platform_get_drvdata(pdev); @@ -1480,8 +1485,6 @@ static int cs47l15_remove(struct platform_device *pdev) madera_free_irq(cs47l15->core.madera, MADERA_IRQ_DSP_IRQ1, cs47l15); madera_free_overheat(&cs47l15->core); madera_core_free(&cs47l15->core); - - return 0; } static struct platform_driver cs47l15_codec_driver = { @@ -1489,7 +1492,7 @@ static struct platform_driver cs47l15_codec_driver = { .name = "cs47l15-codec", }, .probe = &cs47l15_probe, - .remove = &cs47l15_remove, + .remove = cs47l15_remove, }; module_platform_driver(cs47l15_codec_driver); |
