All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
To: Mark Brown <broonie@kernel.org>
Cc: Linux-ALSA <alsa-devel@alsa-project.org>, Simon <horms@verge.net.au>
Subject: [PATCH 132/187] ASoC: ab8500: replace codec to component
Date: Fri, 12 Jan 2018 01:46:25 +0000	[thread overview]
Message-ID: <871siv7sup.wl%kuninori.morimoto.gx@renesas.com> (raw)
In-Reply-To: <87bmhzevk9.wl%kuninori.morimoto.gx@renesas.com>


From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

Now we can replace Codec to Component. Let's do it.

Note:
	xxx_codec_xxx()		->	xxx_component_xxx()
	.idle_bias_off = 0	->	.idle_bias_on = 1
	.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/ab8500-codec.c | 295 ++++++++++++++++++++--------------------
 1 file changed, 144 insertions(+), 151 deletions(-)

diff --git a/sound/soc/codecs/ab8500-codec.c b/sound/soc/codecs/ab8500-codec.c
index 006627b..c105e9f 100644
--- a/sound/soc/codecs/ab8500-codec.c
+++ b/sound/soc/codecs/ab8500-codec.c
@@ -1037,86 +1037,86 @@ static SOC_ENUM_SINGLE_DECL(dapm_enum_pwm2vib2, AB8500_PWMGENCONF1,
 };
 
 /* ANC FIR-coefficients configuration sequence */
-static void anc_fir(struct snd_soc_codec *codec,
+static void anc_fir(struct snd_soc_component *component,
 		unsigned int bnk, unsigned int par, unsigned int val)
 {
 	if (par == 0 && bnk == 0)
-		snd_soc_update_bits(codec, AB8500_ANCCONF1,
+		snd_soc_component_update_bits(component, AB8500_ANCCONF1,
 			BIT(AB8500_ANCCONF1_ANCFIRUPDATE),
 			BIT(AB8500_ANCCONF1_ANCFIRUPDATE));
 
-	snd_soc_write(codec, AB8500_ANCCONF5, val >> 8 & 0xff);
-	snd_soc_write(codec, AB8500_ANCCONF6, val &  0xff);
+	snd_soc_component_write(component, AB8500_ANCCONF5, val >> 8 & 0xff);
+	snd_soc_component_write(component, AB8500_ANCCONF6, val &  0xff);
 
 	if (par == AB8500_ANC_FIR_COEFFS - 1 && bnk == 1)
-		snd_soc_update_bits(codec, AB8500_ANCCONF1,
+		snd_soc_component_update_bits(component, AB8500_ANCCONF1,
 			BIT(AB8500_ANCCONF1_ANCFIRUPDATE), 0);
 }
 
 /* ANC IIR-coefficients configuration sequence */
-static void anc_iir(struct snd_soc_codec *codec, unsigned int bnk,
+static void anc_iir(struct snd_soc_component *component, unsigned int bnk,
 		unsigned int par, unsigned int val)
 {
 	if (par == 0) {
 		if (bnk == 0) {
-			snd_soc_update_bits(codec, AB8500_ANCCONF1,
+			snd_soc_component_update_bits(component, AB8500_ANCCONF1,
 					BIT(AB8500_ANCCONF1_ANCIIRINIT),
 					BIT(AB8500_ANCCONF1_ANCIIRINIT));
 			usleep_range(AB8500_ANC_SM_DELAY, AB8500_ANC_SM_DELAY);
-			snd_soc_update_bits(codec, AB8500_ANCCONF1,
+			snd_soc_component_update_bits(component, AB8500_ANCCONF1,
 					BIT(AB8500_ANCCONF1_ANCIIRINIT), 0);
 			usleep_range(AB8500_ANC_SM_DELAY, AB8500_ANC_SM_DELAY);
 		} else {
-			snd_soc_update_bits(codec, AB8500_ANCCONF1,
+			snd_soc_component_update_bits(component, AB8500_ANCCONF1,
 					BIT(AB8500_ANCCONF1_ANCIIRUPDATE),
 					BIT(AB8500_ANCCONF1_ANCIIRUPDATE));
 		}
 	} else if (par > 3) {
-		snd_soc_write(codec, AB8500_ANCCONF7, 0);
-		snd_soc_write(codec, AB8500_ANCCONF8, val >> 16 & 0xff);
+		snd_soc_component_write(component, AB8500_ANCCONF7, 0);
+		snd_soc_component_write(component, AB8500_ANCCONF8, val >> 16 & 0xff);
 	}
 
-	snd_soc_write(codec, AB8500_ANCCONF7, val >> 8 & 0xff);
-	snd_soc_write(codec, AB8500_ANCCONF8, val & 0xff);
+	snd_soc_component_write(component, AB8500_ANCCONF7, val >> 8 & 0xff);
+	snd_soc_component_write(component, AB8500_ANCCONF8, val & 0xff);
 
 	if (par == AB8500_ANC_IIR_COEFFS - 1 && bnk == 1)
-		snd_soc_update_bits(codec, AB8500_ANCCONF1,
+		snd_soc_component_update_bits(component, AB8500_ANCCONF1,
 			BIT(AB8500_ANCCONF1_ANCIIRUPDATE), 0);
 }
 
 /* ANC IIR-/FIR-coefficients configuration sequence */
-static void anc_configure(struct snd_soc_codec *codec,
+static void anc_configure(struct snd_soc_component *component,
 			bool apply_fir, bool apply_iir)
 {
-	struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev);
+	struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(component->dev);
 	unsigned int bnk, par, val;
 
-	dev_dbg(codec->dev, "%s: Enter.\n", __func__);
+	dev_dbg(component->dev, "%s: Enter.\n", __func__);
 
 	if (apply_fir)
-		snd_soc_update_bits(codec, AB8500_ANCCONF1,
+		snd_soc_component_update_bits(component, AB8500_ANCCONF1,
 			BIT(AB8500_ANCCONF1_ENANC), 0);
 
-	snd_soc_update_bits(codec, AB8500_ANCCONF1,
+	snd_soc_component_update_bits(component, AB8500_ANCCONF1,
 		BIT(AB8500_ANCCONF1_ENANC), BIT(AB8500_ANCCONF1_ENANC));
 
 	if (apply_fir)
 		for (bnk = 0; bnk < AB8500_NR_OF_ANC_COEFF_BANKS; bnk++)
 			for (par = 0; par < AB8500_ANC_FIR_COEFFS; par++) {
-				val = snd_soc_read(codec,
+				val = snd_soc_component_read32(component,
 						drvdata->anc_fir_values[par]);
-				anc_fir(codec, bnk, par, val);
+				anc_fir(component, bnk, par, val);
 			}
 
 	if (apply_iir)
 		for (bnk = 0; bnk < AB8500_NR_OF_ANC_COEFF_BANKS; bnk++)
 			for (par = 0; par < AB8500_ANC_IIR_COEFFS; par++) {
-				val = snd_soc_read(codec,
+				val = snd_soc_component_read32(component,
 						drvdata->anc_iir_values[par]);
-				anc_iir(codec, bnk, par, val);
+				anc_iir(component, bnk, par, val);
 			}
 
-	dev_dbg(codec->dev, "%s: Exit.\n", __func__);
+	dev_dbg(component->dev, "%s: Exit.\n", __func__);
 }
 
 /*
@@ -1126,8 +1126,8 @@ static void anc_configure(struct snd_soc_codec *codec,
 static int sid_status_control_get(struct snd_kcontrol *kcontrol,
 		struct snd_ctl_elem_value *ucontrol)
 {
-	struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
-	struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev);
+	struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
+	struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(component->dev);
 
 	mutex_lock(&drvdata->ctrl_lock);
 	ucontrol->value.enumerated.item[0] = drvdata->sid_status;
@@ -1140,15 +1140,15 @@ static int sid_status_control_get(struct snd_kcontrol *kcontrol,
 static int sid_status_control_put(struct snd_kcontrol *kcontrol,
 				struct snd_ctl_elem_value *ucontrol)
 {
-	struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
-	struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev);
+	struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
+	struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(component->dev);
 	unsigned int param, sidconf, val;
 	int status = 1;
 
-	dev_dbg(codec->dev, "%s: Enter\n", __func__);
+	dev_dbg(component->dev, "%s: Enter\n", __func__);
 
 	if (ucontrol->value.enumerated.item[0] != SID_APPLY_FIR) {
-		dev_err(codec->dev,
+		dev_err(component->dev,
 			"%s: ERROR: This control supports '%s' only!\n",
 			__func__, enum_sid_state[SID_APPLY_FIR]);
 		return -EIO;
@@ -1156,10 +1156,10 @@ static int sid_status_control_put(struct snd_kcontrol *kcontrol,
 
 	mutex_lock(&drvdata->ctrl_lock);
 
-	sidconf = snd_soc_read(codec, AB8500_SIDFIRCONF);
+	sidconf = snd_soc_component_read32(component, AB8500_SIDFIRCONF);
 	if (((sidconf & BIT(AB8500_SIDFIRCONF_FIRSIDBUSY)) != 0)) {
 		if ((sidconf & BIT(AB8500_SIDFIRCONF_ENFIRSIDS)) == 0) {
-			dev_err(codec->dev, "%s: Sidetone busy while off!\n",
+			dev_err(component->dev, "%s: Sidetone busy while off!\n",
 				__func__);
 			status = -EPERM;
 		} else {
@@ -1168,18 +1168,18 @@ static int sid_status_control_put(struct snd_kcontrol *kcontrol,
 		goto out;
 	}
 
-	snd_soc_write(codec, AB8500_SIDFIRADR, 0);
+	snd_soc_component_write(component, AB8500_SIDFIRADR, 0);
 
 	for (param = 0; param < AB8500_SID_FIR_COEFFS; param++) {
-		val = snd_soc_read(codec, drvdata->sid_fir_values[param]);
-		snd_soc_write(codec, AB8500_SIDFIRCOEF1, val >> 8 & 0xff);
-		snd_soc_write(codec, AB8500_SIDFIRCOEF2, val & 0xff);
+		val = snd_soc_component_read32(component, drvdata->sid_fir_values[param]);
+		snd_soc_component_write(component, AB8500_SIDFIRCOEF1, val >> 8 & 0xff);
+		snd_soc_component_write(component, AB8500_SIDFIRCOEF2, val & 0xff);
 	}
 
-	snd_soc_update_bits(codec, AB8500_SIDFIRADR,
+	snd_soc_component_update_bits(component, AB8500_SIDFIRADR,
 		BIT(AB8500_SIDFIRADR_FIRSIDSET),
 		BIT(AB8500_SIDFIRADR_FIRSIDSET));
-	snd_soc_update_bits(codec, AB8500_SIDFIRADR,
+	snd_soc_component_update_bits(component, AB8500_SIDFIRADR,
 		BIT(AB8500_SIDFIRADR_FIRSIDSET), 0);
 
 	drvdata->sid_status = SID_FIR_CONFIGURED;
@@ -1187,7 +1187,7 @@ static int sid_status_control_put(struct snd_kcontrol *kcontrol,
 out:
 	mutex_unlock(&drvdata->ctrl_lock);
 
-	dev_dbg(codec->dev, "%s: Exit\n", __func__);
+	dev_dbg(component->dev, "%s: Exit\n", __func__);
 
 	return status;
 }
@@ -1195,8 +1195,8 @@ static int sid_status_control_put(struct snd_kcontrol *kcontrol,
 static int anc_status_control_get(struct snd_kcontrol *kcontrol,
 				struct snd_ctl_elem_value *ucontrol)
 {
-	struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
-	struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev);
+	struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
+	struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(component->dev);
 
 	mutex_lock(&drvdata->ctrl_lock);
 	ucontrol->value.enumerated.item[0] = drvdata->anc_status;
@@ -1208,10 +1208,10 @@ static int anc_status_control_get(struct snd_kcontrol *kcontrol,
 static int anc_status_control_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 ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev);
-	struct device *dev = codec->dev;
+	struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
+	struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
+	struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(component->dev);
+	struct device *dev = component->dev;
 	bool apply_fir, apply_iir;
 	unsigned int req;
 	int status;
@@ -1244,7 +1244,7 @@ static int anc_status_control_put(struct snd_kcontrol *kcontrol,
 	}
 	snd_soc_dapm_sync(dapm);
 
-	anc_configure(codec, apply_fir, apply_iir);
+	anc_configure(component, apply_fir, apply_iir);
 
 	if (apply_fir) {
 		if (drvdata->anc_status == ANC_IIR_CONFIGURED)
@@ -1291,8 +1291,8 @@ static int filter_control_info(struct snd_kcontrol *kcontrol,
 static int filter_control_get(struct snd_kcontrol *kcontrol,
 			struct snd_ctl_elem_value *ucontrol)
 {
-	struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
-	struct ab8500_codec_drvdata *drvdata = snd_soc_codec_get_drvdata(codec);
+	struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
+	struct ab8500_codec_drvdata *drvdata = snd_soc_component_get_drvdata(component);
 	struct filter_control *fc =
 			(struct filter_control *)kcontrol->private_value;
 	unsigned int i;
@@ -1308,8 +1308,8 @@ static int filter_control_get(struct snd_kcontrol *kcontrol,
 static int filter_control_put(struct snd_kcontrol *kcontrol,
 		struct snd_ctl_elem_value *ucontrol)
 {
-	struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
-	struct ab8500_codec_drvdata *drvdata = snd_soc_codec_get_drvdata(codec);
+	struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
+	struct ab8500_codec_drvdata *drvdata = snd_soc_component_get_drvdata(component);
 	struct filter_control *fc =
 			(struct filter_control *)kcontrol->private_value;
 	unsigned int i;
@@ -1926,11 +1926,11 @@ enum ab8500_filter {
  * Extended interface for codec-driver
  */
 
-static int ab8500_audio_init_audioblock(struct snd_soc_codec *codec)
+static int ab8500_audio_init_audioblock(struct snd_soc_component *component)
 {
 	int status;
 
-	dev_dbg(codec->dev, "%s: Enter.\n", __func__);
+	dev_dbg(component->dev, "%s: Enter.\n", __func__);
 
 	/* Reset audio-registers and disable 32kHz-clock output 2 */
 	status = ab8500_sysctrl_write(AB8500_STW4500CTRL3,
@@ -1943,26 +1943,26 @@ static int ab8500_audio_init_audioblock(struct snd_soc_codec *codec)
 	return 0;
 }
 
-static int ab8500_audio_setup_mics(struct snd_soc_codec *codec,
+static int ab8500_audio_setup_mics(struct snd_soc_component *component,
 			struct amic_settings *amics)
 {
-	struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
+	struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
 	u8 value8;
 	unsigned int value;
 	int status;
 	const struct snd_soc_dapm_route *route;
 
-	dev_dbg(codec->dev, "%s: Enter.\n", __func__);
+	dev_dbg(component->dev, "%s: Enter.\n", __func__);
 
 	/* Set DMic-clocks to outputs */
-	status = abx500_get_register_interruptible(codec->dev, AB8500_MISC,
+	status = abx500_get_register_interruptible(component->dev, AB8500_MISC,
 						AB8500_GPIO_DIR4_REG,
 						&value8);
 	if (status < 0)
 		return status;
 	value = value8 | GPIO27_DIR_OUTPUT | GPIO29_DIR_OUTPUT |
 		GPIO31_DIR_OUTPUT;
-	status = abx500_set_register_interruptible(codec->dev,
+	status = abx500_set_register_interruptible(component->dev,
 						AB8500_MISC,
 						AB8500_GPIO_DIR4_REG,
 						value);
@@ -1970,41 +1970,41 @@ static int ab8500_audio_setup_mics(struct snd_soc_codec *codec,
 		return status;
 
 	/* Attach regulators to AMic DAPM-paths */
-	dev_dbg(codec->dev, "%s: Mic 1a regulator: %s\n", __func__,
+	dev_dbg(component->dev, "%s: Mic 1a regulator: %s\n", __func__,
 		amic_micbias_str(amics->mic1a_micbias));
 	route = &ab8500_dapm_routes_mic1a_vamicx[amics->mic1a_micbias];
 	status = snd_soc_dapm_add_routes(dapm, route, 1);
-	dev_dbg(codec->dev, "%s: Mic 1b regulator: %s\n", __func__,
+	dev_dbg(component->dev, "%s: Mic 1b regulator: %s\n", __func__,
 		amic_micbias_str(amics->mic1b_micbias));
 	route = &ab8500_dapm_routes_mic1b_vamicx[amics->mic1b_micbias];
 	status |= snd_soc_dapm_add_routes(dapm, route, 1);
-	dev_dbg(codec->dev, "%s: Mic 2 regulator: %s\n", __func__,
+	dev_dbg(component->dev, "%s: Mic 2 regulator: %s\n", __func__,
 		amic_micbias_str(amics->mic2_micbias));
 	route = &ab8500_dapm_routes_mic2_vamicx[amics->mic2_micbias];
 	status |= snd_soc_dapm_add_routes(dapm, route, 1);
 	if (status < 0) {
-		dev_err(codec->dev,
+		dev_err(component->dev,
 			"%s: Failed to add AMic-regulator DAPM-routes (%d).\n",
 			__func__, status);
 		return status;
 	}
 
 	/* Set AMic-configuration */
-	dev_dbg(codec->dev, "%s: Mic 1 mic-type: %s\n", __func__,
+	dev_dbg(component->dev, "%s: Mic 1 mic-type: %s\n", __func__,
 		amic_type_str(amics->mic1_type));
-	snd_soc_update_bits(codec, AB8500_ANAGAIN1, AB8500_ANAGAINX_ENSEMICX,
+	snd_soc_component_update_bits(component, AB8500_ANAGAIN1, AB8500_ANAGAINX_ENSEMICX,
 			amics->mic1_type == AMIC_TYPE_DIFFERENTIAL ?
 				0 : AB8500_ANAGAINX_ENSEMICX);
-	dev_dbg(codec->dev, "%s: Mic 2 mic-type: %s\n", __func__,
+	dev_dbg(component->dev, "%s: Mic 2 mic-type: %s\n", __func__,
 		amic_type_str(amics->mic2_type));
-	snd_soc_update_bits(codec, AB8500_ANAGAIN2, AB8500_ANAGAINX_ENSEMICX,
+	snd_soc_component_update_bits(component, AB8500_ANAGAIN2, AB8500_ANAGAINX_ENSEMICX,
 			amics->mic2_type == AMIC_TYPE_DIFFERENTIAL ?
 				0 : AB8500_ANAGAINX_ENSEMICX);
 
 	return 0;
 }
 
-static int ab8500_audio_set_ear_cmv(struct snd_soc_codec *codec,
+static int ab8500_audio_set_ear_cmv(struct snd_soc_component *component,
 				enum ear_cm_voltage ear_cmv)
 {
 	char *cmv_str;
@@ -2023,14 +2023,14 @@ static int ab8500_audio_set_ear_cmv(struct snd_soc_codec *codec,
 		cmv_str = "1.58V";
 		break;
 	default:
-		dev_err(codec->dev,
+		dev_err(component->dev,
 			"%s: Unknown earpiece CM-voltage (%d)!\n",
 			__func__, (int)ear_cmv);
 		return -EINVAL;
 	}
-	dev_dbg(codec->dev, "%s: Earpiece CM-voltage: %s\n", __func__,
+	dev_dbg(component->dev, "%s: Earpiece CM-voltage: %s\n", __func__,
 		cmv_str);
-	snd_soc_update_bits(codec, AB8500_ANACONF1, AB8500_ANACONF1_EARSELCM,
+	snd_soc_component_update_bits(component, AB8500_ANACONF1, AB8500_ANACONF1_EARSELCM,
 			ear_cmv);
 
 	return 0;
@@ -2040,7 +2040,7 @@ static int ab8500_audio_set_bit_delay(struct snd_soc_dai *dai,
 				unsigned int delay)
 {
 	unsigned int mask, val;
-	struct snd_soc_codec *codec = dai->codec;
+	struct snd_soc_component *component = dai->component;
 
 	mask = BIT(AB8500_DIGIFCONF2_IF0DEL);
 	val = 0;
@@ -2052,21 +2052,21 @@ static int ab8500_audio_set_bit_delay(struct snd_soc_dai *dai,
 		val |= BIT(AB8500_DIGIFCONF2_IF0DEL);
 		break;
 	default:
-		dev_err(dai->codec->dev,
+		dev_err(dai->component->dev,
 			"%s: ERROR: Unsupported bit-delay (0x%x)!\n",
 			__func__, delay);
 		return -EINVAL;
 	}
 
-	dev_dbg(dai->codec->dev, "%s: IF0 Bit-delay: %d bits.\n",
+	dev_dbg(dai->component->dev, "%s: IF0 Bit-delay: %d bits.\n",
 		__func__, delay);
-	snd_soc_update_bits(codec, AB8500_DIGIFCONF2, mask, val);
+	snd_soc_component_update_bits(component, AB8500_DIGIFCONF2, mask, val);
 
 	return 0;
 }
 
 /* Gates clocking according format mask */
-static int ab8500_codec_set_dai_clock_gate(struct snd_soc_codec *codec,
+static int ab8500_codec_set_dai_clock_gate(struct snd_soc_component *component,
 					unsigned int fmt)
 {
 	unsigned int mask;
@@ -2079,22 +2079,22 @@ static int ab8500_codec_set_dai_clock_gate(struct snd_soc_codec *codec,
 
 	switch (fmt & SND_SOC_DAIFMT_CLOCK_MASK) {
 	case SND_SOC_DAIFMT_CONT: /* continuous clock */
-		dev_dbg(codec->dev, "%s: IF0 Clock is continuous.\n",
+		dev_dbg(component->dev, "%s: IF0 Clock is continuous.\n",
 			__func__);
 		val |= BIT(AB8500_DIGIFCONF1_ENFSBITCLK0);
 		break;
 	case SND_SOC_DAIFMT_GATED: /* clock is gated */
-		dev_dbg(codec->dev, "%s: IF0 Clock is gated.\n",
+		dev_dbg(component->dev, "%s: IF0 Clock is gated.\n",
 			__func__);
 		break;
 	default:
-		dev_err(codec->dev,
+		dev_err(component->dev,
 			"%s: ERROR: Unsupported clock mask (0x%x)!\n",
 			__func__, fmt & SND_SOC_DAIFMT_CLOCK_MASK);
 		return -EINVAL;
 	}
 
-	snd_soc_update_bits(codec, AB8500_DIGIFCONF1, mask, val);
+	snd_soc_component_update_bits(component, AB8500_DIGIFCONF1, mask, val);
 
 	return 0;
 }
@@ -2103,10 +2103,10 @@ static int ab8500_codec_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 {
 	unsigned int mask;
 	unsigned int val;
-	struct snd_soc_codec *codec = dai->codec;
+	struct snd_soc_component *component = dai->component;
 	int status;
 
-	dev_dbg(codec->dev, "%s: Enter (fmt = 0x%x)\n", __func__, fmt);
+	dev_dbg(component->dev, "%s: Enter (fmt = 0x%x)\n", __func__, fmt);
 
 	mask = BIT(AB8500_DIGIFCONF3_IF1DATOIF0AD) |
 			BIT(AB8500_DIGIFCONF3_IF1CLKTOIF0CLK) |
@@ -2116,32 +2116,32 @@ static int ab8500_codec_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 
 	switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
 	case SND_SOC_DAIFMT_CBM_CFM: /* codec clk & FRM master */
-		dev_dbg(dai->codec->dev,
+		dev_dbg(dai->component->dev,
 			"%s: IF0 Master-mode: AB8500 master.\n", __func__);
 		val |= BIT(AB8500_DIGIFCONF3_IF0MASTER);
 		break;
 	case SND_SOC_DAIFMT_CBS_CFS: /* codec clk & FRM slave */
-		dev_dbg(dai->codec->dev,
+		dev_dbg(dai->component->dev,
 			"%s: IF0 Master-mode: AB8500 slave.\n", __func__);
 		break;
 	case SND_SOC_DAIFMT_CBS_CFM: /* codec clk slave & FRM master */
 	case SND_SOC_DAIFMT_CBM_CFS: /* codec clk master & frame slave */
-		dev_err(dai->codec->dev,
+		dev_err(dai->component->dev,
 			"%s: ERROR: The device is either a master or a slave.\n",
 			__func__);
 	default:
-		dev_err(dai->codec->dev,
+		dev_err(dai->component->dev,
 			"%s: ERROR: Unsupporter master mask 0x%x\n",
 			__func__, fmt & SND_SOC_DAIFMT_MASTER_MASK);
 		return -EINVAL;
 	}
 
-	snd_soc_update_bits(codec, AB8500_DIGIFCONF3, mask, val);
+	snd_soc_component_update_bits(component, AB8500_DIGIFCONF3, mask, val);
 
 	/* Set clock gating */
-	status = ab8500_codec_set_dai_clock_gate(codec, fmt);
+	status = ab8500_codec_set_dai_clock_gate(component, fmt);
 	if (status) {
-		dev_err(dai->codec->dev,
+		dev_err(dai->component->dev,
 			"%s: ERROR: Failed to set clock gate (%d).\n",
 			__func__, status);
 		return status;
@@ -2157,27 +2157,27 @@ static int ab8500_codec_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 
 	switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
 	case SND_SOC_DAIFMT_I2S: /* I2S mode */
-		dev_dbg(dai->codec->dev, "%s: IF0 Protocol: I2S\n", __func__);
+		dev_dbg(dai->component->dev, "%s: IF0 Protocol: I2S\n", __func__);
 		val |= BIT(AB8500_DIGIFCONF2_IF0FORMAT1);
 		ab8500_audio_set_bit_delay(dai, 0);
 		break;
 
 	case SND_SOC_DAIFMT_DSP_A: /* L data MSB after FRM LRC */
-		dev_dbg(dai->codec->dev,
+		dev_dbg(dai->component->dev,
 			"%s: IF0 Protocol: DSP A (TDM)\n", __func__);
 		val |= BIT(AB8500_DIGIFCONF2_IF0FORMAT0);
 		ab8500_audio_set_bit_delay(dai, 1);
 		break;
 
 	case SND_SOC_DAIFMT_DSP_B: /* L data MSB during FRM LRC */
-		dev_dbg(dai->codec->dev,
+		dev_dbg(dai->component->dev,
 			"%s: IF0 Protocol: DSP B (TDM)\n", __func__);
 		val |= BIT(AB8500_DIGIFCONF2_IF0FORMAT0);
 		ab8500_audio_set_bit_delay(dai, 0);
 		break;
 
 	default:
-		dev_err(dai->codec->dev,
+		dev_err(dai->component->dev,
 			"%s: ERROR: Unsupported format (0x%x)!\n",
 			__func__, fmt & SND_SOC_DAIFMT_FORMAT_MASK);
 		return -EINVAL;
@@ -2185,37 +2185,37 @@ static int ab8500_codec_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 
 	switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
 	case SND_SOC_DAIFMT_NB_NF: /* normal bit clock + frame */
-		dev_dbg(dai->codec->dev,
+		dev_dbg(dai->component->dev,
 			"%s: IF0: Normal bit clock, normal frame\n",
 			__func__);
 		break;
 	case SND_SOC_DAIFMT_NB_IF: /* normal BCLK + inv FRM */
-		dev_dbg(dai->codec->dev,
+		dev_dbg(dai->component->dev,
 			"%s: IF0: Normal bit clock, inverted frame\n",
 			__func__);
 		val |= BIT(AB8500_DIGIFCONF2_FSYNC0P);
 		break;
 	case SND_SOC_DAIFMT_IB_NF: /* invert BCLK + nor FRM */
-		dev_dbg(dai->codec->dev,
+		dev_dbg(dai->component->dev,
 			"%s: IF0: Inverted bit clock, normal frame\n",
 			__func__);
 		val |= BIT(AB8500_DIGIFCONF2_BITCLK0P);
 		break;
 	case SND_SOC_DAIFMT_IB_IF: /* invert BCLK + FRM */
-		dev_dbg(dai->codec->dev,
+		dev_dbg(dai->component->dev,
 			"%s: IF0: Inverted bit clock, inverted frame\n",
 			__func__);
 		val |= BIT(AB8500_DIGIFCONF2_FSYNC0P);
 		val |= BIT(AB8500_DIGIFCONF2_BITCLK0P);
 		break;
 	default:
-		dev_err(dai->codec->dev,
+		dev_err(dai->component->dev,
 			"%s: ERROR: Unsupported INV mask 0x%x\n",
 			__func__, fmt & SND_SOC_DAIFMT_INV_MASK);
 		return -EINVAL;
 	}
 
-	snd_soc_update_bits(codec, AB8500_DIGIFCONF2, mask, val);
+	snd_soc_component_update_bits(component, AB8500_DIGIFCONF2, mask, val);
 
 	return 0;
 }
@@ -2224,7 +2224,7 @@ static int ab8500_codec_set_dai_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 snd_soc_component *component = dai->component;
 	unsigned int val, mask, slot, slots_active;
 
 	mask = BIT(AB8500_DIGIFCONF2_IF0WL0) |
@@ -2245,17 +2245,17 @@ static int ab8500_codec_set_dai_tdm_slot(struct snd_soc_dai *dai,
 			BIT(AB8500_DIGIFCONF2_IF0WL0);
 		break;
 	default:
-		dev_err(dai->codec->dev, "%s: Unsupported slot-width 0x%x\n",
+		dev_err(dai->component->dev, "%s: Unsupported slot-width 0x%x\n",
 			__func__, slot_width);
 		return -EINVAL;
 	}
 
-	dev_dbg(dai->codec->dev, "%s: IF0 slot-width: %d bits.\n",
+	dev_dbg(dai->component->dev, "%s: IF0 slot-width: %d bits.\n",
 		__func__, slot_width);
-	snd_soc_update_bits(codec, AB8500_DIGIFCONF2, mask, val);
+	snd_soc_component_update_bits(component, AB8500_DIGIFCONF2, mask, val);
 
 	/* Setup TDM clocking according to slot count */
-	dev_dbg(dai->codec->dev, "%s: Slots, total: %d\n", __func__, slots);
+	dev_dbg(dai->component->dev, "%s: Slots, total: %d\n", __func__, slots);
 	mask = BIT(AB8500_DIGIFCONF1_IF0BITCLKOS0) |
 			BIT(AB8500_DIGIFCONF1_IF0BITCLKOS1);
 	switch (slots) {
@@ -2273,12 +2273,12 @@ static int ab8500_codec_set_dai_tdm_slot(struct snd_soc_dai *dai,
 			BIT(AB8500_DIGIFCONF1_IF0BITCLKOS1);
 		break;
 	default:
-		dev_err(dai->codec->dev,
+		dev_err(dai->component->dev,
 			"%s: ERROR: Unsupported number of slots (%d)!\n",
 			__func__, slots);
 		return -EINVAL;
 	}
-	snd_soc_update_bits(codec, AB8500_DIGIFCONF1, mask, val);
+	snd_soc_component_update_bits(component, AB8500_DIGIFCONF1, mask, val);
 
 	/* Setup TDM DA according to active tx slots */
 
@@ -2289,7 +2289,7 @@ static int ab8500_codec_set_dai_tdm_slot(struct snd_soc_dai *dai,
 	tx_mask = tx_mask << AB8500_DA_DATA0_OFFSET;
 	slots_active = hweight32(tx_mask);
 
-	dev_dbg(dai->codec->dev, "%s: Slots, active, TX: %d\n", __func__,
+	dev_dbg(dai->component->dev, "%s: Slots, active, TX: %d\n", __func__,
 		slots_active);
 
 	switch (slots_active) {
@@ -2297,26 +2297,26 @@ static int ab8500_codec_set_dai_tdm_slot(struct snd_soc_dai *dai,
 		break;
 	case 1:
 		slot = ffs(tx_mask);
-		snd_soc_update_bits(codec, AB8500_DASLOTCONF1, mask, slot);
-		snd_soc_update_bits(codec, AB8500_DASLOTCONF3, mask, slot);
-		snd_soc_update_bits(codec, AB8500_DASLOTCONF2, mask, slot);
-		snd_soc_update_bits(codec, AB8500_DASLOTCONF4, mask, slot);
+		snd_soc_component_update_bits(component, AB8500_DASLOTCONF1, mask, slot);
+		snd_soc_component_update_bits(component, AB8500_DASLOTCONF3, mask, slot);
+		snd_soc_component_update_bits(component, AB8500_DASLOTCONF2, mask, slot);
+		snd_soc_component_update_bits(component, AB8500_DASLOTCONF4, mask, slot);
 		break;
 	case 2:
 		slot = ffs(tx_mask);
-		snd_soc_update_bits(codec, AB8500_DASLOTCONF1, mask, slot);
-		snd_soc_update_bits(codec, AB8500_DASLOTCONF3, mask, slot);
+		snd_soc_component_update_bits(component, AB8500_DASLOTCONF1, mask, slot);
+		snd_soc_component_update_bits(component, AB8500_DASLOTCONF3, mask, slot);
 		slot = fls(tx_mask);
-		snd_soc_update_bits(codec, AB8500_DASLOTCONF2, mask, slot);
-		snd_soc_update_bits(codec, AB8500_DASLOTCONF4, mask, slot);
+		snd_soc_component_update_bits(component, AB8500_DASLOTCONF2, mask, slot);
+		snd_soc_component_update_bits(component, AB8500_DASLOTCONF4, mask, slot);
 		break;
 	case 8:
-		dev_dbg(dai->codec->dev,
+		dev_dbg(dai->component->dev,
 			"%s: In 8-channel mode DA-from-slot mapping is set manually.",
 			__func__);
 		break;
 	default:
-		dev_err(dai->codec->dev,
+		dev_err(dai->component->dev,
 			"%s: Unsupported number of active TX-slots (%d)!\n",
 			__func__, slots_active);
 		return -EINVAL;
@@ -2330,7 +2330,7 @@ static int ab8500_codec_set_dai_tdm_slot(struct snd_soc_dai *dai,
 	rx_mask = rx_mask << AB8500_AD_DATA0_OFFSET;
 	slots_active = hweight32(rx_mask);
 
-	dev_dbg(dai->codec->dev, "%s: Slots, active, RX: %d\n", __func__,
+	dev_dbg(dai->component->dev, "%s: Slots, active, RX: %d\n", __func__,
 		slots_active);
 
 	switch (slots_active) {
@@ -2338,29 +2338,29 @@ static int ab8500_codec_set_dai_tdm_slot(struct snd_soc_dai *dai,
 		break;
 	case 1:
 		slot = ffs(rx_mask);
-		snd_soc_update_bits(codec, AB8500_ADSLOTSEL(slot),
+		snd_soc_component_update_bits(component, AB8500_ADSLOTSEL(slot),
 				AB8500_MASK_SLOT(slot),
 				AB8500_ADSLOTSELX_AD_OUT_TO_SLOT(AB8500_AD_OUT3, slot));
 		break;
 	case 2:
 		slot = ffs(rx_mask);
-		snd_soc_update_bits(codec,
+		snd_soc_component_update_bits(component,
 				AB8500_ADSLOTSEL(slot),
 				AB8500_MASK_SLOT(slot),
 				AB8500_ADSLOTSELX_AD_OUT_TO_SLOT(AB8500_AD_OUT3, slot));
 		slot = fls(rx_mask);
-		snd_soc_update_bits(codec,
+		snd_soc_component_update_bits(component,
 				AB8500_ADSLOTSEL(slot),
 				AB8500_MASK_SLOT(slot),
 				AB8500_ADSLOTSELX_AD_OUT_TO_SLOT(AB8500_AD_OUT2, slot));
 		break;
 	case 8:
-		dev_dbg(dai->codec->dev,
+		dev_dbg(dai->component->dev,
 			"%s: In 8-channel mode AD-to-slot mapping is set manually.",
 			__func__);
 		break;
 	default:
-		dev_err(dai->codec->dev,
+		dev_err(dai->component->dev,
 			"%s: Unsupported number of active RX-slots (%d)!\n",
 			__func__, slots_active);
 		return -EINVAL;
@@ -2458,10 +2458,10 @@ static void ab8500_codec_of_probe(struct device *dev, struct device_node *np,
 	}
 }
 
-static int ab8500_codec_probe(struct snd_soc_codec *codec)
+static int ab8500_codec_probe(struct snd_soc_component *component)
 {
-	struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
-	struct device *dev = codec->dev;
+	struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
+	struct device *dev = component->dev;
 	struct device_node *np = dev->of_node;
 	struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(dev);
 	struct ab8500_codec_platform_data codec_pdata;
@@ -2472,19 +2472,19 @@ static int ab8500_codec_probe(struct snd_soc_codec *codec)
 
 	ab8500_codec_of_probe(dev, np, &codec_pdata);
 
-	status = ab8500_audio_setup_mics(codec, &codec_pdata.amics);
+	status = ab8500_audio_setup_mics(component, &codec_pdata.amics);
 	if (status < 0) {
 		pr_err("%s: Failed to setup mics (%d)!\n", __func__, status);
 		return status;
 	}
-	status = ab8500_audio_set_ear_cmv(codec, codec_pdata.ear_cmv);
+	status = ab8500_audio_set_ear_cmv(component, codec_pdata.ear_cmv);
 	if (status < 0) {
 		pr_err("%s: Failed to set earpiece CM-voltage (%d)!\n",
 			__func__, status);
 		return status;
 	}
 
-	status = ab8500_audio_init_audioblock(codec);
+	status = ab8500_audio_init_audioblock(component);
 	if (status < 0) {
 		dev_err(dev, "%s: failed to init audio-block (%d)!\n",
 			__func__, status);
@@ -2492,13 +2492,13 @@ static int ab8500_codec_probe(struct snd_soc_codec *codec)
 	}
 
 	/* Override HW-defaults */
-	snd_soc_write(codec, AB8500_ANACONF5,
+	snd_soc_component_write(component, AB8500_ANACONF5,
 		      BIT(AB8500_ANACONF5_HSAUTOEN));
-	snd_soc_write(codec, AB8500_SHORTCIRCONF,
+	snd_soc_component_write(component, AB8500_SHORTCIRCONF,
 		      BIT(AB8500_SHORTCIRCONF_HSZCDDIS));
 
 	/* Add filter controls */
-	status = snd_soc_add_codec_controls(codec, ab8500_filter_controls,
+	status = snd_soc_add_component_controls(component, ab8500_filter_controls,
 				ARRAY_SIZE(ab8500_filter_controls));
 	if (status < 0) {
 		dev_err(dev,
@@ -2523,16 +2523,18 @@ static int ab8500_codec_probe(struct snd_soc_codec *codec)
 	return status;
 }
 
-static const struct snd_soc_codec_driver ab8500_codec_driver = {
-	.probe =		ab8500_codec_probe,
-	.component_driver = {
-		.controls =		ab8500_ctrls,
-		.num_controls =		ARRAY_SIZE(ab8500_ctrls),
-		.dapm_widgets =		ab8500_dapm_widgets,
-		.num_dapm_widgets =	ARRAY_SIZE(ab8500_dapm_widgets),
-		.dapm_routes =		ab8500_dapm_routes,
-		.num_dapm_routes =	ARRAY_SIZE(ab8500_dapm_routes),
-	},
+static const struct snd_soc_component_driver ab8500_component_driver = {
+	.probe			= ab8500_codec_probe,
+	.controls		= ab8500_ctrls,
+	.num_controls		= ARRAY_SIZE(ab8500_ctrls),
+	.dapm_widgets		= ab8500_dapm_widgets,
+	.num_dapm_widgets	= ARRAY_SIZE(ab8500_dapm_widgets),
+	.dapm_routes		= ab8500_dapm_routes,
+	.num_dapm_routes	= ARRAY_SIZE(ab8500_dapm_routes),
+	.idle_bias_on		= 1,
+	.pmdown_time		= 1,
+	.endianness		= 1,
+	.non_legacy_dai_naming	= 1,
 };
 
 static int ab8500_codec_driver_probe(struct platform_device *pdev)
@@ -2561,7 +2563,8 @@ static int ab8500_codec_driver_probe(struct platform_device *pdev)
 	}
 
 	dev_dbg(&pdev->dev, "%s: Register codec.\n", __func__);
-	status = snd_soc_register_codec(&pdev->dev, &ab8500_codec_driver,
+	status = devm_snd_soc_register_component(&pdev->dev,
+				&ab8500_component_driver,
 				ab8500_codec_dai,
 				ARRAY_SIZE(ab8500_codec_dai));
 	if (status < 0)
@@ -2572,21 +2575,11 @@ static int ab8500_codec_driver_probe(struct platform_device *pdev)
 	return status;
 }
 
-static int ab8500_codec_driver_remove(struct platform_device *pdev)
-{
-	dev_dbg(&pdev->dev, "%s Enter.\n", __func__);
-
-	snd_soc_unregister_codec(&pdev->dev);
-
-	return 0;
-}
-
 static struct platform_driver ab8500_codec_platform_driver = {
 	.driver	= {
 		.name	= "ab8500-codec",
 	},
 	.probe		= ab8500_codec_driver_probe,
-	.remove		= ab8500_codec_driver_remove,
 };
 module_platform_driver(ab8500_codec_platform_driver);
 
-- 
1.9.1

  parent reply	other threads:[~2018-01-12  1:46 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 ` Kuninori Morimoto [this message]
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
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=871siv7sup.wl%kuninori.morimoto.gx@renesas.com \
    --to=kuninori.morimoto.gx@renesas.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=horms@verge.net.au \
    /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.