[alsa-devel] [PATCH 161/187] ASoC: arizona/cs47l24/wm5102/wm5110/wm8997/wm8998/wm_adsp: replace codec to component
Charles Keepax
ckeepax at opensource.cirrus.com
Wed Jan 24 16:10:18 CET 2018
On Fri, Jan 12, 2018 at 01:54:17AM +0000, Kuninori Morimoto wrote:
>
I would perhaps update the patch subject to just ASoC: arizona:,
that is what we usually do for patches that touch all the Arizona
CODECs.
Mostly this patch looks fine but I do have a couple of very minor
formatting nits.
Also you can add an:
Tested-by: Charles Keepax <ckeepax at opensource.cirrus.com>
> Now we can replace Codec to Component. Let's do it.
>
> Because there are many drivers which are using arizona,
> we need to update these all related drivers in same time.
> Otherwise compile error/warning happen
>
> Note:
>
> cs47l24
> xxx_codec_xxx() -> xxx_component_xxx()
> .idle_bias_off = 1 -> .idle_bias_on = 0
> .ignore_pmdown_time = 0 -> .pmdown_time = 1
> - -> .endianness = 1
> - -> .non_legacy_dai_naming = 1
>
> wm5102
> xxx_codec_xxx() -> xxx_component_xxx()
> .idle_bias_off = 1 -> .idle_bias_on = 0
> .ignore_pmdown_time = 0 -> .pmdown_time = 1
> - -> .endianness = 1
> - -> .non_legacy_dai_naming = 1
>
> wm5110
> xxx_codec_xxx() -> xxx_component_xxx()
> .idle_bias_off = 1 -> .idle_bias_on = 0
> .ignore_pmdown_time = 0 -> .pmdown_time = 1
> - -> .endianness = 1
> - -> .non_legacy_dai_naming = 1
>
> wm8997
> xxx_codec_xxx() -> xxx_component_xxx()
> .idle_bias_off = 1 -> .idle_bias_on = 0
> .ignore_pmdown_time = 0 -> .pmdown_time = 1
> - -> .endianness = 1
> - -> .non_legacy_dai_naming = 1
>
> wm8998
> xxx_codec_xxx() -> xxx_component_xxx()
> .idle_bias_off = 1 -> .idle_bias_on = 0
> .ignore_pmdown_time = 0 -> .pmdown_time = 1
> - -> .endianness = 1
> - -> .non_legacy_dai_naming = 1
>
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
> ---
> sound/soc/codecs/arizona.c | 208 ++++++++++++++++++++---------------------
> sound/soc/codecs/arizona.h | 24 ++---
> sound/soc/codecs/cs47l24.c | 86 ++++++++---------
> sound/soc/codecs/wm5102.c | 106 ++++++++++-----------
> sound/soc/codecs/wm5110.c | 140 +++++++++++++--------------
> sound/soc/codecs/wm8997.c | 62 ++++++------
> sound/soc/codecs/wm8998.c | 88 ++++++++---------
> sound/soc/codecs/wm_adsp.c | 58 ++++++------
> sound/soc/codecs/wm_adsp.h | 6 +-
> sound/soc/samsung/tm2_wm5110.c | 54 +++++------
> 10 files changed, 400 insertions(+), 432 deletions(-)
>
> diff --git a/sound/soc/codecs/arizona.c b/sound/soc/codecs/arizona.c
> index b3375e1..ffcfe8e 100644
> --- a/sound/soc/codecs/arizona.c
> +++ b/sound/soc/codecs/arizona.c
> @@ -84,13 +84,13 @@ static int arizona_spk_ev(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol,
> int event)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> - struct arizona *arizona = dev_get_drvdata(codec->dev->parent);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> + struct arizona *arizona = dev_get_drvdata(component->dev->parent);
> int val;
>
> switch (event) {
> case SND_SOC_DAPM_POST_PMU:
> - val = snd_soc_read(codec, ARIZONA_INTERRUPT_RAW_STATUS_3);
> + val = snd_soc_component_read32(component, ARIZONA_INTERRUPT_RAW_STATUS_3);
Can we wrap the second argument down a line.
> if (val & ARIZONA_SPK_OVERHEAT_STS) {
> dev_crit(arizona->dev,
> "Speaker not enabled due to temperature\n");
> @@ -169,10 +169,10 @@ static irqreturn_t arizona_thermal_shutdown(int irq, void *data)
> SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU |
> SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD);
>
> -int arizona_init_spk(struct snd_soc_codec *codec)
> +int arizona_init_spk(struct snd_soc_component *component)
> {
> - struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->arizona;
> int ret;
>
> @@ -238,10 +238,10 @@ int arizona_free_spk_irqs(struct arizona *arizona)
> { "OUT6R", NULL, "OUT6L" },
> };
>
> -int arizona_init_mono(struct snd_soc_codec *codec)
> +int arizona_init_mono(struct snd_soc_component *component)
> {
> - struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->arizona;
> int i;
>
> @@ -255,11 +255,9 @@ int arizona_init_mono(struct snd_soc_codec *codec)
> }
> EXPORT_SYMBOL_GPL(arizona_init_mono);
>
> -int arizona_init_gpio(struct snd_soc_codec *codec)
> +int arizona_init_gpio(struct snd_soc_component *component)
> {
> - struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
> - struct snd_soc_component *component = snd_soc_dapm_to_component(dapm);
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->arizona;
> int i;
>
> @@ -882,9 +880,9 @@ const char *arizona_sample_rate_val_to_name(unsigned int rate_val)
> };
> EXPORT_SYMBOL_GPL(arizona_voice_trigger_switch);
>
> -static void arizona_in_set_vu(struct snd_soc_codec *codec, int ena)
> +static void arizona_in_set_vu(struct snd_soc_component *component, int ena)
> {
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> unsigned int val;
> int i;
>
> @@ -894,15 +892,15 @@ static void arizona_in_set_vu(struct snd_soc_codec *codec, int ena)
> val = 0;
>
> for (i = 0; i < priv->num_inputs; i++)
> - snd_soc_update_bits(codec,
> + snd_soc_component_update_bits(component,
> ARIZONA_ADC_DIGITAL_VOLUME_1L + (i * 4),
> ARIZONA_IN_VU, val);
Can we update the indenting of the arguments here to match the
new function length?
> }
>
> -bool arizona_input_analog(struct snd_soc_codec *codec, int shift)
> +bool arizona_input_analog(struct snd_soc_component *component, int shift)
> {
> unsigned int reg = ARIZONA_IN1L_CONTROL + ((shift / 2) * 8);
> - unsigned int val = snd_soc_read(codec, reg);
> + unsigned int val = snd_soc_component_read32(component, reg);
>
> return !(val & ARIZONA_IN1_MODE_MASK);
> }
> @@ -911,8 +909,8 @@ bool arizona_input_analog(struct snd_soc_codec *codec, int shift)
> int arizona_in_ev(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol,
> int event)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> unsigned int reg;
>
> if (w->shift % 2)
> @@ -925,25 +923,25 @@ int arizona_in_ev(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol,
> priv->in_pending++;
> break;
> case SND_SOC_DAPM_POST_PMU:
> - snd_soc_update_bits(codec, reg, ARIZONA_IN1L_MUTE, 0);
> + snd_soc_component_update_bits(component, reg, ARIZONA_IN1L_MUTE, 0);
wrap
>
> /* If this is the last input pending then allow VU */
> priv->in_pending--;
> if (priv->in_pending == 0) {
> msleep(1);
> - arizona_in_set_vu(codec, 1);
> + arizona_in_set_vu(component, 1);
> }
> break;
> case SND_SOC_DAPM_PRE_PMD:
> - snd_soc_update_bits(codec, reg,
> + snd_soc_component_update_bits(component, reg,
> ARIZONA_IN1L_MUTE | ARIZONA_IN_VU,
> ARIZONA_IN1L_MUTE | ARIZONA_IN_VU);
align.
> break;
> case SND_SOC_DAPM_POST_PMD:
> /* Disable volume updates if no inputs are enabled */
> - reg = snd_soc_read(codec, ARIZONA_INPUT_ENABLES);
> + reg = snd_soc_component_read32(component, ARIZONA_INPUT_ENABLES);
> if (reg == 0)
> - arizona_in_set_vu(codec, 0);
> + arizona_in_set_vu(component, 0);
> break;
> default:
> break;
> @@ -957,8 +955,8 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol,
> int event)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->arizona;
>
> switch (event) {
> @@ -1001,7 +999,7 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
> case ARIZONA_OUT4R_ENA_SHIFT:
> priv->out_up_pending--;
> if (!priv->out_up_pending && priv->out_up_delay) {
> - dev_dbg(codec->dev, "Power up delay: %d\n",
> + dev_dbg(component->dev, "Power up delay: %d\n",
> priv->out_up_delay);
> msleep(priv->out_up_delay);
> priv->out_up_delay = 0;
> @@ -1054,7 +1052,7 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
> case ARIZONA_OUT4R_ENA_SHIFT:
> priv->out_down_pending--;
> if (!priv->out_down_pending && priv->out_down_delay) {
> - dev_dbg(codec->dev, "Power down delay: %d\n",
> + dev_dbg(component->dev, "Power down delay: %d\n",
> priv->out_down_delay);
> msleep(priv->out_down_delay);
> priv->out_down_delay = 0;
> @@ -1076,8 +1074,8 @@ int arizona_hp_ev(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol,
> int event)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->arizona;
> unsigned int mask = 1 << w->shift;
> unsigned int val;
> @@ -1111,15 +1109,15 @@ int arizona_hp_ev(struct snd_soc_dapm_widget *w,
> }
> EXPORT_SYMBOL_GPL(arizona_hp_ev);
>
> -static int arizona_dvfs_enable(struct snd_soc_codec *codec)
> +static int arizona_dvfs_enable(struct snd_soc_component *component)
> {
> - const struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + const struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->arizona;
> int ret;
>
> ret = regulator_set_voltage(arizona->dcvdd, 1800000, 1800000);
> if (ret) {
> - dev_err(codec->dev, "Failed to boost DCVDD: %d\n", ret);
> + dev_err(component->dev, "Failed to boost DCVDD: %d\n", ret);
> return ret;
> }
>
> @@ -1128,7 +1126,7 @@ static int arizona_dvfs_enable(struct snd_soc_codec *codec)
> ARIZONA_SUBSYS_MAX_FREQ,
> ARIZONA_SUBSYS_MAX_FREQ);
> if (ret) {
> - dev_err(codec->dev, "Failed to enable subsys max: %d\n", ret);
> + dev_err(component->dev, "Failed to enable subsys max: %d\n", ret);
> regulator_set_voltage(arizona->dcvdd, 1200000, 1800000);
> return ret;
> }
> @@ -1136,9 +1134,9 @@ static int arizona_dvfs_enable(struct snd_soc_codec *codec)
> return 0;
> }
>
> -static int arizona_dvfs_disable(struct snd_soc_codec *codec)
> +static int arizona_dvfs_disable(struct snd_soc_component *component)
> {
> - const struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + const struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->arizona;
> int ret;
>
> @@ -1146,28 +1144,28 @@ static int arizona_dvfs_disable(struct snd_soc_codec *codec)
> ARIZONA_DYNAMIC_FREQUENCY_SCALING_1,
> ARIZONA_SUBSYS_MAX_FREQ, 0);
> if (ret) {
> - dev_err(codec->dev, "Failed to disable subsys max: %d\n", ret);
> + dev_err(component->dev, "Failed to disable subsys max: %d\n", ret);
> return ret;
> }
>
> ret = regulator_set_voltage(arizona->dcvdd, 1200000, 1800000);
> if (ret) {
> - dev_err(codec->dev, "Failed to unboost DCVDD: %d\n", ret);
> + dev_err(component->dev, "Failed to unboost DCVDD: %d\n", ret);
> return ret;
> }
>
> return 0;
> }
>
> -int arizona_dvfs_up(struct snd_soc_codec *codec, unsigned int flags)
> +int arizona_dvfs_up(struct snd_soc_component *component, unsigned int flags)
> {
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> int ret = 0;
>
> mutex_lock(&priv->dvfs_lock);
>
> if (!priv->dvfs_cached && !priv->dvfs_reqs) {
> - ret = arizona_dvfs_enable(codec);
> + ret = arizona_dvfs_enable(component);
> if (ret)
> goto err;
> }
> @@ -1179,9 +1177,9 @@ int arizona_dvfs_up(struct snd_soc_codec *codec, unsigned int flags)
> }
> EXPORT_SYMBOL_GPL(arizona_dvfs_up);
>
> -int arizona_dvfs_down(struct snd_soc_codec *codec, unsigned int flags)
> +int arizona_dvfs_down(struct snd_soc_component *component, unsigned int flags)
> {
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> unsigned int old_reqs;
> int ret = 0;
>
> @@ -1191,7 +1189,7 @@ int arizona_dvfs_down(struct snd_soc_codec *codec, unsigned int flags)
> priv->dvfs_reqs &= ~flags;
>
> if (!priv->dvfs_cached && old_reqs && !priv->dvfs_reqs)
> - ret = arizona_dvfs_disable(codec);
> + ret = arizona_dvfs_disable(component);
>
> mutex_unlock(&priv->dvfs_lock);
> return ret;
> @@ -1201,8 +1199,8 @@ int arizona_dvfs_down(struct snd_soc_codec *codec, unsigned int flags)
> int arizona_dvfs_sysclk_ev(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol, int event)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> int ret = 0;
>
> mutex_lock(&priv->dvfs_lock);
> @@ -1210,7 +1208,7 @@ int arizona_dvfs_sysclk_ev(struct snd_soc_dapm_widget *w,
> switch (event) {
> case SND_SOC_DAPM_POST_PMU:
> if (priv->dvfs_reqs)
> - ret = arizona_dvfs_enable(codec);
> + ret = arizona_dvfs_enable(component);
>
> priv->dvfs_cached = false;
> break;
> @@ -1222,7 +1220,7 @@ int arizona_dvfs_sysclk_ev(struct snd_soc_dapm_widget *w,
> priv->dvfs_cached = true;
>
> if (priv->dvfs_reqs)
> - ret = arizona_dvfs_disable(codec);
> + ret = arizona_dvfs_disable(component);
> break;
> default:
> break;
> @@ -1243,7 +1241,7 @@ int arizona_anc_ev(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol,
> int event)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> unsigned int val;
>
> switch (event) {
> @@ -1257,7 +1255,7 @@ int arizona_anc_ev(struct snd_soc_dapm_widget *w,
> return 0;
> }
>
> - snd_soc_write(codec, ARIZONA_CLOCK_CONTROL, val);
> + snd_soc_component_write(component, ARIZONA_CLOCK_CONTROL, val);
>
> return 0;
> }
> @@ -1277,10 +1275,10 @@ int arizona_anc_ev(struct snd_soc_dapm_widget *w,
> 45158400,
> };
>
> -static int arizona_set_opclk(struct snd_soc_codec *codec, unsigned int clk,
> +static int arizona_set_opclk(struct snd_soc_component *component, unsigned int clk,
> unsigned int freq)
Might as well move clk down to the line with freq.
> {
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> unsigned int reg;
> unsigned int *rates;
> int ref, div, refclk;
> @@ -1308,9 +1306,9 @@ static int arizona_set_opclk(struct snd_soc_codec *codec, unsigned int clk,
> div = 1;
> while (rates[ref] / div >= freq && div < 32) {
> if (rates[ref] / div == freq) {
> - dev_dbg(codec->dev, "Configured %dHz OPCLK\n",
> + dev_dbg(component->dev, "Configured %dHz OPCLK\n",
> freq);
> - snd_soc_update_bits(codec, reg,
> + snd_soc_component_update_bits(component, reg,
> ARIZONA_OPCLK_DIV_MASK |
> ARIZONA_OPCLK_SEL_MASK,
> (div <<
align
> @@ -1322,22 +1320,22 @@ static int arizona_set_opclk(struct snd_soc_codec *codec, unsigned int clk,
> }
> }
>
> - dev_err(codec->dev, "Unable to generate %dHz OPCLK\n", freq);
> + dev_err(component->dev, "Unable to generate %dHz OPCLK\n", freq);
> return -EINVAL;
> }
>
> int arizona_clk_ev(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol, int event)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> - struct arizona *arizona = dev_get_drvdata(codec->dev->parent);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> + struct arizona *arizona = dev_get_drvdata(component->dev->parent);
> unsigned int val;
> int clk_idx;
> int ret;
>
> ret = regmap_read(arizona->regmap, w->reg, &val);
> if (ret) {
> - dev_err(codec->dev, "Failed to check clock source: %d\n", ret);
> + dev_err(component->dev, "Failed to check clock source: %d\n", ret);
> return ret;
> }
>
> @@ -1366,10 +1364,10 @@ int arizona_clk_ev(struct snd_soc_dapm_widget *w,
> }
> EXPORT_SYMBOL_GPL(arizona_clk_ev);
>
> -int arizona_set_sysclk(struct snd_soc_codec *codec, int clk_id,
> +int arizona_set_sysclk(struct snd_soc_component *component, int clk_id,
> int source, unsigned int freq, int dir)
> {
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->arizona;
> char *name;
> unsigned int reg;
> @@ -1391,7 +1389,7 @@ int arizona_set_sysclk(struct snd_soc_codec *codec, int clk_id,
> break;
> case ARIZONA_CLK_OPCLK:
> case ARIZONA_CLK_ASYNC_OPCLK:
> - return arizona_set_opclk(codec, clk_id, freq);
> + return arizona_set_opclk(component, clk_id, freq);
> default:
> return -EINVAL;
> }
> @@ -1445,8 +1443,8 @@ int arizona_set_sysclk(struct snd_soc_codec *codec, int clk_id,
>
> static int arizona_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
> {
> - struct snd_soc_codec *codec = dai->codec;
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_component *component = dai->component;
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->arizona;
> int lrclk, bclk, mode, base;
>
> @@ -1620,8 +1618,8 @@ static int arizona_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
> static int arizona_startup(struct snd_pcm_substream *substream,
> struct snd_soc_dai *dai)
> {
> - struct snd_soc_codec *codec = dai->codec;
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_component *component = dai->component;
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona_dai_priv *dai_priv = &priv->dai[dai->id - 1];
> unsigned int base_rate;
>
> @@ -1651,10 +1649,10 @@ static int arizona_startup(struct snd_pcm_substream *substream,
> &dai_priv->constraint);
> }
>
> -static void arizona_wm5102_set_dac_comp(struct snd_soc_codec *codec,
> +static void arizona_wm5102_set_dac_comp(struct snd_soc_component *component,
> unsigned int rate)
> {
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->arizona;
> struct reg_sequence dac_comp[] = {
> { 0x80, 0x3 },
> @@ -1680,8 +1678,8 @@ static int arizona_hw_params_rate(struct snd_pcm_substream *substream,
> struct snd_pcm_hw_params *params,
> struct snd_soc_dai *dai)
> {
> - struct snd_soc_codec *codec = dai->codec;
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_component *component = dai->component;
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona_dai_priv *dai_priv = &priv->dai[dai->id - 1];
> int base = dai->driver->base;
> int i, sr_val, ret;
> @@ -1704,9 +1702,9 @@ static int arizona_hw_params_rate(struct snd_pcm_substream *substream,
> case WM5102:
> case WM8997:
> if (arizona_sr_vals[sr_val] >= 88200)
> - ret = arizona_dvfs_up(codec, ARIZONA_DVFS_SR1_RQ);
> + ret = arizona_dvfs_up(component, ARIZONA_DVFS_SR1_RQ);
> else
> - ret = arizona_dvfs_down(codec, ARIZONA_DVFS_SR1_RQ);
> + ret = arizona_dvfs_down(component, ARIZONA_DVFS_SR1_RQ);
>
> if (ret) {
> arizona_aif_err(dai, "Failed to change DVFS %d\n", ret);
> @@ -1721,24 +1719,24 @@ static int arizona_hw_params_rate(struct snd_pcm_substream *substream,
> case ARIZONA_CLK_SYSCLK:
> switch (priv->arizona->type) {
> case WM5102:
> - arizona_wm5102_set_dac_comp(codec,
> + arizona_wm5102_set_dac_comp(component,
> params_rate(params));
> break;
> default:
> break;
> }
>
> - snd_soc_update_bits(codec, ARIZONA_SAMPLE_RATE_1,
> + snd_soc_component_update_bits(component, ARIZONA_SAMPLE_RATE_1,
> ARIZONA_SAMPLE_RATE_1_MASK, sr_val);
align
> if (base)
> - snd_soc_update_bits(codec, base + ARIZONA_AIF_RATE_CTRL,
> + snd_soc_component_update_bits(component, base + ARIZONA_AIF_RATE_CTRL,
> ARIZONA_AIF1_RATE_MASK, 0);
align
> break;
> case ARIZONA_CLK_ASYNCCLK:
> - snd_soc_update_bits(codec, ARIZONA_ASYNC_SAMPLE_RATE_1,
> + snd_soc_component_update_bits(component, ARIZONA_ASYNC_SAMPLE_RATE_1,
> ARIZONA_ASYNC_SAMPLE_RATE_1_MASK, sr_val);
align
> if (base)
> - snd_soc_update_bits(codec, base + ARIZONA_AIF_RATE_CTRL,
> + snd_soc_component_update_bits(component, base + ARIZONA_AIF_RATE_CTRL,
> ARIZONA_AIF1_RATE_MASK,
> 8 << ARIZONA_AIF1_RATE_SHIFT);
align
> break;
> @@ -1750,20 +1748,20 @@ static int arizona_hw_params_rate(struct snd_pcm_substream *substream,
> return 0;
> }
>
> -static bool arizona_aif_cfg_changed(struct snd_soc_codec *codec,
> +static bool arizona_aif_cfg_changed(struct snd_soc_component *component,
> int base, int bclk, int lrclk, int frame)
> {
> int val;
>
> - val = snd_soc_read(codec, base + ARIZONA_AIF_BCLK_CTRL);
> + val = snd_soc_component_read32(component, base + ARIZONA_AIF_BCLK_CTRL);
> if (bclk != (val & ARIZONA_AIF1_BCLK_FREQ_MASK))
> return true;
>
> - val = snd_soc_read(codec, base + ARIZONA_AIF_TX_BCLK_RATE);
> + val = snd_soc_component_read32(component, base + ARIZONA_AIF_TX_BCLK_RATE);
> if (lrclk != (val & ARIZONA_AIF1TX_BCPF_MASK))
> return true;
>
> - val = snd_soc_read(codec, base + ARIZONA_AIF_FRAME_CTRL_1);
> + val = snd_soc_component_read32(component, base + ARIZONA_AIF_FRAME_CTRL_1);
> if (frame != (val & (ARIZONA_AIF1TX_WL_MASK |
> ARIZONA_AIF1TX_SLOT_LEN_MASK)))
> return true;
> @@ -1775,8 +1773,8 @@ static int arizona_hw_params(struct snd_pcm_substream *substream,
> struct snd_pcm_hw_params *params,
> struct snd_soc_dai *dai)
> {
> - struct snd_soc_codec *codec = dai->codec;
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_component *component = dai->component;
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->arizona;
> int base = dai->driver->base;
> const int *rates;
> @@ -1813,7 +1811,7 @@ static int arizona_hw_params(struct snd_pcm_substream *substream,
> }
>
> /* Force multiple of 2 channels for I2S mode */
> - val = snd_soc_read(codec, base + ARIZONA_AIF_FORMAT);
> + val = snd_soc_component_read32(component, base + ARIZONA_AIF_FORMAT);
> val &= ARIZONA_AIF1_FMT_MASK;
> if ((channels & 1) && (val == ARIZONA_FMT_I2S_MODE)) {
> arizona_aif_dbg(dai, "Forcing stereo mode\n");
> @@ -1841,13 +1839,13 @@ static int arizona_hw_params(struct snd_pcm_substream *substream,
>
> frame = wl << ARIZONA_AIF1TX_WL_SHIFT | tdm_width;
>
> - reconfig = arizona_aif_cfg_changed(codec, base, bclk, lrclk, frame);
> + reconfig = arizona_aif_cfg_changed(component, base, bclk, lrclk, frame);
>
> if (reconfig) {
> /* Save AIF TX/RX state */
> - aif_tx_state = snd_soc_read(codec,
> + aif_tx_state = snd_soc_component_read32(component,
> base + ARIZONA_AIF_TX_ENABLES);
align
> - aif_rx_state = snd_soc_read(codec,
> + aif_rx_state = snd_soc_component_read32(component,
> base + ARIZONA_AIF_RX_ENABLES);
align
> /* Disable AIF TX/RX before reconfiguring it */
> regmap_update_bits_async(arizona->regmap,
> @@ -1908,9 +1906,9 @@ static const char *arizona_dai_clk_str(int clk_id)
> static int arizona_dai_set_sysclk(struct snd_soc_dai *dai,
> int clk_id, unsigned int freq, int dir)
> {
> - struct snd_soc_codec *codec = dai->codec;
> - struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_component *component = dai->component;
> + struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona_dai_priv *dai_priv = &priv->dai[dai->id - 1];
> struct snd_soc_dapm_route routes[2];
>
> @@ -1926,12 +1924,12 @@ static int arizona_dai_set_sysclk(struct snd_soc_dai *dai,
> return 0;
>
> if (dai->active) {
> - dev_err(codec->dev, "Can't change clock on active DAI %d\n",
> + dev_err(component->dev, "Can't change clock on active DAI %d\n",
> dai->id);
> return -EBUSY;
> }
>
> - dev_dbg(codec->dev, "Setting AIF%d to %s\n", dai->id + 1,
> + dev_dbg(component->dev, "Setting AIF%d to %s\n", dai->id + 1,
> arizona_dai_clk_str(clk_id));
>
> memset(&routes, 0, sizeof(routes));
> @@ -1953,7 +1951,7 @@ static int arizona_dai_set_sysclk(struct snd_soc_dai *dai,
>
> static int arizona_set_tristate(struct snd_soc_dai *dai, int tristate)
> {
> - struct snd_soc_codec *codec = dai->codec;
> + struct snd_soc_component *component = dai->component;
> int base = dai->driver->base;
> unsigned int reg;
>
> @@ -1962,7 +1960,7 @@ static int arizona_set_tristate(struct snd_soc_dai *dai, int tristate)
> else
> reg = 0;
>
> - return snd_soc_update_bits(codec, base + ARIZONA_AIF_RATE_CTRL,
> + return snd_soc_component_update_bits(component, base + ARIZONA_AIF_RATE_CTRL,
> ARIZONA_AIF1_TRI, reg);
align
> }
>
> @@ -1970,8 +1968,8 @@ static void arizona_set_channels_to_mask(struct snd_soc_dai *dai,
> unsigned int base,
> int channels, unsigned int mask)
> {
> - struct snd_soc_codec *codec = dai->codec;
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_component *component = dai->component;
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->arizona;
> int slot, i;
>
> @@ -1992,8 +1990,8 @@ static void arizona_set_channels_to_mask(struct snd_soc_dai *dai,
> static int arizona_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
> unsigned int rx_mask, int slots, int slot_width)
> {
> - struct snd_soc_codec *codec = dai->codec;
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_component *component = dai->component;
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->arizona;
> int base = dai->driver->base;
> int rx_max_chan = dai->driver->playback.channels_max;
> @@ -2645,7 +2643,7 @@ int arizona_init_fll(struct arizona *arizona, int id, int base, int lock_irq,
> /**
> * arizona_set_output_mode - Set the mode of the specified output
> *
> - * @codec: Device to configure
> + * @component: Device to configure
> * @output: Output number
> * @diff: True to set the output to differential mode
> *
> @@ -2658,7 +2656,7 @@ int arizona_init_fll(struct arizona *arizona, int id, int base, int lock_irq,
> * Most systems have a single static configuration and should use
> * platform data instead.
> */
> -int arizona_set_output_mode(struct snd_soc_codec *codec, int output, bool diff)
> +int arizona_set_output_mode(struct snd_soc_component *component, int output, bool diff)
> {
> unsigned int reg, val;
>
> @@ -2672,7 +2670,7 @@ int arizona_set_output_mode(struct snd_soc_codec *codec, int output, bool diff)
> else
> val = 0;
>
> - return snd_soc_update_bits(codec, reg, ARIZONA_OUT1_MONO, val);
> + return snd_soc_component_update_bits(component, reg, ARIZONA_OUT1_MONO, val);
> }
> EXPORT_SYMBOL_GPL(arizona_set_output_mode);
>
> @@ -2721,8 +2719,8 @@ static bool arizona_eq_filter_unstable(bool mode, __be16 _a, __be16 _b)
> int arizona_eq_coeff_put(struct snd_kcontrol *kcontrol,
> struct snd_ctl_elem_value *ucontrol)
> {
> - struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
> - struct arizona *arizona = dev_get_drvdata(codec->dev->parent);
> + struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
> + struct arizona *arizona = dev_get_drvdata(component->dev->parent);
> struct soc_bytes *params = (void *)kcontrol->private_value;
> unsigned int val;
> __be16 *data;
> @@ -2765,8 +2763,8 @@ int arizona_eq_coeff_put(struct snd_kcontrol *kcontrol,
> int arizona_lhpf_coeff_put(struct snd_kcontrol *kcontrol,
> struct snd_ctl_elem_value *ucontrol)
> {
> - struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
> - struct arizona *arizona = dev_get_drvdata(codec->dev->parent);
> + struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
> + struct arizona *arizona = dev_get_drvdata(component->dev->parent);
> __be16 *data = (__be16 *)ucontrol->value.bytes.data;
> s16 val = be16_to_cpu(*data);
>
> diff --git a/sound/soc/codecs/arizona.h b/sound/soc/codecs/arizona.h
> index dfdf6d8..e3ccee5 100644
> --- a/sound/soc/codecs/arizona.h
> +++ b/sound/soc/codecs/arizona.h
> @@ -273,7 +273,7 @@ int arizona_lhpf_coeff_put(struct snd_kcontrol *kcontrol,
>
> int arizona_clk_ev(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol,
> int event);
> -int arizona_set_sysclk(struct snd_soc_codec *codec, int clk_id, int source,
> +int arizona_set_sysclk(struct snd_soc_component *component, int clk_id, int source,
> unsigned int freq, int dir);
>
> extern const struct snd_soc_dai_ops arizona_dai_ops;
> @@ -297,8 +297,8 @@ struct arizona_fll {
> char clock_ok_name[ARIZONA_FLL_NAME_LEN];
> };
>
> -int arizona_dvfs_up(struct snd_soc_codec *codec, unsigned int flags);
> -int arizona_dvfs_down(struct snd_soc_codec *codec, unsigned int flags);
> +int arizona_dvfs_up(struct snd_soc_component *component, unsigned int flags);
> +int arizona_dvfs_down(struct snd_soc_component *component, unsigned int flags);
> int arizona_dvfs_sysclk_ev(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol, int event);
> void arizona_init_dvfs(struct arizona_priv *priv);
> @@ -310,9 +310,9 @@ int arizona_set_fll_refclk(struct arizona_fll *fll, int source,
> int arizona_set_fll(struct arizona_fll *fll, int source,
> unsigned int Fref, unsigned int Fout);
>
> -int arizona_init_spk(struct snd_soc_codec *codec);
> -int arizona_init_gpio(struct snd_soc_codec *codec);
> -int arizona_init_mono(struct snd_soc_codec *codec);
> +int arizona_init_spk(struct snd_soc_component *component);
> +int arizona_init_gpio(struct snd_soc_component *component);
> +int arizona_init_mono(struct snd_soc_component *component);
>
> int arizona_init_common(struct arizona *arizona);
> int arizona_init_vol_limit(struct arizona *arizona);
> @@ -322,20 +322,20 @@ int arizona_set_fll(struct arizona_fll *fll, int source,
>
> int arizona_init_dai(struct arizona_priv *priv, int dai);
>
> -int arizona_set_output_mode(struct snd_soc_codec *codec, int output,
> +int arizona_set_output_mode(struct snd_soc_component *component, int output,
> bool diff);
>
> -bool arizona_input_analog(struct snd_soc_codec *codec, int shift);
> +bool arizona_input_analog(struct snd_soc_component *component, int shift);
>
> const char *arizona_sample_rate_val_to_name(unsigned int rate_val);
>
> -static inline int arizona_register_notifier(struct snd_soc_codec *codec,
> +static inline int arizona_register_notifier(struct snd_soc_component *component,
> struct notifier_block *nb,
> int (*notify)
> (struct notifier_block *nb,
> unsigned long action, void *data))
> {
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->arizona;
>
> nb->notifier_call = notify;
> @@ -343,10 +343,10 @@ static inline int arizona_register_notifier(struct snd_soc_codec *codec,
> return blocking_notifier_chain_register(&arizona->notifier, nb);
> }
>
> -static inline int arizona_unregister_notifier(struct snd_soc_codec *codec,
> +static inline int arizona_unregister_notifier(struct snd_soc_component *component,
> struct notifier_block *nb)
> {
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->arizona;
>
> return blocking_notifier_chain_unregister(&arizona->notifier, nb);
> diff --git a/sound/soc/codecs/cs47l24.c b/sound/soc/codecs/cs47l24.c
> index 3f34de5..2aaa866 100644
> --- a/sound/soc/codecs/cs47l24.c
> +++ b/sound/soc/codecs/cs47l24.c
> @@ -62,14 +62,14 @@ struct cs47l24_priv {
> static int cs47l24_adsp_power_ev(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol, int event)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> - struct arizona *arizona = dev_get_drvdata(codec->dev->parent);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> + struct arizona *arizona = dev_get_drvdata(component->dev->parent);
> unsigned int v;
> int ret;
>
> ret = regmap_read(arizona->regmap, ARIZONA_SYSTEM_CLOCK_1, &v);
> if (ret != 0) {
> - dev_err(codec->dev, "Failed to read SYSCLK state: %d\n", ret);
> + dev_err(component->dev, "Failed to read SYSCLK state: %d\n", ret);
> return ret;
> }
>
> @@ -931,10 +931,10 @@ static int cs47l24_adsp_power_ev(struct snd_soc_dapm_widget *w,
> { "DSP3 Voice Trigger", "Switch", "DSP3" },
> };
>
> -static int cs47l24_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
> +static int cs47l24_set_fll(struct snd_soc_component *component, int fll_id, int source,
> unsigned int Fref, unsigned int Fout)
> {
> - struct cs47l24_priv *cs47l24 = snd_soc_codec_get_drvdata(codec);
> + struct cs47l24_priv *cs47l24 = snd_soc_component_get_drvdata(component);
>
> switch (fll_id) {
> case CS47L24_FLL1:
> @@ -1118,33 +1118,32 @@ static irqreturn_t cs47l24_adsp2_irq(int irq, void *data)
> return IRQ_HANDLED;
> }
>
> -static int cs47l24_codec_probe(struct snd_soc_codec *codec)
> +static int cs47l24_component_probe(struct snd_soc_component *component)
> {
> - struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
> - struct snd_soc_component *component = snd_soc_dapm_to_component(dapm);
> - struct cs47l24_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
> + struct cs47l24_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->core.arizona;
> int ret;
>
> arizona->dapm = dapm;
> - snd_soc_codec_init_regmap(codec, arizona->regmap);
> + snd_soc_component_init_regmap(component, arizona->regmap);
>
> - ret = arizona_init_spk(codec);
> + ret = arizona_init_spk(component);
> if (ret < 0)
> return ret;
>
> - arizona_init_gpio(codec);
> - arizona_init_mono(codec);
> + arizona_init_gpio(component);
> + arizona_init_mono(component);
>
> - ret = wm_adsp2_codec_probe(&priv->core.adsp[1], codec);
> + ret = wm_adsp2_component_probe(&priv->core.adsp[1], component);
> if (ret)
> goto err_adsp2_codec_probe;
>
> - ret = wm_adsp2_codec_probe(&priv->core.adsp[2], codec);
> + ret = wm_adsp2_component_probe(&priv->core.adsp[2], component);
> if (ret)
> goto err_adsp2_codec_probe;
>
> - ret = snd_soc_add_codec_controls(codec,
> + ret = snd_soc_add_component_controls(component,
> &arizona_adsp2_rate_controls[1], 2);
> if (ret)
> goto err_adsp2_codec_probe;
> @@ -1154,22 +1153,20 @@ static int cs47l24_codec_probe(struct snd_soc_codec *codec)
> return 0;
>
> err_adsp2_codec_probe:
> - wm_adsp2_codec_remove(&priv->core.adsp[1], codec);
> - wm_adsp2_codec_remove(&priv->core.adsp[2], codec);
> + wm_adsp2_component_remove(&priv->core.adsp[1], component);
> + wm_adsp2_component_remove(&priv->core.adsp[2], component);
>
> return ret;
> }
>
> -static int cs47l24_codec_remove(struct snd_soc_codec *codec)
> +static void cs47l24_component_remove(struct snd_soc_component *component)
> {
> - struct cs47l24_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct cs47l24_priv *priv = snd_soc_component_get_drvdata(component);
>
> - wm_adsp2_codec_remove(&priv->core.adsp[1], codec);
> - wm_adsp2_codec_remove(&priv->core.adsp[2], codec);
> + wm_adsp2_component_remove(&priv->core.adsp[1], component);
> + wm_adsp2_component_remove(&priv->core.adsp[2], component);
>
> priv->core.arizona->dapm = NULL;
> -
> - return 0;
> }
>
> #define CS47L24_DIG_VU 0x0200
> @@ -1190,25 +1187,22 @@ static int cs47l24_codec_remove(struct snd_soc_codec *codec)
> .copy = wm_adsp_compr_copy,
> };
>
> -static const struct snd_soc_codec_driver soc_codec_dev_cs47l24 = {
> - .probe = cs47l24_codec_probe,
> - .remove = cs47l24_codec_remove,
> -
> - .idle_bias_off = true,
> -
> - .set_sysclk = arizona_set_sysclk,
> - .set_pll = cs47l24_set_fll,
> -
> - .component_driver = {
> - .name = DRV_NAME,
> - .compr_ops = &cs47l24_compr_ops,
> - .controls = cs47l24_snd_controls,
> - .num_controls = ARRAY_SIZE(cs47l24_snd_controls),
> - .dapm_widgets = cs47l24_dapm_widgets,
> - .num_dapm_widgets = ARRAY_SIZE(cs47l24_dapm_widgets),
> - .dapm_routes = cs47l24_dapm_routes,
> - .num_dapm_routes = ARRAY_SIZE(cs47l24_dapm_routes),
> - },
> +static const struct snd_soc_component_driver soc_component_dev_cs47l24 = {
> + .probe = cs47l24_component_probe,
> + .remove = cs47l24_component_remove,
> + .set_sysclk = arizona_set_sysclk,
> + .set_pll = cs47l24_set_fll,
> + .name = DRV_NAME,
> + .compr_ops = &cs47l24_compr_ops,
> + .controls = cs47l24_snd_controls,
> + .num_controls = ARRAY_SIZE(cs47l24_snd_controls),
> + .dapm_widgets = cs47l24_dapm_widgets,
> + .num_dapm_widgets = ARRAY_SIZE(cs47l24_dapm_widgets),
> + .dapm_routes = cs47l24_dapm_routes,
> + .num_dapm_routes = ARRAY_SIZE(cs47l24_dapm_routes),
> + .pmdown_time = 1,
> + .endianness = 1,
> + .non_legacy_dai_naming = 1,
> };
>
> static int cs47l24_probe(struct platform_device *pdev)
> @@ -1299,10 +1293,11 @@ static int cs47l24_probe(struct platform_device *pdev)
> if (ret < 0)
> goto err_dsp_irq;
>
> - ret = snd_soc_register_codec(&pdev->dev, &soc_codec_dev_cs47l24,
> + ret = devm_snd_soc_register_component(&pdev->dev,
> + &soc_component_dev_cs47l24,
> cs47l24_dai, ARRAY_SIZE(cs47l24_dai));
align
> if (ret < 0) {
> - dev_err(&pdev->dev, "Failed to register codec: %d\n", ret);
> + dev_err(&pdev->dev, "Failed to register component: %d\n", ret);
> goto err_spk_irqs;
> }
>
> @@ -1321,7 +1316,6 @@ static int cs47l24_remove(struct platform_device *pdev)
> struct cs47l24_priv *cs47l24 = platform_get_drvdata(pdev);
> struct arizona *arizona = cs47l24->core.arizona;
>
> - snd_soc_unregister_codec(&pdev->dev);
> pm_runtime_disable(&pdev->dev);
>
> wm_adsp2_remove(&cs47l24->core.adsp[1]);
> diff --git a/sound/soc/codecs/wm5102.c b/sound/soc/codecs/wm5102.c
> index a568050..68bd418 100644
> --- a/sound/soc/codecs/wm5102.c
> +++ b/sound/soc/codecs/wm5102.c
> @@ -583,8 +583,8 @@ struct wm5102_priv {
> static int wm5102_sysclk_ev(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol, int event)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> - struct arizona *arizona = dev_get_drvdata(codec->dev->parent);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> + struct arizona *arizona = dev_get_drvdata(component->dev->parent);
> struct regmap *regmap = arizona->regmap;
> const struct reg_default *patch = NULL;
> int i, patch_size;
> @@ -622,8 +622,8 @@ static int wm5102_sysclk_ev(struct snd_soc_dapm_widget *w,
> static int wm5102_adsp_power_ev(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol, int event)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> - struct arizona *arizona = dev_get_drvdata(codec->dev->parent);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> + struct arizona *arizona = dev_get_drvdata(component->dev->parent);
> unsigned int v = 0;
> int ret;
>
> @@ -631,7 +631,7 @@ static int wm5102_adsp_power_ev(struct snd_soc_dapm_widget *w,
> case SND_SOC_DAPM_PRE_PMU:
> ret = regmap_read(arizona->regmap, ARIZONA_SYSTEM_CLOCK_1, &v);
> if (ret != 0) {
> - dev_err(codec->dev,
> + dev_err(component->dev,
> "Failed to read SYSCLK state: %d\n", ret);
> return -EIO;
> }
> @@ -639,9 +639,9 @@ static int wm5102_adsp_power_ev(struct snd_soc_dapm_widget *w,
> v = (v & ARIZONA_SYSCLK_FREQ_MASK) >> ARIZONA_SYSCLK_FREQ_SHIFT;
>
> if (v >= 3) {
> - ret = arizona_dvfs_up(codec, ARIZONA_DVFS_ADSP1_RQ);
> + ret = arizona_dvfs_up(component, ARIZONA_DVFS_ADSP1_RQ);
> if (ret) {
> - dev_err(codec->dev,
> + dev_err(component->dev,
> "Failed to raise DVFS: %d\n", ret);
> return ret;
> }
> @@ -649,9 +649,9 @@ static int wm5102_adsp_power_ev(struct snd_soc_dapm_widget *w,
> break;
>
> case SND_SOC_DAPM_POST_PMD:
> - ret = arizona_dvfs_down(codec, ARIZONA_DVFS_ADSP1_RQ);
> + ret = arizona_dvfs_down(component, ARIZONA_DVFS_ADSP1_RQ);
> if (ret)
> - dev_warn(codec->dev,
> + dev_warn(component->dev,
> "Failed to lower DVFS: %d\n", ret);
> break;
>
> @@ -665,8 +665,8 @@ static int wm5102_adsp_power_ev(struct snd_soc_dapm_widget *w,
> static int wm5102_out_comp_coeff_get(struct snd_kcontrol *kcontrol,
> struct snd_ctl_elem_value *ucontrol)
> {
> - struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
> - struct arizona *arizona = dev_get_drvdata(codec->dev->parent);
> + struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
> + struct arizona *arizona = dev_get_drvdata(component->dev->parent);
>
> mutex_lock(&arizona->dac_comp_lock);
> put_unaligned_be16(arizona->dac_comp_coeff,
> @@ -679,8 +679,8 @@ static int wm5102_out_comp_coeff_get(struct snd_kcontrol *kcontrol,
> static int wm5102_out_comp_coeff_put(struct snd_kcontrol *kcontrol,
> struct snd_ctl_elem_value *ucontrol)
> {
> - struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
> - struct arizona *arizona = dev_get_drvdata(codec->dev->parent);
> + struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
> + struct arizona *arizona = dev_get_drvdata(component->dev->parent);
>
> mutex_lock(&arizona->dac_comp_lock);
> memcpy(&arizona->dac_comp_coeff, ucontrol->value.bytes.data,
> @@ -694,8 +694,8 @@ static int wm5102_out_comp_coeff_put(struct snd_kcontrol *kcontrol,
> static int wm5102_out_comp_switch_get(struct snd_kcontrol *kcontrol,
> struct snd_ctl_elem_value *ucontrol)
> {
> - struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
> - struct arizona *arizona = dev_get_drvdata(codec->dev->parent);
> + struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
> + struct arizona *arizona = dev_get_drvdata(component->dev->parent);
>
> mutex_lock(&arizona->dac_comp_lock);
> ucontrol->value.integer.value[0] = arizona->dac_comp_enabled;
> @@ -707,8 +707,8 @@ static int wm5102_out_comp_switch_get(struct snd_kcontrol *kcontrol,
> static int wm5102_out_comp_switch_put(struct snd_kcontrol *kcontrol,
> struct snd_ctl_elem_value *ucontrol)
> {
> - struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
> - struct arizona *arizona = dev_get_drvdata(codec->dev->parent);
> + struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
> + struct arizona *arizona = dev_get_drvdata(component->dev->parent);
>
> mutex_lock(&arizona->dac_comp_lock);
> arizona->dac_comp_enabled = ucontrol->value.integer.value[0];
> @@ -1736,10 +1736,10 @@ static int wm5102_out_comp_switch_put(struct snd_kcontrol *kcontrol,
> { "DRC1 Signal Activity", NULL, "DRC1R" },
> };
>
> -static int wm5102_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
> +static int wm5102_set_fll(struct snd_soc_component *component, int fll_id, int source,
> unsigned int Fref, unsigned int Fout)
> {
> - struct wm5102_priv *wm5102 = snd_soc_codec_get_drvdata(codec);
> + struct wm5102_priv *wm5102 = snd_soc_component_get_drvdata(component);
>
> switch (fll_id) {
> case WM5102_FLL1:
> @@ -1933,30 +1933,29 @@ static irqreturn_t wm5102_adsp2_irq(int irq, void *data)
> return IRQ_HANDLED;
> }
>
> -static int wm5102_codec_probe(struct snd_soc_codec *codec)
> +static int wm5102_component_probe(struct snd_soc_component *component)
> {
> - struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
> - struct snd_soc_component *component = snd_soc_dapm_to_component(dapm);
> - struct wm5102_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
> + struct wm5102_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->core.arizona;
> int ret;
>
> - snd_soc_codec_init_regmap(codec, arizona->regmap);
> + snd_soc_component_init_regmap(component, arizona->regmap);
>
> - ret = wm_adsp2_codec_probe(&priv->core.adsp[0], codec);
> + ret = wm_adsp2_component_probe(&priv->core.adsp[0], component);
> if (ret)
> return ret;
>
> - ret = snd_soc_add_codec_controls(codec,
> + ret = snd_soc_add_component_controls(component,
> arizona_adsp2_rate_controls, 1);
> if (ret)
align
> goto err_adsp2_codec_probe;
>
> - ret = arizona_init_spk(codec);
> + ret = arizona_init_spk(component);
> if (ret < 0)
> return ret;
>
> - arizona_init_gpio(codec);
> + arizona_init_gpio(component);
>
> snd_soc_component_disable_pin(component, "HAPTICS");
>
> @@ -1965,20 +1964,18 @@ static int wm5102_codec_probe(struct snd_soc_codec *codec)
> return 0;
>
> err_adsp2_codec_probe:
> - wm_adsp2_codec_remove(&priv->core.adsp[0], codec);
> + wm_adsp2_component_remove(&priv->core.adsp[0], component);
>
> return ret;
> }
>
> -static int wm5102_codec_remove(struct snd_soc_codec *codec)
> +static void wm5102_component_remove(struct snd_soc_component *component)
> {
> - struct wm5102_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct wm5102_priv *priv = snd_soc_component_get_drvdata(component);
>
> - wm_adsp2_codec_remove(&priv->core.adsp[0], codec);
> + wm_adsp2_component_remove(&priv->core.adsp[0], component);
>
> priv->core.arizona->dapm = NULL;
> -
> - return 0;
> }
>
> #define WM5102_DIG_VU 0x0200
> @@ -2005,25 +2002,22 @@ static int wm5102_codec_remove(struct snd_soc_codec *codec)
> .copy = wm_adsp_compr_copy,
> };
>
> -static const struct snd_soc_codec_driver soc_codec_dev_wm5102 = {
> - .probe = wm5102_codec_probe,
> - .remove = wm5102_codec_remove,
> -
> - .idle_bias_off = true,
> -
> - .set_sysclk = arizona_set_sysclk,
> - .set_pll = wm5102_set_fll,
> -
> - .component_driver = {
> - .name = DRV_NAME,
> - .compr_ops = &wm5102_compr_ops,
> - .controls = wm5102_snd_controls,
> - .num_controls = ARRAY_SIZE(wm5102_snd_controls),
> - .dapm_widgets = wm5102_dapm_widgets,
> - .num_dapm_widgets = ARRAY_SIZE(wm5102_dapm_widgets),
> - .dapm_routes = wm5102_dapm_routes,
> - .num_dapm_routes = ARRAY_SIZE(wm5102_dapm_routes),
> - },
> +static const struct snd_soc_component_driver soc_component_dev_wm5102 = {
> + .probe = wm5102_component_probe,
> + .remove = wm5102_component_remove,
> + .set_sysclk = arizona_set_sysclk,
> + .set_pll = wm5102_set_fll,
> + .name = DRV_NAME,
> + .compr_ops = &wm5102_compr_ops,
> + .controls = wm5102_snd_controls,
> + .num_controls = ARRAY_SIZE(wm5102_snd_controls),
> + .dapm_widgets = wm5102_dapm_widgets,
> + .num_dapm_widgets = ARRAY_SIZE(wm5102_dapm_widgets),
> + .dapm_routes = wm5102_dapm_routes,
> + .num_dapm_routes = ARRAY_SIZE(wm5102_dapm_routes),
> + .pmdown_time = 1,
> + .endianness = 1,
> + .non_legacy_dai_naming = 1,
> };
>
> static int wm5102_probe(struct platform_device *pdev)
> @@ -2110,10 +2104,11 @@ static int wm5102_probe(struct platform_device *pdev)
> if (ret < 0)
> goto err_dsp_irq;
>
> - ret = snd_soc_register_codec(&pdev->dev, &soc_codec_dev_wm5102,
> + ret = devm_snd_soc_register_component(&pdev->dev,
> + &soc_component_dev_wm5102,
> wm5102_dai, ARRAY_SIZE(wm5102_dai));
align
> if (ret < 0) {
> - dev_err(&pdev->dev, "Failed to register codec: %d\n", ret);
> + dev_err(&pdev->dev, "Failed to register component: %d\n", ret);
> goto err_spk_irqs;
> }
>
> @@ -2132,7 +2127,6 @@ static int wm5102_remove(struct platform_device *pdev)
> struct wm5102_priv *wm5102 = platform_get_drvdata(pdev);
> struct arizona *arizona = wm5102->core.arizona;
>
> - snd_soc_unregister_codec(&pdev->dev);
> pm_runtime_disable(&pdev->dev);
>
> wm_adsp2_remove(&wm5102->core.adsp[0]);
> diff --git a/sound/soc/codecs/wm5110.c b/sound/soc/codecs/wm5110.c
> index d5ece6c..1159338 100644
> --- a/sound/soc/codecs/wm5110.c
> +++ b/sound/soc/codecs/wm5110.c
> @@ -161,8 +161,8 @@ struct wm5110_priv {
> static int wm5110_sysclk_ev(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol, int event)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> - struct arizona *arizona = dev_get_drvdata(codec->dev->parent);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> + struct arizona *arizona = dev_get_drvdata(component->dev->parent);
> struct regmap *regmap = arizona->regmap;
> const struct reg_default *patch = NULL;
> int i, patch_size;
> @@ -198,14 +198,14 @@ static int wm5110_sysclk_ev(struct snd_soc_dapm_widget *w,
> static int wm5110_adsp_power_ev(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol, int event)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> - struct arizona *arizona = dev_get_drvdata(codec->dev->parent);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> + struct arizona *arizona = dev_get_drvdata(component->dev->parent);
> unsigned int v;
> int ret;
>
> ret = regmap_read(arizona->regmap, ARIZONA_SYSTEM_CLOCK_1, &v);
> if (ret != 0) {
> - dev_err(codec->dev, "Failed to read SYSCLK state: %d\n", ret);
> + dev_err(component->dev, "Failed to read SYSCLK state: %d\n", ret);
> return ret;
> }
>
> @@ -288,10 +288,10 @@ static int wm5110_adsp_power_ev(struct snd_soc_dapm_widget *w,
>
> static int wm5110_hp_pre_enable(struct snd_soc_dapm_widget *w)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->arizona;
> - unsigned int val = snd_soc_read(codec, ARIZONA_DRE_ENABLE);
> + unsigned int val = snd_soc_component_read32(component, ARIZONA_DRE_ENABLE);
> const struct reg_sequence *wseq;
> int nregs;
>
> @@ -325,25 +325,25 @@ static int wm5110_hp_pre_enable(struct snd_soc_dapm_widget *w)
>
> static int wm5110_hp_pre_disable(struct snd_soc_dapm_widget *w)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> - unsigned int val = snd_soc_read(codec, ARIZONA_DRE_ENABLE);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> + unsigned int val = snd_soc_component_read32(component, ARIZONA_DRE_ENABLE);
>
> switch (w->shift) {
> case ARIZONA_OUT1L_ENA_SHIFT:
> if (!(val & ARIZONA_DRE1L_ENA_MASK)) {
> - snd_soc_update_bits(codec, ARIZONA_SPARE_TRIGGERS,
> + snd_soc_component_update_bits(component, ARIZONA_SPARE_TRIGGERS,
> ARIZONA_WS_TRG1, ARIZONA_WS_TRG1);
align
> - snd_soc_update_bits(codec, ARIZONA_SPARE_TRIGGERS,
> + snd_soc_component_update_bits(component, ARIZONA_SPARE_TRIGGERS,
> ARIZONA_WS_TRG1, 0);
align
> priv->out_down_delay += 27;
> }
> break;
> case ARIZONA_OUT1R_ENA_SHIFT:
> if (!(val & ARIZONA_DRE1R_ENA_MASK)) {
> - snd_soc_update_bits(codec, ARIZONA_SPARE_TRIGGERS,
> + snd_soc_component_update_bits(component, ARIZONA_SPARE_TRIGGERS,
> ARIZONA_WS_TRG2, ARIZONA_WS_TRG2);
align
> - snd_soc_update_bits(codec, ARIZONA_SPARE_TRIGGERS,
> + snd_soc_component_update_bits(component, ARIZONA_SPARE_TRIGGERS,
> ARIZONA_WS_TRG2, 0);
align
> priv->out_down_delay += 27;
> }
> @@ -358,8 +358,8 @@ static int wm5110_hp_pre_disable(struct snd_soc_dapm_widget *w)
> static int wm5110_hp_ev(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol, int event)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
>
> switch (priv->arizona->rev) {
> case 0 ... 3:
> @@ -397,9 +397,9 @@ static int wm5110_clear_pga_volume(struct arizona *arizona, int output)
> static int wm5110_put_dre(struct snd_kcontrol *kcontrol,
> struct snd_ctl_elem_value *ucontrol)
> {
> - struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
> - struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
> - struct arizona *arizona = dev_get_drvdata(codec->dev->parent);
> + struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
> + struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
> + struct arizona *arizona = dev_get_drvdata(component->dev->parent);
> struct soc_mixer_control *mc =
> (struct soc_mixer_control *)kcontrol->private_value;
> unsigned int ena, dre;
> @@ -458,8 +458,8 @@ static int wm5110_put_dre(struct snd_kcontrol *kcontrol,
> static int wm5110_in_pga_get(struct snd_kcontrol *kcontrol,
> struct snd_ctl_elem_value *ucontrol)
> {
> - struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
> - struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
> + struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
> + struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
> int ret;
>
> /*
> @@ -478,8 +478,8 @@ static int wm5110_in_pga_get(struct snd_kcontrol *kcontrol,
> static int wm5110_in_pga_put(struct snd_kcontrol *kcontrol,
> struct snd_ctl_elem_value *ucontrol)
> {
> - struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
> - struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
> + struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
> + struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
> int ret;
>
> /*
> @@ -498,9 +498,9 @@ static int wm5110_in_pga_put(struct snd_kcontrol *kcontrol,
> static int wm5110_in_analog_ev(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol, int event)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> - struct wm5110_priv *wm5110 = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> + struct wm5110_priv *wm5110 = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->arizona;
> unsigned int reg, mask;
> struct reg_sequence analog_seq[] = {
> @@ -519,9 +519,9 @@ static int wm5110_in_analog_ev(struct snd_soc_dapm_widget *w,
> wm5110->in_post_pending++;
> return 0;
> case SND_SOC_DAPM_PRE_PMU:
> - wm5110->in_pga_cache[w->shift] = snd_soc_read(codec, reg);
> + wm5110->in_pga_cache[w->shift] = snd_soc_component_read32(component, reg);
Probably should wrap something here.
>
> - snd_soc_update_bits(codec, reg, mask,
> + snd_soc_component_update_bits(component, reg, mask,
> 0x40 << ARIZONA_IN1L_PGA_VOL_SHIFT);
>
align
> wm5110->in_pre_pending--;
> @@ -538,7 +538,7 @@ static int wm5110_in_analog_ev(struct snd_soc_dapm_widget *w,
>
> break;
> case SND_SOC_DAPM_POST_PMU:
> - snd_soc_update_bits(codec, reg, mask,
> + snd_soc_component_update_bits(component, reg, mask,
> wm5110->in_pga_cache[w->shift]);
>
align
> wm5110->in_post_pending--;
> @@ -557,13 +557,13 @@ static int wm5110_in_analog_ev(struct snd_soc_dapm_widget *w,
> static int wm5110_in_ev(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol, int event)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> - struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> + struct arizona_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->arizona;
>
> switch (arizona->rev) {
> case 0 ... 4:
> - if (arizona_input_analog(codec, w->shift))
> + if (arizona_input_analog(component, w->shift))
> wm5110_in_analog_ev(w, kcontrol, event);
>
> break;
> @@ -2034,10 +2034,10 @@ static int wm5110_in_ev(struct snd_soc_dapm_widget *w,
> { "DSP3 Voice Trigger", "Switch", "DSP3" },
> };
>
> -static int wm5110_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
> +static int wm5110_set_fll(struct snd_soc_component *component, int fll_id, int source,
> unsigned int Fref, unsigned int Fout)
> {
> - struct wm5110_priv *wm5110 = snd_soc_codec_get_drvdata(codec);
> + struct wm5110_priv *wm5110 = snd_soc_component_get_drvdata(component);
>
> switch (fll_id) {
> case WM5110_FLL1:
> @@ -2278,31 +2278,30 @@ static irqreturn_t wm5110_adsp2_irq(int irq, void *data)
> return IRQ_HANDLED;
> }
>
> -static int wm5110_codec_probe(struct snd_soc_codec *codec)
> +static int wm5110_component_probe(struct snd_soc_component *component)
> {
> - struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
> - struct snd_soc_component *component = snd_soc_dapm_to_component(dapm);
> - struct wm5110_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
> + struct wm5110_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->core.arizona;
> int i, ret;
>
> arizona->dapm = dapm;
> - snd_soc_codec_init_regmap(codec, arizona->regmap);
> + snd_soc_component_init_regmap(component, arizona->regmap);
>
> - ret = arizona_init_spk(codec);
> + ret = arizona_init_spk(component);
> if (ret < 0)
> return ret;
>
> - arizona_init_gpio(codec);
> - arizona_init_mono(codec);
> + arizona_init_gpio(component);
> + arizona_init_mono(component);
>
> for (i = 0; i < WM5110_NUM_ADSP; ++i) {
> - ret = wm_adsp2_codec_probe(&priv->core.adsp[i], codec);
> + ret = wm_adsp2_component_probe(&priv->core.adsp[i], component);
> if (ret)
> goto err_adsp2_codec_probe;
> }
>
> - ret = snd_soc_add_codec_controls(codec,
> + ret = snd_soc_add_component_controls(component,
> arizona_adsp2_rate_controls,
> WM5110_NUM_ADSP);
align
> if (ret)
> @@ -2314,22 +2313,20 @@ static int wm5110_codec_probe(struct snd_soc_codec *codec)
>
> err_adsp2_codec_probe:
> for (--i; i >= 0; --i)
> - wm_adsp2_codec_remove(&priv->core.adsp[i], codec);
> + wm_adsp2_component_remove(&priv->core.adsp[i], component);
>
> return ret;
> }
>
> -static int wm5110_codec_remove(struct snd_soc_codec *codec)
> +static void wm5110_component_remove(struct snd_soc_component *component)
> {
> - struct wm5110_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct wm5110_priv *priv = snd_soc_component_get_drvdata(component);
> int i;
>
> for (i = 0; i < WM5110_NUM_ADSP; ++i)
> - wm_adsp2_codec_remove(&priv->core.adsp[i], codec);
> + wm_adsp2_component_remove(&priv->core.adsp[i], component);
>
> priv->core.arizona->dapm = NULL;
> -
> - return 0;
> }
>
> #define WM5110_DIG_VU 0x0200
> @@ -2359,25 +2356,22 @@ static int wm5110_codec_remove(struct snd_soc_codec *codec)
> .copy = wm_adsp_compr_copy,
> };
>
> -static const struct snd_soc_codec_driver soc_codec_dev_wm5110 = {
> - .probe = wm5110_codec_probe,
> - .remove = wm5110_codec_remove,
> -
> - .idle_bias_off = true,
> -
> - .set_sysclk = arizona_set_sysclk,
> - .set_pll = wm5110_set_fll,
> -
> - .component_driver = {
> - .name = DRV_NAME,
> - .compr_ops = &wm5110_compr_ops,
> - .controls = wm5110_snd_controls,
> - .num_controls = ARRAY_SIZE(wm5110_snd_controls),
> - .dapm_widgets = wm5110_dapm_widgets,
> - .num_dapm_widgets = ARRAY_SIZE(wm5110_dapm_widgets),
> - .dapm_routes = wm5110_dapm_routes,
> - .num_dapm_routes = ARRAY_SIZE(wm5110_dapm_routes),
> - },
> +static const struct snd_soc_component_driver soc_component_dev_wm5110 = {
> + .probe = wm5110_component_probe,
> + .remove = wm5110_component_remove,
> + .set_sysclk = arizona_set_sysclk,
> + .set_pll = wm5110_set_fll,
> + .name = DRV_NAME,
> + .compr_ops = &wm5110_compr_ops,
> + .controls = wm5110_snd_controls,
> + .num_controls = ARRAY_SIZE(wm5110_snd_controls),
> + .dapm_widgets = wm5110_dapm_widgets,
> + .num_dapm_widgets = ARRAY_SIZE(wm5110_dapm_widgets),
> + .dapm_routes = wm5110_dapm_routes,
> + .num_dapm_routes = ARRAY_SIZE(wm5110_dapm_routes),
> + .pmdown_time = 1,
> + .endianness = 1,
> + .non_legacy_dai_naming = 1,
> };
>
> static int wm5110_probe(struct platform_device *pdev)
> @@ -2465,10 +2459,11 @@ static int wm5110_probe(struct platform_device *pdev)
> if (ret < 0)
> goto err_dsp_irq;
>
> - ret = snd_soc_register_codec(&pdev->dev, &soc_codec_dev_wm5110,
> + ret = devm_snd_soc_register_component(&pdev->dev,
> + &soc_component_dev_wm5110,
> wm5110_dai, ARRAY_SIZE(wm5110_dai));
align
> if (ret < 0) {
> - dev_err(&pdev->dev, "Failed to register codec: %d\n", ret);
> + dev_err(&pdev->dev, "Failed to register component: %d\n", ret);
> goto err_spk_irqs;
> }
>
> @@ -2488,7 +2483,6 @@ static int wm5110_remove(struct platform_device *pdev)
> struct arizona *arizona = wm5110->core.arizona;
> int i;
>
> - snd_soc_unregister_codec(&pdev->dev);
> pm_runtime_disable(&pdev->dev);
>
> for (i = 0; i < WM5110_NUM_ADSP; i++)
> diff --git a/sound/soc/codecs/wm8997.c b/sound/soc/codecs/wm8997.c
> index cac9b3e..39df315 100644
> --- a/sound/soc/codecs/wm8997.c
> +++ b/sound/soc/codecs/wm8997.c
> @@ -84,8 +84,8 @@ struct wm8997_priv {
> static int wm8997_sysclk_ev(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol, int event)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> - struct arizona *arizona = dev_get_drvdata(codec->dev->parent);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> + struct arizona *arizona = dev_get_drvdata(component->dev->parent);
> struct regmap *regmap = arizona->regmap;
> const struct reg_default *patch = NULL;
> int i, patch_size;
> @@ -927,10 +927,10 @@ static int wm8997_sysclk_ev(struct snd_soc_dapm_widget *w,
> { "MICSUPP", NULL, "SYSCLK" },
> };
>
> -static int wm8997_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
> +static int wm8997_set_fll(struct snd_soc_component *component, int fll_id, int source,
> unsigned int Fref, unsigned int Fout)
> {
> - struct wm8997_priv *wm8997 = snd_soc_codec_get_drvdata(codec);
> + struct wm8997_priv *wm8997 = snd_soc_component_get_drvdata(component);
>
> switch (fll_id) {
> case WM8997_FLL1:
> @@ -1057,17 +1057,16 @@ static int wm8997_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
> },
> };
>
> -static int wm8997_codec_probe(struct snd_soc_codec *codec)
> +static int wm8997_component_probe(struct snd_soc_component *component)
> {
> - struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
> - struct snd_soc_component *component = snd_soc_dapm_to_component(dapm);
> - struct wm8997_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
> + struct wm8997_priv *priv = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = priv->core.arizona;
> int ret;
>
> - snd_soc_codec_init_regmap(codec, arizona->regmap);
> + snd_soc_component_init_regmap(component, arizona->regmap);
>
> - ret = arizona_init_spk(codec);
> + ret = arizona_init_spk(component);
> if (ret < 0)
> return ret;
>
> @@ -1078,13 +1077,11 @@ static int wm8997_codec_probe(struct snd_soc_codec *codec)
> return 0;
> }
>
> -static int wm8997_codec_remove(struct snd_soc_codec *codec)
> +static void wm8997_component_remove(struct snd_soc_component *component)
> {
> - struct wm8997_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct wm8997_priv *priv = snd_soc_component_get_drvdata(component);
>
> priv->core.arizona->dapm = NULL;
> -
> - return 0;
> }
>
> #define WM8997_DIG_VU 0x0200
> @@ -1098,23 +1095,20 @@ static int wm8997_codec_remove(struct snd_soc_codec *codec)
> ARIZONA_DAC_DIGITAL_VOLUME_5R,
> };
>
> -static const struct snd_soc_codec_driver soc_codec_dev_wm8997 = {
> - .probe = wm8997_codec_probe,
> - .remove = wm8997_codec_remove,
> -
> - .idle_bias_off = true,
> -
> - .set_sysclk = arizona_set_sysclk,
> - .set_pll = wm8997_set_fll,
> -
> - .component_driver = {
> - .controls = wm8997_snd_controls,
> - .num_controls = ARRAY_SIZE(wm8997_snd_controls),
> - .dapm_widgets = wm8997_dapm_widgets,
> - .num_dapm_widgets = ARRAY_SIZE(wm8997_dapm_widgets),
> - .dapm_routes = wm8997_dapm_routes,
> - .num_dapm_routes = ARRAY_SIZE(wm8997_dapm_routes),
> - },
> +static const struct snd_soc_component_driver soc_component_dev_wm8997 = {
> + .probe = wm8997_component_probe,
> + .remove = wm8997_component_remove,
> + .set_sysclk = arizona_set_sysclk,
> + .set_pll = wm8997_set_fll,
> + .controls = wm8997_snd_controls,
> + .num_controls = ARRAY_SIZE(wm8997_snd_controls),
> + .dapm_widgets = wm8997_dapm_widgets,
> + .num_dapm_widgets = ARRAY_SIZE(wm8997_dapm_widgets),
> + .dapm_routes = wm8997_dapm_routes,
> + .num_dapm_routes = ARRAY_SIZE(wm8997_dapm_routes),
> + .pmdown_time = 1,
> + .endianness = 1,
> + .non_legacy_dai_naming = 1,
> };
>
> static int wm8997_probe(struct platform_device *pdev)
> @@ -1178,10 +1172,11 @@ static int wm8997_probe(struct platform_device *pdev)
> if (ret < 0)
> return ret;
>
> - ret = snd_soc_register_codec(&pdev->dev, &soc_codec_dev_wm8997,
> + ret = devm_snd_soc_register_component(&pdev->dev,
> + &soc_component_dev_wm8997,
> wm8997_dai, ARRAY_SIZE(wm8997_dai));
align
> if (ret < 0) {
> - dev_err(&pdev->dev, "Failed to register codec: %d\n", ret);
> + dev_err(&pdev->dev, "Failed to register component: %d\n", ret);
> goto err_spk_irqs;
> }
>
> @@ -1196,7 +1191,6 @@ static int wm8997_remove(struct platform_device *pdev)
> struct wm8997_priv *wm8997 = platform_get_drvdata(pdev);
> struct arizona *arizona = wm8997->core.arizona;
>
> - snd_soc_unregister_codec(&pdev->dev);
> pm_runtime_disable(&pdev->dev);
>
> arizona_free_spk_irqs(arizona);
> diff --git a/sound/soc/codecs/wm8998.c b/sound/soc/codecs/wm8998.c
> index 1288e1f..13a4e9f 100644
> --- a/sound/soc/codecs/wm8998.c
> +++ b/sound/soc/codecs/wm8998.c
> @@ -41,12 +41,12 @@ static int wm8998_asrc_ev(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol,
> int event)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> unsigned int val;
>
> switch (event) {
> case SND_SOC_DAPM_PRE_PMU:
> - val = snd_soc_read(codec, ARIZONA_ASRC_RATE1);
> + val = snd_soc_component_read32(component, ARIZONA_ASRC_RATE1);
> val &= ARIZONA_ASRC_RATE1_MASK;
> val >>= ARIZONA_ASRC_RATE1_SHIFT;
>
> @@ -54,23 +54,23 @@ static int wm8998_asrc_ev(struct snd_soc_dapm_widget *w,
> case 0:
> case 1:
> case 2:
> - val = snd_soc_read(codec,
> + val = snd_soc_component_read32(component,
> ARIZONA_SAMPLE_RATE_1 + val);
align
> if (val >= 0x11) {
> - dev_warn(codec->dev,
> + dev_warn(component->dev,
> "Unsupported ASRC rate1 (%s)\n",
> arizona_sample_rate_val_to_name(val));
> return -EINVAL;
> }
> break;
> default:
> - dev_err(codec->dev,
> + dev_err(component->dev,
> "Illegal ASRC rate1 selector (0x%x)\n",
> val);
> return -EINVAL;
> }
>
> - val = snd_soc_read(codec, ARIZONA_ASRC_RATE2);
> + val = snd_soc_component_read32(component, ARIZONA_ASRC_RATE2);
> val &= ARIZONA_ASRC_RATE2_MASK;
> val >>= ARIZONA_ASRC_RATE2_SHIFT;
>
> @@ -78,17 +78,17 @@ static int wm8998_asrc_ev(struct snd_soc_dapm_widget *w,
> case 8:
> case 9:
> val -= 0x8;
> - val = snd_soc_read(codec,
> + val = snd_soc_component_read32(component,
> ARIZONA_ASYNC_SAMPLE_RATE_1 + val);
align
> if (val >= 0x11) {
> - dev_warn(codec->dev,
> + dev_warn(component->dev,
> "Unsupported ASRC rate2 (%s)\n",
> arizona_sample_rate_val_to_name(val));
> return -EINVAL;
> }
> break;
> default:
> - dev_err(codec->dev,
> + dev_err(component->dev,
> "Illegal ASRC rate2 selector (0x%x)\n",
> val);
> return -EINVAL;
> @@ -104,9 +104,9 @@ static int wm8998_asrc_ev(struct snd_soc_dapm_widget *w,
> static int wm8998_inmux_put(struct snd_kcontrol *kcontrol,
> struct snd_ctl_elem_value *ucontrol)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_kcontrol_codec(kcontrol);
> - struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
> - struct wm8998_priv *wm8998 = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_component *component = snd_soc_dapm_kcontrol_component(kcontrol);
> + struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
> + struct wm8998_priv *wm8998 = snd_soc_component_get_drvdata(component);
> struct arizona *arizona = wm8998->core.arizona;
> struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
> unsigned int mode_reg, mode_index;
> @@ -137,9 +137,9 @@ static int wm8998_inmux_put(struct snd_kcontrol *kcontrol,
> if (inmode & ARIZONA_INMODE_SE)
> src_val |= 1 << ARIZONA_IN1L_SRC_SE_SHIFT;
>
> - snd_soc_update_bits(codec, mode_reg, ARIZONA_IN1_MODE_MASK, mode_val);
> + snd_soc_component_update_bits(component, mode_reg, ARIZONA_IN1_MODE_MASK, mode_val);
wrap
>
> - snd_soc_update_bits(codec, e->reg,
> + snd_soc_component_update_bits(component, e->reg,
> ARIZONA_IN1L_SRC_MASK | ARIZONA_IN1L_SRC_SE_MASK,
> src_val);
align
>
> @@ -1249,10 +1249,10 @@ static SOC_VALUE_ENUM_SINGLE_DECL(wm8998_aec2_loopback,
> },
> };
>
> -static int wm8998_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
> +static int wm8998_set_fll(struct snd_soc_component *component, int fll_id, int source,
> unsigned int Fref, unsigned int Fout)
> {
> - struct wm8998_priv *wm8998 = snd_soc_codec_get_drvdata(codec);
> + struct wm8998_priv *wm8998 = snd_soc_component_get_drvdata(component);
>
> switch (fll_id) {
> case WM8998_FLL1:
> @@ -1270,35 +1270,32 @@ static int wm8998_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
> }
> }
>
> -static int wm8998_codec_probe(struct snd_soc_codec *codec)
> +static int wm8998_component_probe(struct snd_soc_component *component)
> {
> - struct wm8998_priv *priv = snd_soc_codec_get_drvdata(codec);
> - struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
> - struct snd_soc_component *component = snd_soc_dapm_to_component(dapm);
> + struct wm8998_priv *priv = snd_soc_component_get_drvdata(component);
> + struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
> struct arizona *arizona = priv->core.arizona;
> int ret;
>
> arizona->dapm = dapm;
> - snd_soc_codec_init_regmap(codec, arizona->regmap);
> + snd_soc_component_init_regmap(component, arizona->regmap);
>
> - ret = arizona_init_spk(codec);
> + ret = arizona_init_spk(component);
> if (ret < 0)
> return ret;
>
> - arizona_init_gpio(codec);
> + arizona_init_gpio(component);
>
> snd_soc_component_disable_pin(component, "HAPTICS");
>
> return 0;
> }
>
> -static int wm8998_codec_remove(struct snd_soc_codec *codec)
> +static void wm8998_component_remove(struct snd_soc_component *component)
> {
> - struct wm8998_priv *priv = snd_soc_codec_get_drvdata(codec);
> + struct wm8998_priv *priv = snd_soc_component_get_drvdata(component);
>
> priv->core.arizona->dapm = NULL;
> -
> - return 0;
> }
>
> #define WM8998_DIG_VU 0x0200
> @@ -1315,23 +1312,20 @@ static int wm8998_codec_remove(struct snd_soc_codec *codec)
> ARIZONA_DAC_DIGITAL_VOLUME_5R,
> };
>
> -static const struct snd_soc_codec_driver soc_codec_dev_wm8998 = {
> - .probe = wm8998_codec_probe,
> - .remove = wm8998_codec_remove,
> -
> - .idle_bias_off = true,
> -
> - .set_sysclk = arizona_set_sysclk,
> - .set_pll = wm8998_set_fll,
> -
> - .component_driver = {
> - .controls = wm8998_snd_controls,
> - .num_controls = ARRAY_SIZE(wm8998_snd_controls),
> - .dapm_widgets = wm8998_dapm_widgets,
> - .num_dapm_widgets = ARRAY_SIZE(wm8998_dapm_widgets),
> - .dapm_routes = wm8998_dapm_routes,
> - .num_dapm_routes = ARRAY_SIZE(wm8998_dapm_routes),
> - },
> +static const struct snd_soc_component_driver soc_component_dev_wm8998 = {
> + .probe = wm8998_component_probe,
> + .remove = wm8998_component_remove,
> + .set_sysclk = arizona_set_sysclk,
> + .set_pll = wm8998_set_fll,
> + .controls = wm8998_snd_controls,
> + .num_controls = ARRAY_SIZE(wm8998_snd_controls),
> + .dapm_widgets = wm8998_dapm_widgets,
> + .num_dapm_widgets = ARRAY_SIZE(wm8998_dapm_widgets),
> + .dapm_routes = wm8998_dapm_routes,
> + .num_dapm_routes = ARRAY_SIZE(wm8998_dapm_routes),
> + .pmdown_time = 1,
> + .endianness = 1,
> + .non_legacy_dai_naming = 1,
> };
>
> static int wm8998_probe(struct platform_device *pdev)
> @@ -1384,10 +1378,11 @@ static int wm8998_probe(struct platform_device *pdev)
> if (ret < 0)
> return ret;
>
> - ret = snd_soc_register_codec(&pdev->dev, &soc_codec_dev_wm8998,
> + ret = devm_snd_soc_register_component(&pdev->dev,
> + &soc_component_dev_wm8998,
> wm8998_dai, ARRAY_SIZE(wm8998_dai));
align
> if (ret < 0) {
> - dev_err(&pdev->dev, "Failed to register codec: %d\n", ret);
> + dev_err(&pdev->dev, "Failed to register component: %d\n", ret);
> goto err_spk_irqs;
> }
>
> @@ -1404,7 +1399,6 @@ static int wm8998_remove(struct platform_device *pdev)
> struct wm8998_priv *wm8998 = platform_get_drvdata(pdev);
> struct arizona *arizona = wm8998->core.arizona;
>
> - snd_soc_unregister_codec(&pdev->dev);
> pm_runtime_disable(&pdev->dev);
>
> arizona_free_spk_irqs(arizona);
> diff --git a/sound/soc/codecs/wm_adsp.c b/sound/soc/codecs/wm_adsp.c
> index 66e32f5..4847e94 100644
> --- a/sound/soc/codecs/wm_adsp.c
> +++ b/sound/soc/codecs/wm_adsp.c
> @@ -605,13 +605,13 @@ static ssize_t wm_adsp_debugfs_bin_read(struct file *file,
> };
>
> static void wm_adsp2_init_debugfs(struct wm_adsp *dsp,
> - struct snd_soc_codec *codec)
> + struct snd_soc_component *component)
> {
> struct dentry *root = NULL;
> char *root_name;
> int i;
>
> - if (!codec->component.debugfs_root) {
> + if (!component->debugfs_root) {
> adsp_err(dsp, "No codec debugfs root\n");
> goto err;
> }
> @@ -621,7 +621,7 @@ static void wm_adsp2_init_debugfs(struct wm_adsp *dsp,
> goto err;
>
> snprintf(root_name, PAGE_SIZE, "dsp%d", dsp->num);
> - root = debugfs_create_dir(root_name, codec->component.debugfs_root);
> + root = debugfs_create_dir(root_name, component->debugfs_root);
> kfree(root_name);
>
> if (!root)
> @@ -662,7 +662,7 @@ static void wm_adsp2_cleanup_debugfs(struct wm_adsp *dsp)
> }
> #else
> static inline void wm_adsp2_init_debugfs(struct wm_adsp *dsp,
> - struct snd_soc_codec *codec)
> + struct snd_soc_component *component)
> {
> }
>
> @@ -688,9 +688,9 @@ static inline void wm_adsp_debugfs_clear(struct wm_adsp *dsp)
> static int wm_adsp_fw_get(struct snd_kcontrol *kcontrol,
> struct snd_ctl_elem_value *ucontrol)
> {
> - struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
> + struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
> struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
> - struct wm_adsp *dsp = snd_soc_codec_get_drvdata(codec);
> + struct wm_adsp *dsp = snd_soc_component_get_drvdata(component);
>
> ucontrol->value.enumerated.item[0] = dsp[e->shift_l].fw;
>
> @@ -700,9 +700,9 @@ static int wm_adsp_fw_get(struct snd_kcontrol *kcontrol,
> static int wm_adsp_fw_put(struct snd_kcontrol *kcontrol,
> struct snd_ctl_elem_value *ucontrol)
> {
> - struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
> + struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
> struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
> - struct wm_adsp *dsp = snd_soc_codec_get_drvdata(codec);
> + struct wm_adsp *dsp = snd_soc_component_get_drvdata(component);
> int ret = 0;
>
> if (ucontrol->value.enumerated.item[0] == dsp[e->shift_l].fw)
> @@ -1213,7 +1213,7 @@ static int wmfw_add_ctl(struct wm_adsp *dsp, struct wm_coeff_ctl *ctl)
> break;
> }
>
> - ret = snd_soc_add_codec_controls(dsp->codec, kcontrol, 1);
> + ret = snd_soc_add_component_controls(dsp->component, kcontrol, 1);
> if (ret < 0)
> goto err_kcontrol;
>
> @@ -2396,14 +2396,14 @@ int wm_adsp1_event(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol,
> int event)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> - struct wm_adsp *dsps = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> + struct wm_adsp *dsps = snd_soc_component_get_drvdata(component);
> struct wm_adsp *dsp = &dsps[w->shift];
> struct wm_coeff_ctl *ctl;
> int ret;
> unsigned int val;
>
> - dsp->codec = codec;
> + dsp->component = component;
>
> mutex_lock(&dsp->pwr_lock);
>
> @@ -2633,8 +2633,8 @@ static void wm_adsp2_set_dspclk(struct wm_adsp *dsp, unsigned int freq)
> int wm_adsp2_preloader_get(struct snd_kcontrol *kcontrol,
> struct snd_ctl_elem_value *ucontrol)
> {
> - struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
> - struct wm_adsp *dsp = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
> + struct wm_adsp *dsp = snd_soc_component_get_drvdata(component);
>
> ucontrol->value.integer.value[0] = dsp->preloaded;
>
> @@ -2645,9 +2645,9 @@ int wm_adsp2_preloader_get(struct snd_kcontrol *kcontrol,
> int wm_adsp2_preloader_put(struct snd_kcontrol *kcontrol,
> struct snd_ctl_elem_value *ucontrol)
> {
> - struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
> - struct wm_adsp *dsp = snd_soc_codec_get_drvdata(codec);
> - struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
> + struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
> + struct wm_adsp *dsp = snd_soc_component_get_drvdata(component);
> + struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
> struct soc_mixer_control *mc =
> (struct soc_mixer_control *)kcontrol->private_value;
> char preload[32];
> @@ -2683,8 +2683,8 @@ int wm_adsp2_early_event(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol, int event,
> unsigned int freq)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> - struct wm_adsp *dsps = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> + struct wm_adsp *dsps = snd_soc_component_get_drvdata(component);
> struct wm_adsp *dsp = &dsps[w->shift];
> struct wm_coeff_ctl *ctl;
>
> @@ -2726,8 +2726,8 @@ int wm_adsp2_early_event(struct snd_soc_dapm_widget *w,
> int wm_adsp2_event(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol, int event)
> {
> - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
> - struct wm_adsp *dsps = snd_soc_codec_get_drvdata(codec);
> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> + struct wm_adsp *dsps = snd_soc_component_get_drvdata(component);
> struct wm_adsp *dsp = &dsps[w->shift];
> int ret;
>
> @@ -2841,31 +2841,31 @@ int wm_adsp2_event(struct snd_soc_dapm_widget *w,
> }
> EXPORT_SYMBOL_GPL(wm_adsp2_event);
>
> -int wm_adsp2_codec_probe(struct wm_adsp *dsp, struct snd_soc_codec *codec)
> +int wm_adsp2_component_probe(struct wm_adsp *dsp, struct snd_soc_component *component)
Wrap
> {
> - struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
> + struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
> char preload[32];
>
> snprintf(preload, ARRAY_SIZE(preload), "DSP%d Preload", dsp->num);
> snd_soc_dapm_disable_pin(dapm, preload);
>
> - wm_adsp2_init_debugfs(dsp, codec);
> + wm_adsp2_init_debugfs(dsp, component);
>
> - dsp->codec = codec;
> + dsp->component = component;
>
> - return snd_soc_add_codec_controls(codec,
> + return snd_soc_add_component_controls(component,
> &wm_adsp_fw_controls[dsp->num - 1],
> 1);
align
> }
> -EXPORT_SYMBOL_GPL(wm_adsp2_codec_probe);
> +EXPORT_SYMBOL_GPL(wm_adsp2_component_probe);
>
> -int wm_adsp2_codec_remove(struct wm_adsp *dsp, struct snd_soc_codec *codec)
> +int wm_adsp2_component_remove(struct wm_adsp *dsp, struct snd_soc_component *component)
Wrap
> {
> wm_adsp2_cleanup_debugfs(dsp);
>
> return 0;
> }
> -EXPORT_SYMBOL_GPL(wm_adsp2_codec_remove);
> +EXPORT_SYMBOL_GPL(wm_adsp2_component_remove);
>
> int wm_adsp2_init(struct wm_adsp *dsp)
> {
> diff --git a/sound/soc/codecs/wm_adsp.h b/sound/soc/codecs/wm_adsp.h
> index 41cc11c..82d651f 100644
> --- a/sound/soc/codecs/wm_adsp.h
> +++ b/sound/soc/codecs/wm_adsp.h
> @@ -62,7 +62,7 @@ struct wm_adsp {
> int type;
> struct device *dev;
> struct regmap *regmap;
> - struct snd_soc_codec *codec;
> + struct snd_soc_component *component;
>
> int base;
> int sysclk_reg;
> @@ -126,8 +126,8 @@ struct wm_adsp {
> int wm_adsp1_init(struct wm_adsp *dsp);
> int wm_adsp2_init(struct wm_adsp *dsp);
> void wm_adsp2_remove(struct wm_adsp *dsp);
> -int wm_adsp2_codec_probe(struct wm_adsp *dsp, struct snd_soc_codec *codec);
> -int wm_adsp2_codec_remove(struct wm_adsp *dsp, struct snd_soc_codec *codec);
> +int wm_adsp2_component_probe(struct wm_adsp *dsp, struct snd_soc_component *component);
> +int wm_adsp2_component_remove(struct wm_adsp *dsp, struct snd_soc_component *component);
Wrap
> int wm_adsp1_event(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *kcontrol, int event);
> int wm_adsp2_early_event(struct snd_soc_dapm_widget *w,
Thanks,
Charles
More information about the Alsa-devel
mailing list