linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4 v2] ASoC: missing replace codec to component
@ 2018-02-19  4:14 Kuninori Morimoto
  2018-02-19  4:15 ` [PATCH 1/4 v2] ASoC: intel: kbl_da7219_max98357: " Kuninori Morimoto
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Kuninori Morimoto @ 2018-02-19  4:14 UTC (permalink / raw)
  To: Mark Brown
  Cc: Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Shengjiu Wang,
	Cosmin-Gabriel Samoila, alsa-devel, linux-kernel, Mihai Serban,
	Junichi Wakasugi, Fabio Estevam, Daniel Baluta,
	Sathyanarayana Nujella, Pierre-Louis Bossart, Harsha Priya,
	Naveen Manohar, Alex Deucher, Akshu Agrawal, Dylan Reid


Hi Mark

These are v2 of replace patch for new added driver on mark/for-next branch.
The diff v1 -> v2 is that compile warning issue was solved on ak driver

Kuninori Morimoto (4):
  ASoC: intel: kbl_da7219_max98357: replace codec to component
  ASoC: amd: acp-da7219-max98357: replace codec to component
  ASoC: ak4458: replace codec to component
  ASoC: ak5558: replace codec to component

 sound/soc/amd/acp-da7219-max98357a.c          |   4 +-
 sound/soc/codecs/ak4458.c                     | 107 +++++++++++++-------------
 sound/soc/codecs/ak5558.c                     |  67 ++++++++--------
 sound/soc/intel/boards/kbl_da7219_max98357a.c |  12 +--
 4 files changed, 94 insertions(+), 96 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/4 v2] ASoC: intel: kbl_da7219_max98357: replace codec to component
  2018-02-19  4:14 [PATCH 0/4 v2] ASoC: missing replace codec to component Kuninori Morimoto
@ 2018-02-19  4:15 ` Kuninori Morimoto
  2018-02-19  4:16 ` [PATCH 2/4 v2] ASoC: amd: acp-da7219-max98357: " Kuninori Morimoto
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Kuninori Morimoto @ 2018-02-19  4:15 UTC (permalink / raw)
  To: Mark Brown
  Cc: Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Shengjiu Wang,
	Cosmin-Gabriel Samoila, alsa-devel, linux-kernel, Mihai Serban,
	Junichi Wakasugi, Fabio Estevam, Daniel Baluta,
	Sathyanarayana Nujella, Pierre-Louis Bossart, Harsha Priya,
	Naveen Manohar, Alex Deucher, Akshu Agrawal, Dylan Reid

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

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

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
v1 -> v2

 - no change

 sound/soc/intel/boards/kbl_da7219_max98357a.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/sound/soc/intel/boards/kbl_da7219_max98357a.c b/sound/soc/intel/boards/kbl_da7219_max98357a.c
index d689124..e84baaf 100644
--- a/sound/soc/intel/boards/kbl_da7219_max98357a.c
+++ b/sound/soc/intel/boards/kbl_da7219_max98357a.c
@@ -168,7 +168,7 @@ static int kabylake_ssp_fixup(struct snd_soc_pcm_runtime *rtd,
 static int kabylake_da7219_codec_init(struct snd_soc_pcm_runtime *rtd)
 {
 	struct kbl_codec_private *ctx = snd_soc_card_get_drvdata(rtd->card);
-	struct snd_soc_codec *codec = rtd->codec;
+	struct snd_soc_component *component = rtd->codec_dai->component;
 	struct snd_soc_jack *jack;
 	int ret;
 
@@ -191,7 +191,7 @@ static int kabylake_da7219_codec_init(struct snd_soc_pcm_runtime *rtd)
 	snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOLUMEUP);
 	snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEDOWN);
 	snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOICECOMMAND);
-	da7219_aad_jack_det(codec, &ctx->kabylake_headset);
+	da7219_aad_jack_det(component, &ctx->kabylake_headset);
 
 	ret = snd_soc_dapm_ignore_suspend(&rtd->card->dapm, "SoC DMIC");
 	if (ret)
@@ -522,12 +522,12 @@ static int kabylake_card_late_probe(struct snd_soc_card *card)
 {
 	struct kbl_codec_private *ctx = snd_soc_card_get_drvdata(card);
 	struct kbl_hdmi_pcm *pcm;
-	struct snd_soc_codec *codec = NULL;
+	struct snd_soc_component *component = NULL;
 	int err, i = 0;
 	char jack_name[NAME_SIZE];
 
 	list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) {
-		codec = pcm->codec_dai->codec;
+		component = pcm->codec_dai->component;
 		snprintf(jack_name, sizeof(jack_name),
 			"HDMI/DP, pcm=%d Jack", pcm->device);
 		err = snd_soc_card_jack_new(card, jack_name,
@@ -546,10 +546,10 @@ static int kabylake_card_late_probe(struct snd_soc_card *card)
 
 	}
 
-	if (!codec)
+	if (!component)
 		return -EINVAL;
 
-	return hdac_hdmi_jack_port_init(codec, &card->dapm);
+	return hdac_hdmi_jack_port_init(component, &card->dapm);
 }
 
 /* kabylake audio machine driver for SPT + DA7219 */
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/4 v2] ASoC: amd: acp-da7219-max98357: replace codec to component
  2018-02-19  4:14 [PATCH 0/4 v2] ASoC: missing replace codec to component Kuninori Morimoto
  2018-02-19  4:15 ` [PATCH 1/4 v2] ASoC: intel: kbl_da7219_max98357: " Kuninori Morimoto
@ 2018-02-19  4:16 ` Kuninori Morimoto
  2018-02-19  4:16 ` [PATCH 3/4 v2] ASoC: ak4458: " Kuninori Morimoto
  2018-02-19  4:17 ` [PATCH 4/4 v2] ASoC: ak5558: replace codec to component Kuninori Morimoto
  3 siblings, 0 replies; 7+ messages in thread
From: Kuninori Morimoto @ 2018-02-19  4:16 UTC (permalink / raw)
  To: Mark Brown
  Cc: Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Shengjiu Wang,
	Cosmin-Gabriel Samoila, alsa-devel, linux-kernel, Mihai Serban,
	Junichi Wakasugi, Fabio Estevam, Daniel Baluta,
	Sathyanarayana Nujella, Pierre-Louis Bossart, Harsha Priya,
	Naveen Manohar, Alex Deucher, Akshu Agrawal, Dylan Reid

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

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

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
v1 -> v2

 - no change

 sound/soc/amd/acp-da7219-max98357a.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sound/soc/amd/acp-da7219-max98357a.c b/sound/soc/amd/acp-da7219-max98357a.c
index e51a878..bbe0f10 100644
--- a/sound/soc/amd/acp-da7219-max98357a.c
+++ b/sound/soc/amd/acp-da7219-max98357a.c
@@ -47,8 +47,8 @@ static int cz_da7219_init(struct snd_soc_pcm_runtime *rtd)
 {
 	int ret;
 	struct snd_soc_card *card = rtd->card;
-	struct snd_soc_codec *codec = rtd->codec;
 	struct snd_soc_dai *codec_dai = rtd->codec_dai;
+	struct snd_soc_component *component = codec_dai->component;
 
 	dev_info(rtd->dev, "codec dai name = %s\n", codec_dai->name);
 
@@ -76,7 +76,7 @@ static int cz_da7219_init(struct snd_soc_pcm_runtime *rtd)
 		return ret;
 	}
 
-	da7219_aad_jack_det(codec, &cz_jack);
+	da7219_aad_jack_det(component, &cz_jack);
 
 	return 0;
 }
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/4 v2] ASoC: ak4458: replace codec to component
  2018-02-19  4:14 [PATCH 0/4 v2] ASoC: missing replace codec to component Kuninori Morimoto
  2018-02-19  4:15 ` [PATCH 1/4 v2] ASoC: intel: kbl_da7219_max98357: " Kuninori Morimoto
  2018-02-19  4:16 ` [PATCH 2/4 v2] ASoC: amd: acp-da7219-max98357: " Kuninori Morimoto
@ 2018-02-19  4:16 ` Kuninori Morimoto
  2018-02-19 12:19   ` Applied "ASoC: ak4458: replace codec to component" to the asoc tree Mark Brown
  2018-02-19  4:17 ` [PATCH 4/4 v2] ASoC: ak5558: replace codec to component Kuninori Morimoto
  3 siblings, 1 reply; 7+ messages in thread
From: Kuninori Morimoto @ 2018-02-19  4:16 UTC (permalink / raw)
  To: Mark Brown
  Cc: Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Shengjiu Wang,
	Cosmin-Gabriel Samoila, alsa-devel, linux-kernel, Mihai Serban,
	Junichi Wakasugi, Fabio Estevam, Daniel Baluta,
	Sathyanarayana Nujella, Pierre-Louis Bossart, Harsha Priya,
	Naveen Manohar, Alex Deucher, Akshu Agrawal, Dylan Reid


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	->	.use_pmdown_time = 1
	-			->	.endianness = 1
	-			->	.non_legacy_dai_naming = 1

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
v1 -> v2

 - solve compile issue on .remove

 sound/soc/codecs/ak4458.c | 107 +++++++++++++++++++++++-----------------------
 1 file changed, 53 insertions(+), 54 deletions(-)

diff --git a/sound/soc/codecs/ak4458.c b/sound/soc/codecs/ak4458.c
index c976216..d2815ac 100644
--- a/sound/soc/codecs/ak4458.c
+++ b/sound/soc/codecs/ak4458.c
@@ -167,8 +167,8 @@ struct ak4458_priv {
 static int get_digfil(struct snd_kcontrol *kcontrol,
 		      struct snd_ctl_elem_value *ucontrol)
 {
-	struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
-	struct ak4458_priv *ak4458 = snd_soc_codec_get_drvdata(codec);
+	struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
+	struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
 
 	ucontrol->value.enumerated.item[0] = ak4458->digfil;
 
@@ -178,8 +178,8 @@ static int get_digfil(struct snd_kcontrol *kcontrol,
 static int set_digfil(struct snd_kcontrol *kcontrol,
 		      struct snd_ctl_elem_value *ucontrol)
 {
-	struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
-	struct ak4458_priv *ak4458 = snd_soc_codec_get_drvdata(codec);
+	struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
+	struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
 	int num;
 
 	num = ucontrol->value.enumerated.item[0];
@@ -189,17 +189,17 @@ static int set_digfil(struct snd_kcontrol *kcontrol,
 	ak4458->digfil = num;
 
 	/* write SD bit */
-	snd_soc_update_bits(codec, AK4458_01_CONTROL2,
+	snd_soc_component_update_bits(component, AK4458_01_CONTROL2,
 			    AK4458_SD_MASK,
 			    ((ak4458->digfil & 0x02) << 4));
 
 	/* write SLOW bit */
-	snd_soc_update_bits(codec, AK4458_02_CONTROL3,
+	snd_soc_component_update_bits(component, AK4458_02_CONTROL3,
 			    AK4458_SLOW_MASK,
 			    (ak4458->digfil & 0x01));
 
 	/* write SSLOW bit */
-	snd_soc_update_bits(codec, AK4458_05_CONTROL4,
+	snd_soc_component_update_bits(component, AK4458_05_CONTROL4,
 			    AK4458_SSLOW_MASK,
 			    ((ak4458->digfil & 0x04) >> 2));
 
@@ -259,17 +259,17 @@ static int set_digfil(struct snd_kcontrol *kcontrol,
 	{"AK4458 AOUTD",	NULL,	"AK4458 DAC4"},
 };
 
-static int ak4458_rstn_control(struct snd_soc_codec *codec, int bit)
+static int ak4458_rstn_control(struct snd_soc_component *component, int bit)
 {
 	int ret;
 
 	if (bit)
-		ret = snd_soc_update_bits(codec,
+		ret = snd_soc_component_update_bits(component,
 					  AK4458_00_CONTROL1,
 					  AK4458_RSTN_MASK,
 					  0x1);
 	else
-		ret = snd_soc_update_bits(codec,
+		ret = snd_soc_component_update_bits(component,
 					  AK4458_00_CONTROL1,
 					  AK4458_RSTN_MASK,
 					  0x0);
@@ -280,8 +280,8 @@ static int ak4458_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 ak4458_priv *ak4458 = snd_soc_codec_get_drvdata(codec);
+	struct snd_soc_component *component = dai->component;
+	struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
 	int pcm_width = max(params_physical_width(params), ak4458->slot_width);
 	int nfs1;
 	u8 format;
@@ -290,7 +290,7 @@ static int ak4458_hw_params(struct snd_pcm_substream *substream,
 	ak4458->fs = nfs1;
 
 	/* Master Clock Frequency Auto Setting Mode Enable */
-	snd_soc_update_bits(codec, AK4458_00_CONTROL1, 0x80, 0x80);
+	snd_soc_component_update_bits(component, AK4458_00_CONTROL1, 0x80, 0x80);
 
 	switch (pcm_width) {
 	case 16:
@@ -321,19 +321,19 @@ static int ak4458_hw_params(struct snd_pcm_substream *substream,
 		return -EINVAL;
 	}
 
-	snd_soc_update_bits(codec, AK4458_00_CONTROL1,
+	snd_soc_component_update_bits(component, AK4458_00_CONTROL1,
 			    AK4458_DIF_MASK, format);
 
-	ak4458_rstn_control(codec, 0);
-	ak4458_rstn_control(codec, 1);
+	ak4458_rstn_control(component, 0);
+	ak4458_rstn_control(component, 1);
 
 	return 0;
 }
 
 static int ak4458_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 {
-	struct snd_soc_codec *codec = dai->codec;
-	struct ak4458_priv *ak4458 = snd_soc_codec_get_drvdata(codec);
+	struct snd_soc_component *component = dai->component;
+	struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
 
 	switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
 	case SND_SOC_DAIFMT_CBS_CFS: /* Slave Mode */
@@ -342,7 +342,7 @@ static int ak4458_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 	case SND_SOC_DAIFMT_CBS_CFM:
 	case SND_SOC_DAIFMT_CBM_CFS:
 	default:
-		dev_err(codec->dev, "Master mode unsupported\n");
+		dev_err(component->dev, "Master mode unsupported\n");
 		return -EINVAL;
 	}
 
@@ -354,13 +354,13 @@ static int ak4458_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 		ak4458->fmt = fmt & SND_SOC_DAIFMT_FORMAT_MASK;
 		break;
 	default:
-		dev_err(codec->dev, "Audio format 0x%02X unsupported\n",
+		dev_err(component->dev, "Audio format 0x%02X unsupported\n",
 			fmt & SND_SOC_DAIFMT_FORMAT_MASK);
 		return -EINVAL;
 	}
 
-	ak4458_rstn_control(codec, 0);
-	ak4458_rstn_control(codec, 1);
+	ak4458_rstn_control(component, 0);
+	ak4458_rstn_control(component, 1);
 
 	return 0;
 }
@@ -369,27 +369,27 @@ static int ak4458_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 
 static int ak4458_set_dai_mute(struct snd_soc_dai *dai, int mute)
 {
-	struct snd_soc_codec *codec = dai->codec;
-	struct ak4458_priv *ak4458 = snd_soc_codec_get_drvdata(codec);
+	struct snd_soc_component *component = dai->component;
+	struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
 	int nfs, ndt, ret, reg;
 	int ats;
 
 	nfs = ak4458->fs;
 
-	reg = snd_soc_read(codec, AK4458_0B_CONTROL7);
+	reg = snd_soc_component_read32(component, AK4458_0B_CONTROL7);
 	ats = (reg & AK4458_ATS_MASK) >> AK4458_ATS_SHIFT;
 
 	ndt = att_speed[ats] / (nfs / 1000);
 
 	if (mute) {
-		ret = snd_soc_update_bits(codec, AK4458_01_CONTROL2,  0x01, 1);
+		ret = snd_soc_component_update_bits(component, AK4458_01_CONTROL2,  0x01, 1);
 		mdelay(ndt);
 		if (ak4458->mute_gpiod)
 			gpiod_set_value_cansleep(ak4458->mute_gpiod, 1);
 	} else {
 		if (ak4458->mute_gpiod)
 			gpiod_set_value_cansleep(ak4458->mute_gpiod, 0);
-		ret = snd_soc_update_bits(codec, AK4458_01_CONTROL2, 0x01, 0);
+		ret = snd_soc_component_update_bits(component, AK4458_01_CONTROL2, 0x01, 0);
 		mdelay(ndt);
 	}
 
@@ -399,8 +399,8 @@ static int ak4458_set_dai_mute(struct snd_soc_dai *dai, int mute)
 static int ak4458_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 ak4458_priv *ak4458 = snd_soc_codec_get_drvdata(codec);
+	struct snd_soc_component *component = dai->component;
+	struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
 	int mode;
 
 	ak4458->slots = slots;
@@ -421,7 +421,7 @@ static int ak4458_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
 		break;
 	}
 
-	snd_soc_update_bits(codec, AK4458_0A_CONTROL6,
+	snd_soc_component_update_bits(component, AK4458_0A_CONTROL6,
 			    AK4458_MODE_MASK,
 			    mode);
 
@@ -493,9 +493,9 @@ static void ak4458_power_on(struct ak4458_priv *ak4458)
 	}
 }
 
-static void ak4458_init(struct snd_soc_codec *codec)
+static void ak4458_init(struct snd_soc_component *component)
 {
-	struct ak4458_priv *ak4458 = snd_soc_codec_get_drvdata(codec);
+	struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
 
 	/* External Mute ON */
 	if (ak4458->mute_gpiod)
@@ -503,30 +503,28 @@ static void ak4458_init(struct snd_soc_codec *codec)
 
 	ak4458_power_on(ak4458);
 
-	snd_soc_update_bits(codec, AK4458_00_CONTROL1,
+	snd_soc_component_update_bits(component, AK4458_00_CONTROL1,
 			    0x80, 0x80);   /* ACKS bit = 1; 10000000 */
 
-	ak4458_rstn_control(codec, 1);
+	ak4458_rstn_control(component, 1);
 }
 
-static int ak4458_probe(struct snd_soc_codec *codec)
+static int ak4458_probe(struct snd_soc_component *component)
 {
-	struct ak4458_priv *ak4458 = snd_soc_codec_get_drvdata(codec);
+	struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
 
-	ak4458_init(codec);
+	ak4458_init(component);
 
 	ak4458->fs = 48000;
 
 	return 0;
 }
 
-static int ak4458_remove(struct snd_soc_codec *codec)
+static void ak4458_remove(struct snd_soc_component *component)
 {
-	struct ak4458_priv *ak4458 = snd_soc_codec_get_drvdata(codec);
+	struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
 
 	ak4458_power_off(ak4458);
-
-	return 0;
 }
 
 #ifdef CONFIG_PM
@@ -561,17 +559,19 @@ static int __maybe_unused ak4458_runtime_resume(struct device *dev)
 }
 #endif /* CONFIG_PM */
 
-struct snd_soc_codec_driver soc_codec_dev_ak4458 = {
-	.probe = ak4458_probe,
-	.remove = ak4458_remove,
-	.component_driver = {
-		.controls = ak4458_snd_controls,
-		.num_controls = ARRAY_SIZE(ak4458_snd_controls),
-		.dapm_widgets = ak4458_dapm_widgets,
-		.num_dapm_widgets = ARRAY_SIZE(ak4458_dapm_widgets),
-		.dapm_routes = ak4458_intercon,
-		.num_dapm_routes = ARRAY_SIZE(ak4458_intercon),
-	},
+struct snd_soc_component_driver soc_codec_dev_ak4458 = {
+	.probe			= ak4458_probe,
+	.remove			= ak4458_remove,
+	.controls		= ak4458_snd_controls,
+	.num_controls		= ARRAY_SIZE(ak4458_snd_controls),
+	.dapm_widgets		= ak4458_dapm_widgets,
+	.num_dapm_widgets	= ARRAY_SIZE(ak4458_dapm_widgets),
+	.dapm_routes		= ak4458_intercon,
+	.num_dapm_routes	= ARRAY_SIZE(ak4458_intercon),
+	.idle_bias_on		= 1,
+	.use_pmdown_time	= 1,
+	.endianness		= 1,
+	.non_legacy_dai_naming	= 1,
 };
 
 static const struct regmap_config ak4458_regmap = {
@@ -616,7 +616,7 @@ static int ak4458_i2c_probe(struct i2c_client *i2c)
 	if (IS_ERR(ak4458->mute_gpiod))
 		return PTR_ERR(ak4458->mute_gpiod);
 
-	ret = snd_soc_register_codec(ak4458->dev, &soc_codec_dev_ak4458,
+	ret = devm_snd_soc_register_component(ak4458->dev, &soc_codec_dev_ak4458,
 				     &ak4458_dai, 1);
 	if (ret < 0) {
 		dev_err(ak4458->dev, "Failed to register CODEC: %d\n", ret);
@@ -630,7 +630,6 @@ static int ak4458_i2c_probe(struct i2c_client *i2c)
 
 static int ak4458_i2c_remove(struct i2c_client *i2c)
 {
-	snd_soc_unregister_codec(&i2c->dev);
 	pm_runtime_disable(&i2c->dev);
 
 	return 0;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 4/4 v2] ASoC: ak5558: replace codec to component
  2018-02-19  4:14 [PATCH 0/4 v2] ASoC: missing replace codec to component Kuninori Morimoto
                   ` (2 preceding siblings ...)
  2018-02-19  4:16 ` [PATCH 3/4 v2] ASoC: ak4458: " Kuninori Morimoto
@ 2018-02-19  4:17 ` Kuninori Morimoto
  2018-02-19 12:18   ` Applied "ASoC: ak5558: replace codec to component" to the asoc tree Mark Brown
  3 siblings, 1 reply; 7+ messages in thread
From: Kuninori Morimoto @ 2018-02-19  4:17 UTC (permalink / raw)
  To: Mark Brown
  Cc: Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Shengjiu Wang,
	Cosmin-Gabriel Samoila, alsa-devel, linux-kernel, Mihai Serban,
	Junichi Wakasugi, Fabio Estevam, Daniel Baluta,
	Sathyanarayana Nujella, Pierre-Louis Bossart, Harsha Priya,
	Naveen Manohar, Alex Deucher, Akshu Agrawal, Dylan Reid


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	->	.use_pmdown_time = 1
	-			->	.endianness = 1
	-			->	.non_legacy_dai_naming = 1

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
v1 -> v2

 - solve compile issue on .remove

 sound/soc/codecs/ak5558.c | 67 +++++++++++++++++++++++------------------------
 1 file changed, 33 insertions(+), 34 deletions(-)

diff --git a/sound/soc/codecs/ak5558.c b/sound/soc/codecs/ak5558.c
index 225173f..f224831 100644
--- a/sound/soc/codecs/ak5558.c
+++ b/sound/soc/codecs/ak5558.c
@@ -25,7 +25,7 @@
 
 /* AK5558 Codec Private Data */
 struct ak5558_priv {
-	struct snd_soc_codec codec;
+	struct snd_soc_component component;
 	struct regmap *regmap;
 	struct i2c_client *i2c;
 	struct gpio_desc *reset_gpiod; /* Reset & Power down GPIO */
@@ -116,9 +116,9 @@ struct ak5558_priv {
 	{"SDTO", NULL, "ADC Ch8"},
 };
 
-static int ak5558_set_mcki(struct snd_soc_codec *codec)
+static int ak5558_set_mcki(struct snd_soc_component *component)
 {
-	return snd_soc_update_bits(codec, AK5558_02_CONTROL1, AK5558_CKS,
+	return snd_soc_component_update_bits(component, AK5558_02_CONTROL1, AK5558_CKS,
 				   AK5558_CKS_AUTO);
 }
 
@@ -126,13 +126,13 @@ static int ak5558_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 ak5558_priv *ak5558 = snd_soc_codec_get_drvdata(codec);
+	struct snd_soc_component *component = dai->component;
+	struct ak5558_priv *ak5558 = snd_soc_component_get_drvdata(component);
 	u8 bits;
 	int pcm_width = max(params_physical_width(params), ak5558->slot_width);
 
 	/* set master/slave audio interface */
-	bits = snd_soc_read(codec, AK5558_02_CONTROL1);
+	bits = snd_soc_component_read32(component, AK5558_02_CONTROL1);
 	bits &= ~AK5558_BITS;
 
 	switch (pcm_width) {
@@ -146,14 +146,14 @@ static int ak5558_hw_params(struct snd_pcm_substream *substream,
 		return -EINVAL;
 	}
 
-	snd_soc_update_bits(codec, AK5558_02_CONTROL1, AK5558_BITS, bits);
+	snd_soc_component_update_bits(component, AK5558_02_CONTROL1, AK5558_BITS, bits);
 
 	return 0;
 }
 
 static int ak5558_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 {
-	struct snd_soc_codec *codec = dai->codec;
+	struct snd_soc_component *component = dai->component;
 	u8 format;
 
 	switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
@@ -169,7 +169,7 @@ static int ak5558_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 	}
 
 	/* set master/slave audio interface */
-	format = snd_soc_read(codec, AK5558_02_CONTROL1);
+	format = snd_soc_component_read32(component, AK5558_02_CONTROL1);
 	format &= ~AK5558_DIF;
 
 	switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
@@ -186,7 +186,7 @@ static int ak5558_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 		return -EINVAL;
 	}
 
-	snd_soc_update_bits(codec, AK5558_02_CONTROL1, AK5558_DIF, format);
+	snd_soc_component_update_bits(component, AK5558_02_CONTROL1, AK5558_DIF, format);
 
 	return 0;
 }
@@ -195,8 +195,8 @@ static int ak5558_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 ak5558_priv *ak5558 = snd_soc_codec_get_drvdata(codec);
+	struct snd_soc_component *component = dai->component;
+	struct ak5558_priv *ak5558 = snd_soc_component_get_drvdata(component);
 	int tdm_mode;
 
 	ak5558->slots = slots;
@@ -217,7 +217,7 @@ static int ak5558_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
 		break;
 	}
 
-	snd_soc_update_bits(codec, AK5558_03_CONTROL2, AK5558_MODE_BITS,
+	snd_soc_component_update_bits(component, AK5558_03_CONTROL2, AK5558_MODE_BITS,
 			    tdm_mode);
 	return 0;
 }
@@ -285,21 +285,19 @@ static void ak5558_power_on(struct ak5558_priv *ak5558)
 	usleep_range(1000, 2000);
 }
 
-static int ak5558_probe(struct snd_soc_codec *codec)
+static int ak5558_probe(struct snd_soc_component *component)
 {
-	struct ak5558_priv *ak5558 = snd_soc_codec_get_drvdata(codec);
+	struct ak5558_priv *ak5558 = snd_soc_component_get_drvdata(component);
 
 	ak5558_power_on(ak5558);
-	return ak5558_set_mcki(codec);
+	return ak5558_set_mcki(component);
 }
 
-static int ak5558_remove(struct snd_soc_codec *codec)
+static void ak5558_remove(struct snd_soc_component *component)
 {
-	struct ak5558_priv *ak5558 = snd_soc_codec_get_drvdata(codec);
+	struct ak5558_priv *ak5558 = snd_soc_component_get_drvdata(component);
 
 	ak5558_power_off(ak5558);
-
-	return 0;
 }
 
 static int __maybe_unused ak5558_runtime_suspend(struct device *dev)
@@ -331,18 +329,19 @@ static int __maybe_unused ak5558_runtime_resume(struct device *dev)
 				pm_runtime_force_resume)
 };
 
-struct snd_soc_codec_driver soc_codec_dev_ak5558 = {
-	.probe = ak5558_probe,
-	.remove = ak5558_remove,
-
-	.component_driver = {
-		.controls = ak5558_snd_controls,
-		.num_controls = ARRAY_SIZE(ak5558_snd_controls),
-		.dapm_widgets = ak5558_dapm_widgets,
-		.num_dapm_widgets = ARRAY_SIZE(ak5558_dapm_widgets),
-		.dapm_routes = ak5558_intercon,
-		.num_dapm_routes = ARRAY_SIZE(ak5558_intercon),
-	},
+struct snd_soc_component_driver soc_codec_dev_ak5558 = {
+	.probe			= ak5558_probe,
+	.remove			= ak5558_remove,
+	.controls		= ak5558_snd_controls,
+	.num_controls		= ARRAY_SIZE(ak5558_snd_controls),
+	.dapm_widgets		= ak5558_dapm_widgets,
+	.num_dapm_widgets	= ARRAY_SIZE(ak5558_dapm_widgets),
+	.dapm_routes		= ak5558_intercon,
+	.num_dapm_routes	= ARRAY_SIZE(ak5558_intercon),
+	.idle_bias_on		= 1,
+	.use_pmdown_time	= 1,
+	.endianness		= 1,
+	.non_legacy_dai_naming	= 1,
 };
 
 static const struct regmap_config ak5558_regmap = {
@@ -376,7 +375,8 @@ static int ak5558_i2c_probe(struct i2c_client *i2c)
 	if (IS_ERR(ak5558->reset_gpiod))
 		return PTR_ERR(ak5558->reset_gpiod);
 
-	ret = snd_soc_register_codec(&i2c->dev, &soc_codec_dev_ak5558,
+	ret = devm_snd_soc_register_component(&i2c->dev,
+				     &soc_codec_dev_ak5558,
 				     &ak5558_dai, 1);
 	if (ret)
 		return ret;
@@ -388,7 +388,6 @@ static int ak5558_i2c_probe(struct i2c_client *i2c)
 
 static int ak5558_i2c_remove(struct i2c_client *i2c)
 {
-	snd_soc_unregister_codec(&i2c->dev);
 	pm_runtime_disable(&i2c->dev);
 
 	return 0;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Applied "ASoC: ak5558: replace codec to component" to the asoc tree
  2018-02-19  4:17 ` [PATCH 4/4 v2] ASoC: ak5558: replace codec to component Kuninori Morimoto
@ 2018-02-19 12:18   ` Mark Brown
  0 siblings, 0 replies; 7+ messages in thread
From: Mark Brown @ 2018-02-19 12:18 UTC (permalink / raw)
  To: Kuninori Morimoto
  Cc: Mark Brown, Mark Brown, Pierre-Louis Bossart, alsa-devel,
	Akshu Agrawal, Harsha Priya, linux-kernel, Shengjiu Wang,
	Takashi Iwai, Junichi Wakasugi, Liam Girdwood, Mihai Serban,
	Sathyanarayana Nujella, Cosmin-Gabriel Samoila, Naveen Manohar,
	Dylan Reid, Daniel Baluta, Fabio Estevam, Alex Deucher,
	alsa-devel

The patch

   ASoC: ak5558: 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 3f15aa198fb88a6a0db8c7ba136637d566effb55 Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Mon, 19 Feb 2018 04:17:16 +0000
Subject: [PATCH] ASoC: ak5558: 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 = 0	->	.idle_bias_on = 1
	.ignore_pmdown_time = 0	->	.use_pmdown_time = 1
	-			->	.endianness = 1
	-			->	.non_legacy_dai_naming = 1

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/codecs/ak5558.c | 67 +++++++++++++++++++++++------------------------
 1 file changed, 33 insertions(+), 34 deletions(-)

diff --git a/sound/soc/codecs/ak5558.c b/sound/soc/codecs/ak5558.c
index 225173ff4efa..f2248315677e 100644
--- a/sound/soc/codecs/ak5558.c
+++ b/sound/soc/codecs/ak5558.c
@@ -25,7 +25,7 @@
 
 /* AK5558 Codec Private Data */
 struct ak5558_priv {
-	struct snd_soc_codec codec;
+	struct snd_soc_component component;
 	struct regmap *regmap;
 	struct i2c_client *i2c;
 	struct gpio_desc *reset_gpiod; /* Reset & Power down GPIO */
@@ -116,9 +116,9 @@ static const struct snd_soc_dapm_route ak5558_intercon[] = {
 	{"SDTO", NULL, "ADC Ch8"},
 };
 
-static int ak5558_set_mcki(struct snd_soc_codec *codec)
+static int ak5558_set_mcki(struct snd_soc_component *component)
 {
-	return snd_soc_update_bits(codec, AK5558_02_CONTROL1, AK5558_CKS,
+	return snd_soc_component_update_bits(component, AK5558_02_CONTROL1, AK5558_CKS,
 				   AK5558_CKS_AUTO);
 }
 
@@ -126,13 +126,13 @@ static int ak5558_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 ak5558_priv *ak5558 = snd_soc_codec_get_drvdata(codec);
+	struct snd_soc_component *component = dai->component;
+	struct ak5558_priv *ak5558 = snd_soc_component_get_drvdata(component);
 	u8 bits;
 	int pcm_width = max(params_physical_width(params), ak5558->slot_width);
 
 	/* set master/slave audio interface */
-	bits = snd_soc_read(codec, AK5558_02_CONTROL1);
+	bits = snd_soc_component_read32(component, AK5558_02_CONTROL1);
 	bits &= ~AK5558_BITS;
 
 	switch (pcm_width) {
@@ -146,14 +146,14 @@ static int ak5558_hw_params(struct snd_pcm_substream *substream,
 		return -EINVAL;
 	}
 
-	snd_soc_update_bits(codec, AK5558_02_CONTROL1, AK5558_BITS, bits);
+	snd_soc_component_update_bits(component, AK5558_02_CONTROL1, AK5558_BITS, bits);
 
 	return 0;
 }
 
 static int ak5558_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 {
-	struct snd_soc_codec *codec = dai->codec;
+	struct snd_soc_component *component = dai->component;
 	u8 format;
 
 	switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
@@ -169,7 +169,7 @@ static int ak5558_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 	}
 
 	/* set master/slave audio interface */
-	format = snd_soc_read(codec, AK5558_02_CONTROL1);
+	format = snd_soc_component_read32(component, AK5558_02_CONTROL1);
 	format &= ~AK5558_DIF;
 
 	switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
@@ -186,7 +186,7 @@ static int ak5558_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 		return -EINVAL;
 	}
 
-	snd_soc_update_bits(codec, AK5558_02_CONTROL1, AK5558_DIF, format);
+	snd_soc_component_update_bits(component, AK5558_02_CONTROL1, AK5558_DIF, format);
 
 	return 0;
 }
@@ -195,8 +195,8 @@ static int ak5558_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 ak5558_priv *ak5558 = snd_soc_codec_get_drvdata(codec);
+	struct snd_soc_component *component = dai->component;
+	struct ak5558_priv *ak5558 = snd_soc_component_get_drvdata(component);
 	int tdm_mode;
 
 	ak5558->slots = slots;
@@ -217,7 +217,7 @@ static int ak5558_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
 		break;
 	}
 
-	snd_soc_update_bits(codec, AK5558_03_CONTROL2, AK5558_MODE_BITS,
+	snd_soc_component_update_bits(component, AK5558_03_CONTROL2, AK5558_MODE_BITS,
 			    tdm_mode);
 	return 0;
 }
@@ -285,21 +285,19 @@ static void ak5558_power_on(struct ak5558_priv *ak5558)
 	usleep_range(1000, 2000);
 }
 
-static int ak5558_probe(struct snd_soc_codec *codec)
+static int ak5558_probe(struct snd_soc_component *component)
 {
-	struct ak5558_priv *ak5558 = snd_soc_codec_get_drvdata(codec);
+	struct ak5558_priv *ak5558 = snd_soc_component_get_drvdata(component);
 
 	ak5558_power_on(ak5558);
-	return ak5558_set_mcki(codec);
+	return ak5558_set_mcki(component);
 }
 
-static int ak5558_remove(struct snd_soc_codec *codec)
+static void ak5558_remove(struct snd_soc_component *component)
 {
-	struct ak5558_priv *ak5558 = snd_soc_codec_get_drvdata(codec);
+	struct ak5558_priv *ak5558 = snd_soc_component_get_drvdata(component);
 
 	ak5558_power_off(ak5558);
-
-	return 0;
 }
 
 static int __maybe_unused ak5558_runtime_suspend(struct device *dev)
@@ -331,18 +329,19 @@ const struct dev_pm_ops ak5558_pm = {
 				pm_runtime_force_resume)
 };
 
-struct snd_soc_codec_driver soc_codec_dev_ak5558 = {
-	.probe = ak5558_probe,
-	.remove = ak5558_remove,
-
-	.component_driver = {
-		.controls = ak5558_snd_controls,
-		.num_controls = ARRAY_SIZE(ak5558_snd_controls),
-		.dapm_widgets = ak5558_dapm_widgets,
-		.num_dapm_widgets = ARRAY_SIZE(ak5558_dapm_widgets),
-		.dapm_routes = ak5558_intercon,
-		.num_dapm_routes = ARRAY_SIZE(ak5558_intercon),
-	},
+struct snd_soc_component_driver soc_codec_dev_ak5558 = {
+	.probe			= ak5558_probe,
+	.remove			= ak5558_remove,
+	.controls		= ak5558_snd_controls,
+	.num_controls		= ARRAY_SIZE(ak5558_snd_controls),
+	.dapm_widgets		= ak5558_dapm_widgets,
+	.num_dapm_widgets	= ARRAY_SIZE(ak5558_dapm_widgets),
+	.dapm_routes		= ak5558_intercon,
+	.num_dapm_routes	= ARRAY_SIZE(ak5558_intercon),
+	.idle_bias_on		= 1,
+	.use_pmdown_time	= 1,
+	.endianness		= 1,
+	.non_legacy_dai_naming	= 1,
 };
 
 static const struct regmap_config ak5558_regmap = {
@@ -376,7 +375,8 @@ static int ak5558_i2c_probe(struct i2c_client *i2c)
 	if (IS_ERR(ak5558->reset_gpiod))
 		return PTR_ERR(ak5558->reset_gpiod);
 
-	ret = snd_soc_register_codec(&i2c->dev, &soc_codec_dev_ak5558,
+	ret = devm_snd_soc_register_component(&i2c->dev,
+				     &soc_codec_dev_ak5558,
 				     &ak5558_dai, 1);
 	if (ret)
 		return ret;
@@ -388,7 +388,6 @@ static int ak5558_i2c_probe(struct i2c_client *i2c)
 
 static int ak5558_i2c_remove(struct i2c_client *i2c)
 {
-	snd_soc_unregister_codec(&i2c->dev);
 	pm_runtime_disable(&i2c->dev);
 
 	return 0;
-- 
2.16.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Applied "ASoC: ak4458: replace codec to component" to the asoc tree
  2018-02-19  4:16 ` [PATCH 3/4 v2] ASoC: ak4458: " Kuninori Morimoto
@ 2018-02-19 12:19   ` Mark Brown
  0 siblings, 0 replies; 7+ messages in thread
From: Mark Brown @ 2018-02-19 12:19 UTC (permalink / raw)
  To: Kuninori Morimoto
  Cc: Mark Brown, Mark Brown, Pierre-Louis Bossart, alsa-devel,
	Akshu Agrawal, Harsha Priya, linux-kernel, Shengjiu Wang,
	Takashi Iwai, Junichi Wakasugi, Liam Girdwood, Mihai Serban,
	Sathyanarayana Nujella, Cosmin-Gabriel Samoila, Naveen Manohar,
	Dylan Reid, Daniel Baluta, Fabio Estevam, Alex Deucher,
	alsa-devel

The patch

   ASoC: ak4458: 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 c988e67507934e0198233729b7f326154b211a7f Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Mon, 19 Feb 2018 04:16:42 +0000
Subject: [PATCH] ASoC: ak4458: 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 = 0	->	.idle_bias_on = 1
	.ignore_pmdown_time = 0	->	.use_pmdown_time = 1
	-			->	.endianness = 1
	-			->	.non_legacy_dai_naming = 1

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/codecs/ak4458.c | 107 +++++++++++++++++++++++-----------------------
 1 file changed, 53 insertions(+), 54 deletions(-)

diff --git a/sound/soc/codecs/ak4458.c b/sound/soc/codecs/ak4458.c
index c9762162b53f..d2815ac9cffa 100644
--- a/sound/soc/codecs/ak4458.c
+++ b/sound/soc/codecs/ak4458.c
@@ -167,8 +167,8 @@ static const struct soc_enum ak4458_dif_enum =
 static int get_digfil(struct snd_kcontrol *kcontrol,
 		      struct snd_ctl_elem_value *ucontrol)
 {
-	struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
-	struct ak4458_priv *ak4458 = snd_soc_codec_get_drvdata(codec);
+	struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
+	struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
 
 	ucontrol->value.enumerated.item[0] = ak4458->digfil;
 
@@ -178,8 +178,8 @@ static int get_digfil(struct snd_kcontrol *kcontrol,
 static int set_digfil(struct snd_kcontrol *kcontrol,
 		      struct snd_ctl_elem_value *ucontrol)
 {
-	struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
-	struct ak4458_priv *ak4458 = snd_soc_codec_get_drvdata(codec);
+	struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
+	struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
 	int num;
 
 	num = ucontrol->value.enumerated.item[0];
@@ -189,17 +189,17 @@ static int set_digfil(struct snd_kcontrol *kcontrol,
 	ak4458->digfil = num;
 
 	/* write SD bit */
-	snd_soc_update_bits(codec, AK4458_01_CONTROL2,
+	snd_soc_component_update_bits(component, AK4458_01_CONTROL2,
 			    AK4458_SD_MASK,
 			    ((ak4458->digfil & 0x02) << 4));
 
 	/* write SLOW bit */
-	snd_soc_update_bits(codec, AK4458_02_CONTROL3,
+	snd_soc_component_update_bits(component, AK4458_02_CONTROL3,
 			    AK4458_SLOW_MASK,
 			    (ak4458->digfil & 0x01));
 
 	/* write SSLOW bit */
-	snd_soc_update_bits(codec, AK4458_05_CONTROL4,
+	snd_soc_component_update_bits(component, AK4458_05_CONTROL4,
 			    AK4458_SSLOW_MASK,
 			    ((ak4458->digfil & 0x04) >> 2));
 
@@ -259,17 +259,17 @@ static const struct snd_soc_dapm_route ak4458_intercon[] = {
 	{"AK4458 AOUTD",	NULL,	"AK4458 DAC4"},
 };
 
-static int ak4458_rstn_control(struct snd_soc_codec *codec, int bit)
+static int ak4458_rstn_control(struct snd_soc_component *component, int bit)
 {
 	int ret;
 
 	if (bit)
-		ret = snd_soc_update_bits(codec,
+		ret = snd_soc_component_update_bits(component,
 					  AK4458_00_CONTROL1,
 					  AK4458_RSTN_MASK,
 					  0x1);
 	else
-		ret = snd_soc_update_bits(codec,
+		ret = snd_soc_component_update_bits(component,
 					  AK4458_00_CONTROL1,
 					  AK4458_RSTN_MASK,
 					  0x0);
@@ -280,8 +280,8 @@ static int ak4458_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 ak4458_priv *ak4458 = snd_soc_codec_get_drvdata(codec);
+	struct snd_soc_component *component = dai->component;
+	struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
 	int pcm_width = max(params_physical_width(params), ak4458->slot_width);
 	int nfs1;
 	u8 format;
@@ -290,7 +290,7 @@ static int ak4458_hw_params(struct snd_pcm_substream *substream,
 	ak4458->fs = nfs1;
 
 	/* Master Clock Frequency Auto Setting Mode Enable */
-	snd_soc_update_bits(codec, AK4458_00_CONTROL1, 0x80, 0x80);
+	snd_soc_component_update_bits(component, AK4458_00_CONTROL1, 0x80, 0x80);
 
 	switch (pcm_width) {
 	case 16:
@@ -321,19 +321,19 @@ static int ak4458_hw_params(struct snd_pcm_substream *substream,
 		return -EINVAL;
 	}
 
-	snd_soc_update_bits(codec, AK4458_00_CONTROL1,
+	snd_soc_component_update_bits(component, AK4458_00_CONTROL1,
 			    AK4458_DIF_MASK, format);
 
-	ak4458_rstn_control(codec, 0);
-	ak4458_rstn_control(codec, 1);
+	ak4458_rstn_control(component, 0);
+	ak4458_rstn_control(component, 1);
 
 	return 0;
 }
 
 static int ak4458_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 {
-	struct snd_soc_codec *codec = dai->codec;
-	struct ak4458_priv *ak4458 = snd_soc_codec_get_drvdata(codec);
+	struct snd_soc_component *component = dai->component;
+	struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
 
 	switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
 	case SND_SOC_DAIFMT_CBS_CFS: /* Slave Mode */
@@ -342,7 +342,7 @@ static int ak4458_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 	case SND_SOC_DAIFMT_CBS_CFM:
 	case SND_SOC_DAIFMT_CBM_CFS:
 	default:
-		dev_err(codec->dev, "Master mode unsupported\n");
+		dev_err(component->dev, "Master mode unsupported\n");
 		return -EINVAL;
 	}
 
@@ -354,13 +354,13 @@ static int ak4458_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 		ak4458->fmt = fmt & SND_SOC_DAIFMT_FORMAT_MASK;
 		break;
 	default:
-		dev_err(codec->dev, "Audio format 0x%02X unsupported\n",
+		dev_err(component->dev, "Audio format 0x%02X unsupported\n",
 			fmt & SND_SOC_DAIFMT_FORMAT_MASK);
 		return -EINVAL;
 	}
 
-	ak4458_rstn_control(codec, 0);
-	ak4458_rstn_control(codec, 1);
+	ak4458_rstn_control(component, 0);
+	ak4458_rstn_control(component, 1);
 
 	return 0;
 }
@@ -369,27 +369,27 @@ static const int att_speed[] = { 4080, 2040, 510, 255 };
 
 static int ak4458_set_dai_mute(struct snd_soc_dai *dai, int mute)
 {
-	struct snd_soc_codec *codec = dai->codec;
-	struct ak4458_priv *ak4458 = snd_soc_codec_get_drvdata(codec);
+	struct snd_soc_component *component = dai->component;
+	struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
 	int nfs, ndt, ret, reg;
 	int ats;
 
 	nfs = ak4458->fs;
 
-	reg = snd_soc_read(codec, AK4458_0B_CONTROL7);
+	reg = snd_soc_component_read32(component, AK4458_0B_CONTROL7);
 	ats = (reg & AK4458_ATS_MASK) >> AK4458_ATS_SHIFT;
 
 	ndt = att_speed[ats] / (nfs / 1000);
 
 	if (mute) {
-		ret = snd_soc_update_bits(codec, AK4458_01_CONTROL2,  0x01, 1);
+		ret = snd_soc_component_update_bits(component, AK4458_01_CONTROL2,  0x01, 1);
 		mdelay(ndt);
 		if (ak4458->mute_gpiod)
 			gpiod_set_value_cansleep(ak4458->mute_gpiod, 1);
 	} else {
 		if (ak4458->mute_gpiod)
 			gpiod_set_value_cansleep(ak4458->mute_gpiod, 0);
-		ret = snd_soc_update_bits(codec, AK4458_01_CONTROL2, 0x01, 0);
+		ret = snd_soc_component_update_bits(component, AK4458_01_CONTROL2, 0x01, 0);
 		mdelay(ndt);
 	}
 
@@ -399,8 +399,8 @@ static int ak4458_set_dai_mute(struct snd_soc_dai *dai, int mute)
 static int ak4458_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 ak4458_priv *ak4458 = snd_soc_codec_get_drvdata(codec);
+	struct snd_soc_component *component = dai->component;
+	struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
 	int mode;
 
 	ak4458->slots = slots;
@@ -421,7 +421,7 @@ static int ak4458_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
 		break;
 	}
 
-	snd_soc_update_bits(codec, AK4458_0A_CONTROL6,
+	snd_soc_component_update_bits(component, AK4458_0A_CONTROL6,
 			    AK4458_MODE_MASK,
 			    mode);
 
@@ -493,9 +493,9 @@ static void ak4458_power_on(struct ak4458_priv *ak4458)
 	}
 }
 
-static void ak4458_init(struct snd_soc_codec *codec)
+static void ak4458_init(struct snd_soc_component *component)
 {
-	struct ak4458_priv *ak4458 = snd_soc_codec_get_drvdata(codec);
+	struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
 
 	/* External Mute ON */
 	if (ak4458->mute_gpiod)
@@ -503,30 +503,28 @@ static void ak4458_init(struct snd_soc_codec *codec)
 
 	ak4458_power_on(ak4458);
 
-	snd_soc_update_bits(codec, AK4458_00_CONTROL1,
+	snd_soc_component_update_bits(component, AK4458_00_CONTROL1,
 			    0x80, 0x80);   /* ACKS bit = 1; 10000000 */
 
-	ak4458_rstn_control(codec, 1);
+	ak4458_rstn_control(component, 1);
 }
 
-static int ak4458_probe(struct snd_soc_codec *codec)
+static int ak4458_probe(struct snd_soc_component *component)
 {
-	struct ak4458_priv *ak4458 = snd_soc_codec_get_drvdata(codec);
+	struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
 
-	ak4458_init(codec);
+	ak4458_init(component);
 
 	ak4458->fs = 48000;
 
 	return 0;
 }
 
-static int ak4458_remove(struct snd_soc_codec *codec)
+static void ak4458_remove(struct snd_soc_component *component)
 {
-	struct ak4458_priv *ak4458 = snd_soc_codec_get_drvdata(codec);
+	struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
 
 	ak4458_power_off(ak4458);
-
-	return 0;
 }
 
 #ifdef CONFIG_PM
@@ -561,17 +559,19 @@ static int __maybe_unused ak4458_runtime_resume(struct device *dev)
 }
 #endif /* CONFIG_PM */
 
-struct snd_soc_codec_driver soc_codec_dev_ak4458 = {
-	.probe = ak4458_probe,
-	.remove = ak4458_remove,
-	.component_driver = {
-		.controls = ak4458_snd_controls,
-		.num_controls = ARRAY_SIZE(ak4458_snd_controls),
-		.dapm_widgets = ak4458_dapm_widgets,
-		.num_dapm_widgets = ARRAY_SIZE(ak4458_dapm_widgets),
-		.dapm_routes = ak4458_intercon,
-		.num_dapm_routes = ARRAY_SIZE(ak4458_intercon),
-	},
+struct snd_soc_component_driver soc_codec_dev_ak4458 = {
+	.probe			= ak4458_probe,
+	.remove			= ak4458_remove,
+	.controls		= ak4458_snd_controls,
+	.num_controls		= ARRAY_SIZE(ak4458_snd_controls),
+	.dapm_widgets		= ak4458_dapm_widgets,
+	.num_dapm_widgets	= ARRAY_SIZE(ak4458_dapm_widgets),
+	.dapm_routes		= ak4458_intercon,
+	.num_dapm_routes	= ARRAY_SIZE(ak4458_intercon),
+	.idle_bias_on		= 1,
+	.use_pmdown_time	= 1,
+	.endianness		= 1,
+	.non_legacy_dai_naming	= 1,
 };
 
 static const struct regmap_config ak4458_regmap = {
@@ -616,7 +616,7 @@ static int ak4458_i2c_probe(struct i2c_client *i2c)
 	if (IS_ERR(ak4458->mute_gpiod))
 		return PTR_ERR(ak4458->mute_gpiod);
 
-	ret = snd_soc_register_codec(ak4458->dev, &soc_codec_dev_ak4458,
+	ret = devm_snd_soc_register_component(ak4458->dev, &soc_codec_dev_ak4458,
 				     &ak4458_dai, 1);
 	if (ret < 0) {
 		dev_err(ak4458->dev, "Failed to register CODEC: %d\n", ret);
@@ -630,7 +630,6 @@ static int ak4458_i2c_probe(struct i2c_client *i2c)
 
 static int ak4458_i2c_remove(struct i2c_client *i2c)
 {
-	snd_soc_unregister_codec(&i2c->dev);
 	pm_runtime_disable(&i2c->dev);
 
 	return 0;
-- 
2.16.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-02-19 12:19 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-19  4:14 [PATCH 0/4 v2] ASoC: missing replace codec to component Kuninori Morimoto
2018-02-19  4:15 ` [PATCH 1/4 v2] ASoC: intel: kbl_da7219_max98357: " Kuninori Morimoto
2018-02-19  4:16 ` [PATCH 2/4 v2] ASoC: amd: acp-da7219-max98357: " Kuninori Morimoto
2018-02-19  4:16 ` [PATCH 3/4 v2] ASoC: ak4458: " Kuninori Morimoto
2018-02-19 12:19   ` Applied "ASoC: ak4458: replace codec to component" to the asoc tree Mark Brown
2018-02-19  4:17 ` [PATCH 4/4 v2] ASoC: ak5558: replace codec to component Kuninori Morimoto
2018-02-19 12:18   ` Applied "ASoC: ak5558: replace codec to component" to the asoc tree Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).