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@xxxxxxxxxxxxxxxxxxxxx> > 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@xxxxxxxxxxx> > --- > 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 _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel