Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Brown <broonie@kernel.org>
To: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Cc: alsa-devel@alsa-project.org, Mark Brown <broonie@kernel.org>,
	Charles Keepax <ckeepax@opensource.cirrus.com>,
	Simon <horms@verge.net.au>
Subject: Applied "ASoC: wm2200: replace codec to component" to the asoc tree
Date: Mon, 12 Feb 2018 12:51:27 +0000	[thread overview]
Message-ID: <E1elDZv-0006PA-1a@debutante> (raw)
In-Reply-To: <874lnrevfc.wl%kuninori.morimoto.gx@renesas.com>

The patch

   ASoC: wm2200: replace codec to component

has been applied to the asoc tree at

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git 

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.  

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

>From 908b530863d4ae570e8005056f408ecae4862494 Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Mon, 29 Jan 2018 02:59:19 +0000
Subject: [PATCH] ASoC: wm2200: replace codec to component

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

Note:
	xxx_codec_xxx()		->	xxx_component_xxx()
	.idle_bias_off = 1	->	.idle_bias_on = 0
	.ignore_pmdown_time = 1	->	.use_pmdown_time = 0
	-			->	.endianness = 1
	-			->	.non_legacy_dai_naming = 1

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/codecs/wm2200.c | 157 ++++++++++++++++++++++------------------------
 1 file changed, 76 insertions(+), 81 deletions(-)

diff --git a/sound/soc/codecs/wm2200.c b/sound/soc/codecs/wm2200.c
index 5c2f5727244d..d5f4bbf27182 100644
--- a/sound/soc/codecs/wm2200.c
+++ b/sound/soc/codecs/wm2200.c
@@ -87,7 +87,7 @@ struct wm2200_priv {
 	struct wm_adsp dsp[2];
 	struct regmap *regmap;
 	struct device *dev;
-	struct snd_soc_codec *codec;
+	struct snd_soc_component *component;
 	struct wm2200_pdata pdata;
 	struct regulator_bulk_data core_supplies[WM2200_NUM_CORE_SUPPLIES];
 
@@ -1550,14 +1550,14 @@ static const struct snd_soc_dapm_route wm2200_dapm_routes[] = {
 	WM2200_MIXER_ROUTES("LHPF2", "LHPF2"),
 };
 
-static int wm2200_probe(struct snd_soc_codec *codec)
+static int wm2200_probe(struct snd_soc_component *component)
 {
-	struct wm2200_priv *wm2200 = snd_soc_codec_get_drvdata(codec);
+	struct wm2200_priv *wm2200 = snd_soc_component_get_drvdata(component);
 	int ret;
 
-	wm2200->codec = codec;
+	wm2200->component = component;
 
-	ret = snd_soc_add_codec_controls(codec, wm_adsp_fw_controls, 2);
+	ret = snd_soc_add_component_controls(component, wm_adsp_fw_controls, 2);
 	if (ret != 0)
 		return ret;
 
@@ -1566,7 +1566,7 @@ static int wm2200_probe(struct snd_soc_codec *codec)
 
 static int wm2200_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 {
-	struct snd_soc_codec *codec = dai->codec;
+	struct snd_soc_component *component = dai->component;
 	int lrclk, bclk, fmt_val;
 
 	lrclk = 0;
@@ -1580,7 +1580,7 @@ static int wm2200_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 		fmt_val = 2;
 		break;
 	default:
-		dev_err(codec->dev, "Unsupported DAI format %d\n",
+		dev_err(component->dev, "Unsupported DAI format %d\n",
 			fmt & SND_SOC_DAIFMT_FORMAT_MASK);
 		return -EINVAL;
 	}
@@ -1599,7 +1599,7 @@ static int wm2200_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 		bclk |= WM2200_AIF1_BCLK_MSTR;
 		break;
 	default:
-		dev_err(codec->dev, "Unsupported master mode %d\n",
+		dev_err(component->dev, "Unsupported master mode %d\n",
 			fmt & SND_SOC_DAIFMT_MASTER_MASK);
 		return -EINVAL;
 	}
@@ -1621,15 +1621,15 @@ static int wm2200_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 		return -EINVAL;
 	}
 
-	snd_soc_update_bits(codec, WM2200_AUDIO_IF_1_1, WM2200_AIF1_BCLK_MSTR |
+	snd_soc_component_update_bits(component, WM2200_AUDIO_IF_1_1, WM2200_AIF1_BCLK_MSTR |
 			    WM2200_AIF1_BCLK_INV, bclk);
-	snd_soc_update_bits(codec, WM2200_AUDIO_IF_1_2,
+	snd_soc_component_update_bits(component, WM2200_AUDIO_IF_1_2,
 			    WM2200_AIF1TX_LRCLK_MSTR | WM2200_AIF1TX_LRCLK_INV,
 			    lrclk);
-	snd_soc_update_bits(codec, WM2200_AUDIO_IF_1_3,
+	snd_soc_component_update_bits(component, WM2200_AUDIO_IF_1_3,
 			    WM2200_AIF1TX_LRCLK_MSTR | WM2200_AIF1TX_LRCLK_INV,
 			    lrclk);
-	snd_soc_update_bits(codec, WM2200_AUDIO_IF_1_5,
+	snd_soc_component_update_bits(component, WM2200_AUDIO_IF_1_5,
 			    WM2200_AIF1_FMT_MASK, fmt_val);
 
 	return 0;
@@ -1698,8 +1698,8 @@ static int wm2200_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 wm2200_priv *wm2200 = snd_soc_codec_get_drvdata(codec);
+	struct snd_soc_component *component = dai->component;
+	struct wm2200_priv *wm2200 = snd_soc_component_get_drvdata(component);
 	int i, bclk, lrclk, wl, fl, sr_code;
 	int *bclk_rates;
 
@@ -1711,7 +1711,7 @@ static int wm2200_hw_params(struct snd_pcm_substream *substream,
 	if (fl < 0)
 		return fl;
 
-	dev_dbg(codec->dev, "Word length %d bits, frame length %d bits\n",
+	dev_dbg(component->dev, "Word length %d bits, frame length %d bits\n",
 		wl, fl);
 
 	/* Target BCLK rate */
@@ -1720,7 +1720,7 @@ static int wm2200_hw_params(struct snd_pcm_substream *substream,
 		return bclk;
 
 	if (!wm2200->sysclk) {
-		dev_err(codec->dev, "SYSCLK has no rate set\n");
+		dev_err(component->dev, "SYSCLK has no rate set\n");
 		return -EINVAL;
 	}
 
@@ -1728,13 +1728,13 @@ static int wm2200_hw_params(struct snd_pcm_substream *substream,
 		if (wm2200_sr_code[i] == params_rate(params))
 			break;
 	if (i == ARRAY_SIZE(wm2200_sr_code)) {
-		dev_err(codec->dev, "Unsupported sample rate: %dHz\n",
+		dev_err(component->dev, "Unsupported sample rate: %dHz\n",
 			params_rate(params));
 		return -EINVAL;
 	}
 	sr_code = i;
 
-	dev_dbg(codec->dev, "Target BCLK is %dHz, using %dHz SYSCLK\n",
+	dev_dbg(component->dev, "Target BCLK is %dHz, using %dHz SYSCLK\n",
 		bclk, wm2200->sysclk);
 
 	if (wm2200->sysclk % 4000)
@@ -1746,38 +1746,38 @@ static int wm2200_hw_params(struct snd_pcm_substream *substream,
 		if (bclk_rates[i] >= bclk && (bclk_rates[i] % bclk == 0))
 			break;
 	if (i == WM2200_NUM_BCLK_RATES) {
-		dev_err(codec->dev,
+		dev_err(component->dev,
 			"No valid BCLK for %dHz found from %dHz SYSCLK\n",
 			bclk, wm2200->sysclk);
 		return -EINVAL;
 	}
 
 	bclk = i;
-	dev_dbg(codec->dev, "Setting %dHz BCLK\n", bclk_rates[bclk]);
-	snd_soc_update_bits(codec, WM2200_AUDIO_IF_1_1,
+	dev_dbg(component->dev, "Setting %dHz BCLK\n", bclk_rates[bclk]);
+	snd_soc_component_update_bits(component, WM2200_AUDIO_IF_1_1,
 			    WM2200_AIF1_BCLK_DIV_MASK, bclk);
 
 	lrclk = bclk_rates[bclk] / params_rate(params);
-	dev_dbg(codec->dev, "Setting %dHz LRCLK\n", bclk_rates[bclk] / lrclk);
+	dev_dbg(component->dev, "Setting %dHz LRCLK\n", bclk_rates[bclk] / lrclk);
 	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ||
 	    wm2200->symmetric_rates)
-		snd_soc_update_bits(codec, WM2200_AUDIO_IF_1_7,
+		snd_soc_component_update_bits(component, WM2200_AUDIO_IF_1_7,
 				    WM2200_AIF1RX_BCPF_MASK, lrclk);
 	else
-		snd_soc_update_bits(codec, WM2200_AUDIO_IF_1_6,
+		snd_soc_component_update_bits(component, WM2200_AUDIO_IF_1_6,
 				    WM2200_AIF1TX_BCPF_MASK, lrclk);
 
 	i = (wl << WM2200_AIF1TX_WL_SHIFT) | wl;
 	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
-		snd_soc_update_bits(codec, WM2200_AUDIO_IF_1_9,
+		snd_soc_component_update_bits(component, WM2200_AUDIO_IF_1_9,
 				    WM2200_AIF1RX_WL_MASK |
 				    WM2200_AIF1RX_SLOT_LEN_MASK, i);
 	else
-		snd_soc_update_bits(codec, WM2200_AUDIO_IF_1_8,
+		snd_soc_component_update_bits(component, WM2200_AUDIO_IF_1_8,
 				    WM2200_AIF1TX_WL_MASK |
 				    WM2200_AIF1TX_SLOT_LEN_MASK, i);
 
-	snd_soc_update_bits(codec, WM2200_CLOCKING_4,
+	snd_soc_component_update_bits(component, WM2200_CLOCKING_4,
 			    WM2200_SAMPLE_RATE_1_MASK, sr_code);
 
 	return 0;
@@ -1788,10 +1788,10 @@ static const struct snd_soc_dai_ops wm2200_dai_ops = {
 	.hw_params = wm2200_hw_params,
 };
 
-static int wm2200_set_sysclk(struct snd_soc_codec *codec, int clk_id,
+static int wm2200_set_sysclk(struct snd_soc_component *component, int clk_id,
 			     int source, unsigned int freq, int dir)
 {
-	struct wm2200_priv *wm2200 = snd_soc_codec_get_drvdata(codec);
+	struct wm2200_priv *wm2200 = snd_soc_component_get_drvdata(component);
 	int fval;
 
 	switch (clk_id) {
@@ -1799,7 +1799,7 @@ static int wm2200_set_sysclk(struct snd_soc_codec *codec, int clk_id,
 		break;
 
 	default:
-		dev_err(codec->dev, "Unknown clock %d\n", clk_id);
+		dev_err(component->dev, "Unknown clock %d\n", clk_id);
 		return -EINVAL;
 	}
 
@@ -1810,7 +1810,7 @@ static int wm2200_set_sysclk(struct snd_soc_codec *codec, int clk_id,
 	case WM2200_CLKSRC_BCLK1:
 		break;
 	default:
-		dev_err(codec->dev, "Invalid source %d\n", source);
+		dev_err(component->dev, "Invalid source %d\n", source);
 		return -EINVAL;
 	}
 
@@ -1820,7 +1820,7 @@ static int wm2200_set_sysclk(struct snd_soc_codec *codec, int clk_id,
 		fval = 2;
 		break;
 	default:
-		dev_err(codec->dev, "Invalid clock rate: %d\n", freq);
+		dev_err(component->dev, "Invalid clock rate: %d\n", freq);
 		return -EINVAL;
 	}
 
@@ -1828,7 +1828,7 @@ static int wm2200_set_sysclk(struct snd_soc_codec *codec, int clk_id,
 	 * match.
 	 */
 
-	snd_soc_update_bits(codec, WM2200_CLOCKING_3, WM2200_SYSCLK_FREQ_MASK |
+	snd_soc_component_update_bits(component, WM2200_CLOCKING_3, WM2200_SYSCLK_FREQ_MASK |
 			    WM2200_SYSCLK_SRC_MASK,
 			    fval << WM2200_SYSCLK_FREQ_SHIFT | source);
 
@@ -1936,23 +1936,23 @@ static int fll_factors(struct _fll_div *fll_div, unsigned int Fref,
 	return 0;
 }
 
-static int wm2200_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
+static int wm2200_set_fll(struct snd_soc_component *component, int fll_id, int source,
 			  unsigned int Fref, unsigned int Fout)
 {
-	struct i2c_client *i2c = to_i2c_client(codec->dev);
-	struct wm2200_priv *wm2200 = snd_soc_codec_get_drvdata(codec);
+	struct i2c_client *i2c = to_i2c_client(component->dev);
+	struct wm2200_priv *wm2200 = snd_soc_component_get_drvdata(component);
 	struct _fll_div factors;
 	int ret, i, timeout;
 	unsigned long time_left;
 
 	if (!Fout) {
-		dev_dbg(codec->dev, "FLL disabled");
+		dev_dbg(component->dev, "FLL disabled");
 
 		if (wm2200->fll_fout)
-			pm_runtime_put(codec->dev);
+			pm_runtime_put(component->dev);
 
 		wm2200->fll_fout = 0;
-		snd_soc_update_bits(codec, WM2200_FLL_CONTROL_1,
+		snd_soc_component_update_bits(component, WM2200_FLL_CONTROL_1,
 				    WM2200_FLL_ENA, 0);
 		return 0;
 	}
@@ -1963,7 +1963,7 @@ static int wm2200_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
 	case WM2200_FLL_SRC_BCLK:
 		break;
 	default:
-		dev_err(codec->dev, "Invalid FLL source %d\n", source);
+		dev_err(component->dev, "Invalid FLL source %d\n", source);
 		return -EINVAL;
 	}
 
@@ -1972,44 +1972,44 @@ static int wm2200_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
 		return ret;
 
 	/* Disable the FLL while we reconfigure */
-	snd_soc_update_bits(codec, WM2200_FLL_CONTROL_1, WM2200_FLL_ENA, 0);
+	snd_soc_component_update_bits(component, WM2200_FLL_CONTROL_1, WM2200_FLL_ENA, 0);
 
-	snd_soc_update_bits(codec, WM2200_FLL_CONTROL_2,
+	snd_soc_component_update_bits(component, WM2200_FLL_CONTROL_2,
 			    WM2200_FLL_OUTDIV_MASK | WM2200_FLL_FRATIO_MASK,
 			    (factors.fll_outdiv << WM2200_FLL_OUTDIV_SHIFT) |
 			    factors.fll_fratio);
 	if (factors.theta) {
-		snd_soc_update_bits(codec, WM2200_FLL_CONTROL_3,
+		snd_soc_component_update_bits(component, WM2200_FLL_CONTROL_3,
 				    WM2200_FLL_FRACN_ENA,
 				    WM2200_FLL_FRACN_ENA);
-		snd_soc_update_bits(codec, WM2200_FLL_EFS_2,
+		snd_soc_component_update_bits(component, WM2200_FLL_EFS_2,
 				    WM2200_FLL_EFS_ENA,
 				    WM2200_FLL_EFS_ENA);
 	} else {
-		snd_soc_update_bits(codec, WM2200_FLL_CONTROL_3,
+		snd_soc_component_update_bits(component, WM2200_FLL_CONTROL_3,
 				    WM2200_FLL_FRACN_ENA, 0);
-		snd_soc_update_bits(codec, WM2200_FLL_EFS_2,
+		snd_soc_component_update_bits(component, WM2200_FLL_EFS_2,
 				    WM2200_FLL_EFS_ENA, 0);
 	}
 
-	snd_soc_update_bits(codec, WM2200_FLL_CONTROL_4, WM2200_FLL_THETA_MASK,
+	snd_soc_component_update_bits(component, WM2200_FLL_CONTROL_4, WM2200_FLL_THETA_MASK,
 			    factors.theta);
-	snd_soc_update_bits(codec, WM2200_FLL_CONTROL_6, WM2200_FLL_N_MASK,
+	snd_soc_component_update_bits(component, WM2200_FLL_CONTROL_6, WM2200_FLL_N_MASK,
 			    factors.n);
-	snd_soc_update_bits(codec, WM2200_FLL_CONTROL_7,
+	snd_soc_component_update_bits(component, WM2200_FLL_CONTROL_7,
 			    WM2200_FLL_CLK_REF_DIV_MASK |
 			    WM2200_FLL_CLK_REF_SRC_MASK,
 			    (factors.fll_refclk_div
 			     << WM2200_FLL_CLK_REF_DIV_SHIFT) | source);
-	snd_soc_update_bits(codec, WM2200_FLL_EFS_1,
+	snd_soc_component_update_bits(component, WM2200_FLL_EFS_1,
 			    WM2200_FLL_LAMBDA_MASK, factors.lambda);
 
 	/* Clear any pending completions */
 	try_wait_for_completion(&wm2200->fll_lock);
 
-	pm_runtime_get_sync(codec->dev);
+	pm_runtime_get_sync(component->dev);
 
-	snd_soc_update_bits(codec, WM2200_FLL_CONTROL_1,
+	snd_soc_component_update_bits(component, WM2200_FLL_CONTROL_1,
 			    WM2200_FLL_ENA, WM2200_FLL_ENA);
 
 	if (i2c->irq)
@@ -2017,7 +2017,7 @@ static int wm2200_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
 	else
 		timeout = 50;
 
-	snd_soc_update_bits(codec, WM2200_CLOCKING_3, WM2200_SYSCLK_ENA,
+	snd_soc_component_update_bits(component, WM2200_CLOCKING_3, WM2200_SYSCLK_ENA,
 			    WM2200_SYSCLK_ENA);
 
 	/* Poll for the lock; will use the interrupt to exit quickly */
@@ -2032,10 +2032,10 @@ static int wm2200_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
 			msleep(1);
 		}
 
-		ret = snd_soc_read(codec,
+		ret = snd_soc_component_read32(component,
 				   WM2200_INTERRUPT_RAW_STATUS_2);
 		if (ret < 0) {
-			dev_err(codec->dev,
+			dev_err(component->dev,
 				"Failed to read FLL status: %d\n",
 				ret);
 			continue;
@@ -2044,8 +2044,8 @@ static int wm2200_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
 			break;
 	}
 	if (i == timeout) {
-		dev_err(codec->dev, "FLL lock timed out\n");
-		pm_runtime_put(codec->dev);
+		dev_err(component->dev, "FLL lock timed out\n");
+		pm_runtime_put(component->dev);
 		return -ETIMEDOUT;
 	}
 
@@ -2053,29 +2053,29 @@ static int wm2200_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
 	wm2200->fll_fref = Fref;
 	wm2200->fll_fout = Fout;
 
-	dev_dbg(codec->dev, "FLL running %dHz->%dHz\n", Fref, Fout);
+	dev_dbg(component->dev, "FLL running %dHz->%dHz\n", Fref, Fout);
 
 	return 0;
 }
 
 static int wm2200_dai_probe(struct snd_soc_dai *dai)
 {
-	struct snd_soc_codec *codec = dai->codec;
-	struct wm2200_priv *wm2200 = snd_soc_codec_get_drvdata(codec);
+	struct snd_soc_component *component = dai->component;
+	struct wm2200_priv *wm2200 = snd_soc_component_get_drvdata(component);
 	unsigned int val = 0;
 	int ret;
 
-	ret = snd_soc_read(codec, WM2200_GPIO_CTRL_1);
+	ret = snd_soc_component_read32(component, WM2200_GPIO_CTRL_1);
 	if (ret >= 0) {
 		if ((ret & WM2200_GP1_FN_MASK) != 0) {
 			wm2200->symmetric_rates = true;
 			val = WM2200_AIF1TX_LRCLK_SRC;
 		}
 	} else {
-		dev_err(codec->dev, "Failed to read GPIO 1 config: %d\n", ret);
+		dev_err(component->dev, "Failed to read GPIO 1 config: %d\n", ret);
 	}
 
-	snd_soc_update_bits(codec, WM2200_AUDIO_IF_1_2,
+	snd_soc_component_update_bits(component, WM2200_AUDIO_IF_1_2,
 			    WM2200_AIF1TX_LRCLK_SRC, val);
 
 	return 0;
@@ -2106,22 +2106,18 @@ static struct snd_soc_dai_driver wm2200_dai = {
 	.ops = &wm2200_dai_ops,
 };
 
-static const struct snd_soc_codec_driver soc_codec_wm2200 = {
-	.probe = wm2200_probe,
-
-	.idle_bias_off = true,
-	.ignore_pmdown_time = true,
-	.set_sysclk = wm2200_set_sysclk,
-	.set_pll = wm2200_set_fll,
-
-	.component_driver = {
-		.controls		= wm2200_snd_controls,
-		.num_controls		= ARRAY_SIZE(wm2200_snd_controls),
-		.dapm_widgets		= wm2200_dapm_widgets,
-		.num_dapm_widgets	= ARRAY_SIZE(wm2200_dapm_widgets),
-		.dapm_routes		= wm2200_dapm_routes,
-		.num_dapm_routes	= ARRAY_SIZE(wm2200_dapm_routes),
-	},
+static const struct snd_soc_component_driver soc_component_wm2200 = {
+	.probe			= wm2200_probe,
+	.set_sysclk		= wm2200_set_sysclk,
+	.set_pll		= wm2200_set_fll,
+	.controls		= wm2200_snd_controls,
+	.num_controls		= ARRAY_SIZE(wm2200_snd_controls),
+	.dapm_widgets		= wm2200_dapm_widgets,
+	.num_dapm_widgets	= ARRAY_SIZE(wm2200_dapm_widgets),
+	.dapm_routes		= wm2200_dapm_routes,
+	.num_dapm_routes	= ARRAY_SIZE(wm2200_dapm_routes),
+	.endianness		= 1,
+	.non_legacy_dai_naming	= 1,
 };
 
 static irqreturn_t wm2200_irq(int irq, void *data)
@@ -2408,7 +2404,7 @@ static int wm2200_i2c_probe(struct i2c_client *i2c,
 	pm_runtime_enable(&i2c->dev);
 	pm_request_idle(&i2c->dev);
 
-	ret = snd_soc_register_codec(&i2c->dev, &soc_codec_wm2200,
+	ret = devm_snd_soc_register_component(&i2c->dev, &soc_component_wm2200,
 				     &wm2200_dai, 1);
 	if (ret != 0) {
 		dev_err(&i2c->dev, "Failed to register CODEC: %d\n", ret);
@@ -2435,7 +2431,6 @@ static int wm2200_i2c_remove(struct i2c_client *i2c)
 {
 	struct wm2200_priv *wm2200 = i2c_get_clientdata(i2c);
 
-	snd_soc_unregister_codec(&i2c->dev);
 	if (i2c->irq)
 		free_irq(i2c->irq, wm2200);
 	if (wm2200->pdata.reset)
-- 
2.16.1

  reply	other threads:[~2018-02-12 12:51 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   ` Mark Brown [this message]
2018-01-12  1:09 ` [PATCH 006/187] ASoC: wm5100: " 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
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=E1elDZv-0006PA-1a@debutante \
    --to=broonie@kernel.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=ckeepax@opensource.cirrus.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox