All of lore.kernel.org
 help / color / mirror / Atom feed
From: Charles Keepax <ckeepax@opensource.cirrus.com>
To: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Cc: Linux-ALSA <alsa-devel@alsa-project.org>,
	Mark Brown <broonie@kernel.org>, Simon <horms@verge.net.au>
Subject: Re: [PATCH 161/187] ASoC: arizona/cs47l24/wm5102/wm5110/wm8997/wm8998/wm_adsp: replace codec to component
Date: Wed, 24 Jan 2018 15:10:18 +0000	[thread overview]
Message-ID: <20180124151018.vcfqcztyk6wpzmua@localhost.localdomain> (raw)
In-Reply-To: <87vag74zcr.wl%kuninori.morimoto.gx@renesas.com>

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@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@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

  reply	other threads:[~2018-01-24 15:10 UTC|newest]

Thread overview: 202+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-12  1:06 [PATCH 000/187] ASoC: replace codec to component Kuninori Morimoto
2018-01-12  1:07 ` [PATCH 001/187] ASoC: soc-utils: " Kuninori Morimoto
2018-01-12  1:07 ` [PATCH 002/187] ASoC: ac97: " Kuninori Morimoto
2018-01-12  1:08 ` [PATCH 003/187] ASoC: wm0010: " Kuninori Morimoto
2018-01-24 15:18   ` Charles Keepax
2018-01-12  1:08 ` [PATCH 004/187] ASoC: wm2000: " Kuninori Morimoto
2018-01-24 15:19   ` Charles Keepax
2018-01-12  1:08 ` [PATCH 005/187] ASoC: wm2200: " Kuninori Morimoto
2018-02-12 12:51   ` Applied "ASoC: wm2200: replace codec to component" to the asoc tree Mark Brown
2018-01-12  1:09 ` [PATCH 006/187] ASoC: wm5100: replace codec to component Kuninori Morimoto
2018-01-12  1:09 ` [PATCH 007/187] ASoC: wm8350: " Kuninori Morimoto
2018-01-12  1:09 ` [PATCH 008/187] ASoC: wm8400: " Kuninori Morimoto
2018-01-12  1:10 ` [PATCH 009/187] ASoC: wm8580: " Kuninori Morimoto
2018-01-12  1:10 ` [PATCH 010/187] ASoC: wm8524: " Kuninori Morimoto
2018-01-24 15:20   ` Charles Keepax
2018-01-12  1:10 ` [PATCH 011/187] ASoC: wm8510: " Kuninori Morimoto
2018-01-12  1:11 ` [PATCH 012/187] ASoC: wm8523: " Kuninori Morimoto
2018-01-12  1:11 ` [PATCH 013/187] ASoC: wm8711: " Kuninori Morimoto
2018-01-12  1:11 ` [PATCH 014/187] ASoC: wm8750: " Kuninori Morimoto
2018-01-12  1:12 ` [PATCH 015/187] ASoC: wm8737: " Kuninori Morimoto
2018-01-12  1:12 ` [PATCH 016/187] ASoC: wm8776: " Kuninori Morimoto
2018-01-12  1:12 ` [PATCH 017/187] ASoC: wm8770: " Kuninori Morimoto
2018-01-12  1:12 ` [PATCH 018/187] ASoC: wm8727: " Kuninori Morimoto
2018-01-12  1:13 ` [PATCH 019/187] ASoC: wm8731: " Kuninori Morimoto
2018-01-12  1:13 ` [PATCH 020/187] ASoC: wm8782: " Kuninori Morimoto
2018-01-12  1:13 ` [PATCH 021/187] ASoC: wm8728: " Kuninori Morimoto
2018-01-12  1:14 ` [PATCH 022/187] ASoC: wm8741: " Kuninori Morimoto
2018-01-12  1:14 ` [PATCH 023/187] ASoC: wm8753: " Kuninori Morimoto
2018-01-12  1:15 ` [PATCH 024/187] ASoC: wm8804: " Kuninori Morimoto
2018-01-12  1:15 ` [PATCH 025/187] ASoC: wm8900: " Kuninori Morimoto
2018-01-12  1:15 ` [PATCH 026/187] ASoC: wm8903: " Kuninori Morimoto
2018-01-12  1:15 ` [PATCH 027/187] ASoC: wm8955: " Kuninori Morimoto
2018-01-12  1:16 ` [PATCH 029/187] ASoC: wm8985: " Kuninori Morimoto
2018-01-12  1:16 ` [PATCH 030/187] ASoC: wm8971: " Kuninori Morimoto
2018-01-12  1:16 ` [PATCH 031/187] ASoC: wm8978: " Kuninori Morimoto
2018-01-12  1:17 ` [PATCH 032/187] ASoC: wm8974: " Kuninori Morimoto
2018-01-12  1:17 ` [PATCH 033/187] ASoC: wm8990: " Kuninori Morimoto
2018-01-12  1:17 ` [PATCH 034/187] ASoC: wm8988: " Kuninori Morimoto
2018-01-12  1:18 ` [PATCH 035/187] ASoC: wm8983: " Kuninori Morimoto
2018-01-12  1:18 ` [PATCH 036/187] ASoC: wm8962: " Kuninori Morimoto
2018-01-12  1:18 ` [PATCH 037/187] ASoC: wm8996: " Kuninori Morimoto
2018-01-12  1:19 ` [PATCH 038/187] ASoC: wm8991: " Kuninori Morimoto
2018-01-12  1:19 ` [PATCH 039/187] ASoC: wm8995: " Kuninori Morimoto
2018-01-12  1:19 ` [PATCH 040/187] ASoC: wm8961: " Kuninori Morimoto
2018-01-12  1:19 ` [PATCH 041/187] ASoC: wm8940: " Kuninori Morimoto
2018-01-12  1:20 ` [PATCH 042/187] ASoC: wm8904: " Kuninori Morimoto
2018-01-12  1:20 ` [PATCH 043/187] ASoC: wm9081: " Kuninori Morimoto
2018-01-12  1:20 ` [PATCH 044/187] ASoC: wm9090: " Kuninori Morimoto
2018-01-12  1:21 ` [PATCH 045/187] ASoC: wm9705: " Kuninori Morimoto
2018-01-12  1:21 ` [PATCH 046/187] ASoC: wm9712: " Kuninori Morimoto
2018-01-12  1:21 ` [PATCH 047/187] ASoC: wm9713: " Kuninori Morimoto
2018-01-12  1:21 ` [PATCH 048/187] ASoC: wm9867: " Kuninori Morimoto
2018-01-12  1:22 ` [PATCH 049/187] ASoC: wm1250-ev1: " Kuninori Morimoto
2018-01-12  1:22 ` [PATCH 050/187] ASoC: wm8993/wm8994/wm8958: " Kuninori Morimoto
2018-01-12  1:22 ` [PATCH 051/187] ASoC: ak4613: " Kuninori Morimoto
2018-01-12  1:22 ` [PATCH 052/187] ASoC: ak4642: " Kuninori Morimoto
2018-01-12  1:23 ` [PATCH 053/187] ASoC: ak5386: " Kuninori Morimoto
2018-01-12  1:24 ` [PATCH 054/187] ASoC: ak4671: " Kuninori Morimoto
2018-01-12  1:24 ` [PATCH 055/187] ASoC: ak4104: " Kuninori Morimoto
2018-01-12  1:24 ` [PATCH 056/187] ASoC: ak4535: " Kuninori Morimoto
2018-01-12  1:24 ` [PATCH 057/187] ASoC: ak4641: " Kuninori Morimoto
2018-01-12  1:25 ` [PATCH 058/187] ASoC: ak4554: " Kuninori Morimoto
2018-01-12  1:25 ` [PATCH 059/187] ASoC: rt274: " Kuninori Morimoto
2018-01-12  1:25 ` [PATCH 060/187] ASoC: rt5616: " Kuninori Morimoto
2018-01-12  1:25 ` [PATCH 061/187] ASoC: rt5640: " Kuninori Morimoto
2018-01-12  1:26 ` [PATCH 062/187] ASoC: rt5651: " Kuninori Morimoto
2018-01-12  1:26 ` [PATCH 063/187] ASoC: rt5514: " Kuninori Morimoto
2018-01-12  1:26 ` [PATCH 064/187] ASoC: rt5659: " Kuninori Morimoto
2018-01-12  1:26 ` [PATCH 065/187] ASoC: rt5670: " Kuninori Morimoto
2018-01-12  1:27 ` [PATCH 066/187] ASoC: rt5660: " Kuninori Morimoto
2018-01-12  1:27 ` [PATCH 067/187] ASoC: rt5631: " Kuninori Morimoto
2018-01-12  1:27 ` [PATCH 068/187] ASoC: rt5665: " Kuninori Morimoto
2018-01-12  1:28 ` [PATCH 069/187] ASoC: rt5645/rt5677: " Kuninori Morimoto
2018-01-12  1:28 ` [PATCH 070/187] ASoC: cs4271: " Kuninori Morimoto
2018-01-12  1:28 ` [PATCH 071/187] ASoC: cs4270: " Kuninori Morimoto
2018-01-12  1:28 ` [PATCH 072/187] ASoC: cs4349: " Kuninori Morimoto
2018-01-12  1:29 ` [PATCH 073/187] ASoC: cs4265: " Kuninori Morimoto
2018-01-12  1:29 ` [PATCH 074/187] ASoC: cs35l32: " Kuninori Morimoto
2018-01-12  1:29 ` [PATCH 075/187] ASoC: cs35l33: " Kuninori Morimoto
2018-01-12  1:30 ` [PATCH 076/187] ASoC: cs35l35: " Kuninori Morimoto
2018-01-12  1:30 ` [PATCH 077/187] ASoC: cs35l34: " Kuninori Morimoto
2018-01-12  1:30 ` [PATCH 078/187] ASoC: cs42xx8: " Kuninori Morimoto
2018-01-12  1:30 ` [PATCH 079/187] ASoC: cs42l73: " Kuninori Morimoto
2018-01-12  1:31 ` [PATCH 080/187] ASoC: cs42l52: " Kuninori Morimoto
2018-01-12  1:31 ` [PATCH 081/187] ASoC: cs42l56: " Kuninori Morimoto
2018-01-12  1:31 ` [PATCH 082/187] ASoC: cs42l51: " Kuninori Morimoto
2018-01-12  1:31 ` [PATCH 083/187] ASoC: cs42l42: " Kuninori Morimoto
2018-02-12 12:43   ` Applied "ASoC: cs42l42: replace codec to component" to the asoc tree Mark Brown
2018-01-12  1:32 ` [PATCH 084/187] ASoC: cs43130: replace codec to component Kuninori Morimoto
2018-01-12  1:32 ` [PATCH 085/187] ASoC: cs53l30: " Kuninori Morimoto
2018-01-12  1:32 ` [PATCH 086/187] ASoC: da732x: " Kuninori Morimoto
2018-01-12  1:32 ` [PATCH 087/187] ASoC: da7210: " Kuninori Morimoto
2018-01-12  1:33 ` [PATCH 088/187] ASoC: da7218: " Kuninori Morimoto
2018-01-12  1:33 ` [PATCH 089/187] ASoC: da7213: " Kuninori Morimoto
2018-01-12  1:33 ` [PATCH 090/187] ASoC: da9055: " Kuninori Morimoto
2018-01-12  1:33 ` [PATCH 091/187] ASoC: max9860: " Kuninori Morimoto
2018-01-12  1:34 ` [PATCH 092/187] ASoC: max9850: " Kuninori Morimoto
2018-01-12  1:35 ` [PATCH 093/187] ASoC: max98371: " Kuninori Morimoto
2018-01-12  1:35 ` [PATCH 094/187] ASoC: max98095: " Kuninori Morimoto
2018-01-12  1:36 ` [PATCH 095/187] ASoC: max98090: " Kuninori Morimoto
2018-01-12  1:36 ` [PATCH 096/187] ASoC: max98926: " Kuninori Morimoto
2018-01-12  1:36 ` [PATCH 097/187] ASoC: max98088: " Kuninori Morimoto
2018-01-12  1:37 ` [PATCH 098/187] ASoC: max98925: " Kuninori Morimoto
2018-01-12  1:37 ` [PATCH 099/187] ASoC: max98927: " Kuninori Morimoto
2018-01-12  1:37 ` [PATCH 100/187] ASoC: max98357a: " Kuninori Morimoto
2018-01-12  1:38 ` [PATCH 101/187] ASoC: max98373: " Kuninori Morimoto
2018-01-12  1:38 ` [PATCH 102/187] ASoC: adav80x: " Kuninori Morimoto
2018-01-12  1:38 ` [PATCH 103/187] ASoC: adau1373: " Kuninori Morimoto
2018-01-12  1:38 ` [PATCH 104/187] ASoC: adau7002: " Kuninori Morimoto
2018-01-12  1:39 ` [PATCH 105/187] ASoC: adau1977: " Kuninori Morimoto
2018-01-12  1:39 ` [PATCH 106/187] ASoC: adau1701: " Kuninori Morimoto
2018-01-12  1:39 ` [PATCH 107/187] ASoC: adau17x1/adau1761/adau1781: " Kuninori Morimoto
2018-01-12  1:39 ` [PATCH 108/187] ASoC: tlv320aic23: " Kuninori Morimoto
2018-01-12  1:40 ` [PATCH 109/187] ASoC: tlv320aic26: " Kuninori Morimoto
2018-01-12  1:40 ` [PATCH 110/187] ASoC: tlv320aic3x: " Kuninori Morimoto
2018-01-12  1:40 ` [PATCH 111/187] ASoC: tlv320dac33: " Kuninori Morimoto
2018-01-12  1:40 ` [PATCH 112/187] ASoC: tlv320aic32x4: " Kuninori Morimoto
2018-01-12  1:41 ` [PATCH 113/187] ASoC: tlv320aic31xx: " Kuninori Morimoto
2018-01-12  1:41 ` [PATCH 114/187] ASoC: tscs42xx: " Kuninori Morimoto
2018-01-12  1:41 ` [PATCH 115/187] ASoC: pcm179x: " Kuninori Morimoto
2018-01-12  1:42 ` [PATCH 116/187] ASoC: pcm3008: " Kuninori Morimoto
2018-01-12  1:42 ` [PATCH 117/187] ASoC: pcm1681: " Kuninori Morimoto
2018-01-12  1:42 ` [PATCH 118/187] ASoC: pcm512x: " Kuninori Morimoto
2018-01-12  1:42 ` [PATCH 119/187] ASoC: pcm5102a: " Kuninori Morimoto
2018-01-12  1:43 ` [PATCH 120/187] ASoC: pcm3168a: " Kuninori Morimoto
2018-01-12  1:43 ` [PATCH 121/187] ASoC: twl6040: " Kuninori Morimoto
2018-01-12  1:43 ` [PATCH 122/187] ASoC: twl4030: " Kuninori Morimoto
2018-01-17 11:34   ` Peter Ujfalusi
2018-01-17 11:37   ` Peter Ujfalusi
2018-01-18  0:07     ` Kuninori Morimoto
2018-01-18 17:09       ` Mark Brown
2018-01-19  0:08         ` Kuninori Morimoto
2018-01-19  0:46           ` Kuninori Morimoto
2018-01-12  1:44 ` [PATCH 123/187] ASoC: msm8916-wcd-analog: " Kuninori Morimoto
2018-01-12  1:44 ` [PATCH 124/187] ASoC: msm8916-wcd-digital: " Kuninori Morimoto
2018-01-12  1:44 ` [PATCH 125/187] ASoC: spdif_transmitter: " Kuninori Morimoto
2018-01-12  1:44 ` [PATCH 126/187] ASoC: spdif_receiver: " Kuninori Morimoto
2018-01-12  1:45 ` [PATCH 127/187] ASoC: tas5720: " Kuninori Morimoto
2018-01-12  1:45 ` [PATCH 128/187] ASoC: tas2552: " Kuninori Morimoto
2018-02-12 12:38   ` Applied "ASoC: tas2552: replace codec to component" to the asoc tree Mark Brown
2018-01-12  1:45 ` [PATCH 129/187] ASoC: sun4i: replace codec to component Kuninori Morimoto
2018-01-12  1:45 ` [PATCH 130/187] ASoC: sun8i: " Kuninori Morimoto
2018-01-12  1:46 ` [PATCH 131/187] ASoC: ads117x: " Kuninori Morimoto
2018-01-12  1:46 ` [PATCH 132/187] ASoC: ab8500: " Kuninori Morimoto
2018-01-12  1:46 ` [PATCH 133/187] ASoC: ad193x: " Kuninori Morimoto
2018-01-12  1:47 ` [PATCH 134/187] ASoC: ad1836: " Kuninori Morimoto
2018-01-12  1:47 ` [PATCH 135/187] ASoC: ad1980: " Kuninori Morimoto
2018-01-12  1:47 ` [PATCH 136/187] ASoC: ad73311: " Kuninori Morimoto
2018-01-12  1:47 ` [PATCH 137/187] ASoC: atmel-pdmic: " Kuninori Morimoto
2018-01-12  1:48 ` [PATCH 138/187] ASoC: atmel-classd: " Kuninori Morimoto
2018-01-12  1:48 ` [PATCH 139/187] ASoC: ssm4567: " Kuninori Morimoto
2018-01-12  1:48 ` [PATCH 140/187] ASoC: ssm2602: " Kuninori Morimoto
2018-01-12  1:48 ` [PATCH 141/187] ASoC: ssm2518: " Kuninori Morimoto
2018-01-12  1:49 ` [PATCH 142/187] ASoC: sta350: " Kuninori Morimoto
2018-01-12  1:49 ` [PATCH 143/187] ASoC: sta32x: " Kuninori Morimoto
2018-01-12  1:49 ` [PATCH 144/187] ASoC: sta529: " Kuninori Morimoto
2018-01-12  1:49 ` [PATCH 145/187] ASoC: tas5086: " Kuninori Morimoto
2018-01-12  1:50 ` [PATCH 146/187] ASoC: tas571x: " Kuninori Morimoto
2018-01-12  1:50 ` [PATCH 147/187] ASoC: nau8824: " Kuninori Morimoto
2018-01-12  1:50 ` [PATCH 148/187] ASoC: nau8810: " Kuninori Morimoto
2018-01-12  1:51 ` [PATCH 149/187] ASoC: nau8540: " Kuninori Morimoto
2018-01-12  1:51 ` [PATCH 150/187] ASoC: es8316: " Kuninori Morimoto
2018-01-12  1:51 ` [PATCH 151/187] ASoC: es7134: " Kuninori Morimoto
2018-01-12  1:51 ` [PATCH 152/187] ASoC: es8328: " Kuninori Morimoto
2018-01-12  1:52 ` [PATCH 153/187] ASoC: alc5632: " Kuninori Morimoto
2018-01-12  1:52 ` [PATCH 154/187] ASoC: alc5623: " Kuninori Morimoto
2018-01-12  1:52 ` [PATCH 155/187] ASoC: hdmi-codec: " Kuninori Morimoto
2018-01-12  1:52 ` [PATCH 156/187] ASoC: bt-sco: " Kuninori Morimoto
2018-01-12  1:53 ` [PATCH 157/187] ASoC: vc4_hdmi: " Kuninori Morimoto
2018-01-12  1:53 ` [PATCH 158/187] ASoC: zx_aud96p22: " Kuninori Morimoto
2018-01-12  1:53 ` [PATCH 159/187] ASoC: wl1273: " Kuninori Morimoto
2018-01-12  1:54 ` [PATCH 160/187] ASoC: hdac_hdmi/nau8825/rt286/rt298/rt5663/da7219: " Kuninori Morimoto
2018-01-12  1:54 ` [PATCH 161/187] ASoC: arizona/cs47l24/wm5102/wm5110/wm8997/wm8998/wm_adsp: " Kuninori Morimoto
2018-01-24 15:10   ` Charles Keepax [this message]
2018-01-25  1:29     ` Kuninori Morimoto
2018-01-12  1:54 ` [PATCH 162/187] ASoC: mc13783: " Kuninori Morimoto
2018-01-12  1:54 ` [PATCH 163/187] ASoC: sgtl5000: " Kuninori Morimoto
2018-01-12  1:55 ` [PATCH 164/187] ASoC: stac9766: " Kuninori Morimoto
2018-01-12  1:55 ` [PATCH 165/187] ASoC: sn95031: " Kuninori Morimoto
2018-01-12  1:55 ` [PATCH 166/187] ASoC: cx20442: " Kuninori Morimoto
2018-01-12  1:56 ` [PATCH 167/187] ASoC: sirf-audio: " Kuninori Morimoto
2018-01-12  1:56 ` [PATCH 168/187] ASoC: inno_rk3036: " Kuninori Morimoto
2018-01-12  1:56 ` [PATCH 169/187] ASoC: isabelle: " Kuninori Morimoto
2018-01-12  1:56 ` [PATCH 170/187] ASoC: tfa9879: " Kuninori Morimoto
2018-01-12  1:57 ` [PATCH 171/187] ASoC: dmic: " Kuninori Morimoto
2018-01-12  1:57 ` [PATCH 172/187] ASoC: sti-sas: " Kuninori Morimoto
2018-01-12  1:57 ` [PATCH 173/187] ASoC: gtm601: " Kuninori Morimoto
2018-01-12  1:58 ` [PATCH 174/187] ASoC: 88pm860x: " Kuninori Morimoto
2018-01-12  1:58 ` [PATCH 175/187] ASoC: pistachio: " Kuninori Morimoto
2018-01-12  1:58 ` [PATCH 176/187] ASoC: lm49453: " Kuninori Morimoto
2018-01-12  1:58 ` [PATCH 177/187] ASoC: cq93vc: " Kuninori Morimoto
2018-01-12  1:59 ` [PATCH 178/187] ASoC: jz4740: " Kuninori Morimoto
2018-01-12  1:59 ` [PATCH 179/187] ASoC: uda1380: " Kuninori Morimoto
2018-01-12  1:59 ` [PATCH 180/187] ASoC: ml26124: " Kuninori Morimoto
2018-01-12  1:59 ` [PATCH 181/187] ASoC: si476x: " Kuninori Morimoto
2018-01-12  2:00 ` [PATCH 182/187] ASoC: uda134x: " Kuninori Morimoto
2018-01-12  2:00 ` [PATCH 183/187] ASoC: ics43432: " Kuninori Morimoto
2018-01-12  2:00 ` [PATCH 184/187] ASoC: pxa/mioa701_wm9713: " Kuninori Morimoto
2018-02-12 12:33   ` Applied "ASoC: pxa/mioa701_wm9713: replace codec to component" to the asoc tree Mark Brown
2018-01-12  2:00 ` [PATCH 185/187] ASoC: uniphier: evea: replace codec to component Kuninori Morimoto
2018-01-12  2:01 ` [PATCH 186/187] ASoC: pcm186x: " Kuninori Morimoto
2018-01-12  2:01 ` [PATCH 187/187] ASoC: tas6424: " Kuninori Morimoto

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180124151018.vcfqcztyk6wpzmua@localhost.localdomain \
    --to=ckeepax@opensource.cirrus.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=horms@verge.net.au \
    --cc=kuninori.morimoto.gx@renesas.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.