ASoC: es8328: replace codec to component
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Mon, 29 Jan 2018 04:32:55 +0000 (04:32 +0000)
committerMark Brown <broonie@kernel.org>
Mon, 12 Feb 2018 10:00:05 +0000 (10:00 +0000)
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/es8328-i2c.c
sound/soc/codecs/es8328-spi.c
sound/soc/codecs/es8328.c

index 318ab28c5351fcd198603b71b427e6972bbc43c5..19baa3260f85fb0b0d50a9562867ca1df798db08 100644 (file)
@@ -39,19 +39,12 @@ static int es8328_i2c_probe(struct i2c_client *i2c,
                        devm_regmap_init_i2c(i2c, &es8328_regmap_config));
 }
 
-static int es8328_i2c_remove(struct i2c_client *i2c)
-{
-       snd_soc_unregister_codec(&i2c->dev);
-       return 0;
-}
-
 static struct i2c_driver es8328_i2c_driver = {
        .driver = {
                .name           = "es8328",
                .of_match_table = es8328_of_match,
        },
        .probe    = es8328_i2c_probe,
-       .remove   = es8328_i2c_remove,
        .id_table = es8328_id,
 };
 
index 8fbd935e1c76c6bf30fae1ec7e319e038d7b48de..d242bd1f7dcc699d3d7ffd89e1dcb24aa2bcd16e 100644 (file)
@@ -28,19 +28,12 @@ static int es8328_spi_probe(struct spi_device *spi)
                        devm_regmap_init_spi(spi, &es8328_regmap_config));
 }
 
-static int es8328_spi_remove(struct spi_device *spi)
-{
-       snd_soc_unregister_codec(&spi->dev);
-       return 0;
-}
-
 static struct spi_driver es8328_spi_driver = {
        .driver = {
                .name           = "es8328",
                .of_match_table = es8328_of_match,
        },
        .probe  = es8328_spi_probe,
-       .remove = es8328_spi_remove,
 };
 
 module_spi_driver(es8328_spi_driver);
index bcdb8914ec16b992e26aecb718e430e6e0477e05..e9fc2fd97d2f4f6b13c46e7b0a58e03d2bc1a7ff 100644 (file)
@@ -116,9 +116,9 @@ static const struct {
        { 48000, ES8328_DACCONTROL6_DEEMPH_48k },
 };
 
-static int es8328_set_deemph(struct snd_soc_codec *codec)
+static int es8328_set_deemph(struct snd_soc_component *component)
 {
-       struct es8328_priv *es8328 = snd_soc_codec_get_drvdata(codec);
+       struct es8328_priv *es8328 = snd_soc_component_get_drvdata(component);
        int val, i, best;
 
        /*
@@ -138,17 +138,17 @@ static int es8328_set_deemph(struct snd_soc_codec *codec)
                val = ES8328_DACCONTROL6_DEEMPH_OFF;
        }
 
-       dev_dbg(codec->dev, "Set deemphasis %d\n", val);
+       dev_dbg(component->dev, "Set deemphasis %d\n", val);
 
-       return snd_soc_update_bits(codec, ES8328_DACCONTROL6,
+       return snd_soc_component_update_bits(component, ES8328_DACCONTROL6,
                        ES8328_DACCONTROL6_DEEMPH_MASK, val);
 }
 
 static int es8328_get_deemph(struct snd_kcontrol *kcontrol,
                             struct snd_ctl_elem_value *ucontrol)
 {
-       struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
-       struct es8328_priv *es8328 = snd_soc_codec_get_drvdata(codec);
+       struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
+       struct es8328_priv *es8328 = snd_soc_component_get_drvdata(component);
 
        ucontrol->value.integer.value[0] = es8328->deemph;
        return 0;
@@ -157,15 +157,15 @@ static int es8328_get_deemph(struct snd_kcontrol *kcontrol,
 static int es8328_put_deemph(struct snd_kcontrol *kcontrol,
                             struct snd_ctl_elem_value *ucontrol)
 {
-       struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
-       struct es8328_priv *es8328 = snd_soc_codec_get_drvdata(codec);
+       struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
+       struct es8328_priv *es8328 = snd_soc_component_get_drvdata(component);
        unsigned int deemph = ucontrol->value.integer.value[0];
        int ret;
 
        if (deemph > 1)
                return -EINVAL;
 
-       ret = es8328_set_deemph(codec);
+       ret = es8328_set_deemph(component);
        if (ret < 0)
                return ret;
 
@@ -455,7 +455,7 @@ static const struct snd_soc_dapm_route es8328_dapm_routes[] = {
 
 static int es8328_mute(struct snd_soc_dai *dai, int mute)
 {
-       return snd_soc_update_bits(dai->codec, ES8328_DACCONTROL3,
+       return snd_soc_component_update_bits(dai->component, ES8328_DACCONTROL3,
                        ES8328_DACCONTROL3_DACMUTE,
                        mute ? ES8328_DACCONTROL3_DACMUTE : 0);
 }
@@ -463,8 +463,8 @@ static int es8328_mute(struct snd_soc_dai *dai, int mute)
 static int es8328_startup(struct snd_pcm_substream *substream,
                          struct snd_soc_dai *dai)
 {
-       struct snd_soc_codec *codec = dai->codec;
-       struct es8328_priv *es8328 = snd_soc_codec_get_drvdata(codec);
+       struct snd_soc_component *component = dai->component;
+       struct es8328_priv *es8328 = snd_soc_component_get_drvdata(component);
 
        if (es8328->master && es8328->sysclk_constraints)
                snd_pcm_hw_constraint_list(substream->runtime, 0,
@@ -478,8 +478,8 @@ static int es8328_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 es8328_priv *es8328 = snd_soc_codec_get_drvdata(codec);
+       struct snd_soc_component *component = dai->component;
+       struct es8328_priv *es8328 = snd_soc_component_get_drvdata(component);
        int i;
        int reg;
        int wl;
@@ -492,7 +492,7 @@ static int es8328_hw_params(struct snd_pcm_substream *substream,
 
        if (es8328->master) {
                if (!es8328->sysclk_constraints) {
-                       dev_err(codec->dev, "No MCLK configured\n");
+                       dev_err(component->dev, "No MCLK configured\n");
                        return -EINVAL;
                }
 
@@ -502,7 +502,7 @@ static int es8328_hw_params(struct snd_pcm_substream *substream,
                                break;
 
                if (i == es8328->sysclk_constraints->count) {
-                       dev_err(codec->dev,
+                       dev_err(component->dev,
                                "LRCLK %d unsupported with current clock\n",
                                params_rate(params));
                        return -EINVAL;
@@ -513,7 +513,7 @@ static int es8328_hw_params(struct snd_pcm_substream *substream,
                es8328->mclkdiv2 = 0;
        }
 
-       snd_soc_update_bits(codec, ES8328_MASTERMODE,
+       snd_soc_component_update_bits(component, ES8328_MASTERMODE,
                        ES8328_MASTERMODE_MCLKDIV2,
                        es8328->mclkdiv2 ? ES8328_MASTERMODE_MCLKDIV2 : 0);
 
@@ -538,25 +538,25 @@ static int es8328_hw_params(struct snd_pcm_substream *substream,
        }
 
        if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
-               snd_soc_update_bits(codec, ES8328_DACCONTROL1,
+               snd_soc_component_update_bits(component, ES8328_DACCONTROL1,
                                ES8328_DACCONTROL1_DACWL_MASK,
                                wl << ES8328_DACCONTROL1_DACWL_SHIFT);
 
                es8328->playback_fs = params_rate(params);
-               es8328_set_deemph(codec);
+               es8328_set_deemph(component);
        } else
-               snd_soc_update_bits(codec, ES8328_ADCCONTROL4,
+               snd_soc_component_update_bits(component, ES8328_ADCCONTROL4,
                                ES8328_ADCCONTROL4_ADCWL_MASK,
                                wl << ES8328_ADCCONTROL4_ADCWL_SHIFT);
 
-       return snd_soc_update_bits(codec, reg, ES8328_RATEMASK, ratio);
+       return snd_soc_component_update_bits(component, reg, ES8328_RATEMASK, ratio);
 }
 
 static int es8328_set_sysclk(struct snd_soc_dai *codec_dai,
                int clk_id, unsigned int freq, int dir)
 {
-       struct snd_soc_codec *codec = codec_dai->codec;
-       struct es8328_priv *es8328 = snd_soc_codec_get_drvdata(codec);
+       struct snd_soc_component *component = codec_dai->component;
+       struct es8328_priv *es8328 = snd_soc_component_get_drvdata(component);
        int mclkdiv2 = 0;
 
        switch (freq) {
@@ -589,22 +589,22 @@ static int es8328_set_sysclk(struct snd_soc_dai *codec_dai,
 static int es8328_set_dai_fmt(struct snd_soc_dai *codec_dai,
                unsigned int fmt)
 {
-       struct snd_soc_codec *codec = codec_dai->codec;
-       struct es8328_priv *es8328 = snd_soc_codec_get_drvdata(codec);
+       struct snd_soc_component *component = codec_dai->component;
+       struct es8328_priv *es8328 = snd_soc_component_get_drvdata(component);
        u8 dac_mode = 0;
        u8 adc_mode = 0;
 
        switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
        case SND_SOC_DAIFMT_CBM_CFM:
                /* Master serial port mode, with BCLK generated automatically */
-               snd_soc_update_bits(codec, ES8328_MASTERMODE,
+               snd_soc_component_update_bits(component, ES8328_MASTERMODE,
                                    ES8328_MASTERMODE_MSC,
                                    ES8328_MASTERMODE_MSC);
                es8328->master = true;
                break;
        case SND_SOC_DAIFMT_CBS_CFS:
                /* Slave serial port mode */
-               snd_soc_update_bits(codec, ES8328_MASTERMODE,
+               snd_soc_component_update_bits(component, ES8328_MASTERMODE,
                                    ES8328_MASTERMODE_MSC, 0);
                es8328->master = false;
                break;
@@ -634,15 +634,15 @@ static int es8328_set_dai_fmt(struct snd_soc_dai *codec_dai,
        if ((fmt & SND_SOC_DAIFMT_INV_MASK) != SND_SOC_DAIFMT_NB_NF)
                return -EINVAL;
 
-       snd_soc_update_bits(codec, ES8328_DACCONTROL1,
+       snd_soc_component_update_bits(component, ES8328_DACCONTROL1,
                        ES8328_DACCONTROL1_DACFORMAT_MASK, dac_mode);
-       snd_soc_update_bits(codec, ES8328_ADCCONTROL4,
+       snd_soc_component_update_bits(component, ES8328_ADCCONTROL4,
                        ES8328_ADCCONTROL4_ADCFORMAT_MASK, adc_mode);
 
        return 0;
 }
 
-static int es8328_set_bias_level(struct snd_soc_codec *codec,
+static int es8328_set_bias_level(struct snd_soc_component *component,
                                 enum snd_soc_bias_level level)
 {
        switch (level) {
@@ -651,8 +651,8 @@ static int es8328_set_bias_level(struct snd_soc_codec *codec,
 
        case SND_SOC_BIAS_PREPARE:
                /* VREF, VMID=2x50k, digital enabled */
-               snd_soc_write(codec, ES8328_CHIPPOWER, 0);
-               snd_soc_update_bits(codec, ES8328_CONTROL1,
+               snd_soc_component_write(component, ES8328_CHIPPOWER, 0);
+               snd_soc_component_update_bits(component, ES8328_CONTROL1,
                                ES8328_CONTROL1_VMIDSEL_MASK |
                                ES8328_CONTROL1_ENREF,
                                ES8328_CONTROL1_VMIDSEL_50k |
@@ -660,8 +660,8 @@ static int es8328_set_bias_level(struct snd_soc_codec *codec,
                break;
 
        case SND_SOC_BIAS_STANDBY:
-               if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_OFF) {
-                       snd_soc_update_bits(codec, ES8328_CONTROL1,
+               if (snd_soc_component_get_bias_level(component) == SND_SOC_BIAS_OFF) {
+                       snd_soc_component_update_bits(component, ES8328_CONTROL1,
                                        ES8328_CONTROL1_VMIDSEL_MASK |
                                        ES8328_CONTROL1_ENREF,
                                        ES8328_CONTROL1_VMIDSEL_5k |
@@ -671,12 +671,12 @@ static int es8328_set_bias_level(struct snd_soc_codec *codec,
                        msleep(100);
                }
 
-               snd_soc_write(codec, ES8328_CONTROL2,
+               snd_soc_component_write(component, ES8328_CONTROL2,
                                ES8328_CONTROL2_OVERCURRENT_ON |
                                ES8328_CONTROL2_THERMAL_SHUTDOWN_ON);
 
                /* VREF, VMID=2*500k, digital stopped */
-               snd_soc_update_bits(codec, ES8328_CONTROL1,
+               snd_soc_component_update_bits(component, ES8328_CONTROL1,
                                ES8328_CONTROL1_VMIDSEL_MASK |
                                ES8328_CONTROL1_ENREF,
                                ES8328_CONTROL1_VMIDSEL_500k |
@@ -684,7 +684,7 @@ static int es8328_set_bias_level(struct snd_soc_codec *codec,
                break;
 
        case SND_SOC_BIAS_OFF:
-               snd_soc_update_bits(codec, ES8328_CONTROL1,
+               snd_soc_component_update_bits(component, ES8328_CONTROL1,
                                ES8328_CONTROL1_VMIDSEL_MASK |
                                ES8328_CONTROL1_ENREF,
                                0);
@@ -721,80 +721,80 @@ static struct snd_soc_dai_driver es8328_dai = {
        .symmetric_rates = 1,
 };
 
-static int es8328_suspend(struct snd_soc_codec *codec)
+static int es8328_suspend(struct snd_soc_component *component)
 {
        struct es8328_priv *es8328;
        int ret;
 
-       es8328 = snd_soc_codec_get_drvdata(codec);
+       es8328 = snd_soc_component_get_drvdata(component);
 
        clk_disable_unprepare(es8328->clk);
 
        ret = regulator_bulk_disable(ARRAY_SIZE(es8328->supplies),
                        es8328->supplies);
        if (ret) {
-               dev_err(codec->dev, "unable to disable regulators\n");
+               dev_err(component->dev, "unable to disable regulators\n");
                return ret;
        }
        return 0;
 }
 
-static int es8328_resume(struct snd_soc_codec *codec)
+static int es8328_resume(struct snd_soc_component *component)
 {
-       struct regmap *regmap = dev_get_regmap(codec->dev, NULL);
+       struct regmap *regmap = dev_get_regmap(component->dev, NULL);
        struct es8328_priv *es8328;
        int ret;
 
-       es8328 = snd_soc_codec_get_drvdata(codec);
+       es8328 = snd_soc_component_get_drvdata(component);
 
        ret = clk_prepare_enable(es8328->clk);
        if (ret) {
-               dev_err(codec->dev, "unable to enable clock\n");
+               dev_err(component->dev, "unable to enable clock\n");
                return ret;
        }
 
        ret = regulator_bulk_enable(ARRAY_SIZE(es8328->supplies),
                                        es8328->supplies);
        if (ret) {
-               dev_err(codec->dev, "unable to enable regulators\n");
+               dev_err(component->dev, "unable to enable regulators\n");
                return ret;
        }
 
        regcache_mark_dirty(regmap);
        ret = regcache_sync(regmap);
        if (ret) {
-               dev_err(codec->dev, "unable to sync regcache\n");
+               dev_err(component->dev, "unable to sync regcache\n");
                return ret;
        }
 
        return 0;
 }
 
-static int es8328_codec_probe(struct snd_soc_codec *codec)
+static int es8328_component_probe(struct snd_soc_component *component)
 {
        struct es8328_priv *es8328;
        int ret;
 
-       es8328 = snd_soc_codec_get_drvdata(codec);
+       es8328 = snd_soc_component_get_drvdata(component);
 
        ret = regulator_bulk_enable(ARRAY_SIZE(es8328->supplies),
                                        es8328->supplies);
        if (ret) {
-               dev_err(codec->dev, "unable to enable regulators\n");
+               dev_err(component->dev, "unable to enable regulators\n");
                return ret;
        }
 
        /* Setup clocks */
-       es8328->clk = devm_clk_get(codec->dev, NULL);
+       es8328->clk = devm_clk_get(component->dev, NULL);
        if (IS_ERR(es8328->clk)) {
-               dev_err(codec->dev, "codec clock missing or invalid\n");
+               dev_err(component->dev, "codec clock missing or invalid\n");
                ret = PTR_ERR(es8328->clk);
                goto clk_fail;
        }
 
        ret = clk_prepare_enable(es8328->clk);
        if (ret) {
-               dev_err(codec->dev, "unable to prepare codec clk\n");
+               dev_err(component->dev, "unable to prepare codec clk\n");
                goto clk_fail;
        }
 
@@ -806,19 +806,17 @@ clk_fail:
        return ret;
 }
 
-static int es8328_remove(struct snd_soc_codec *codec)
+static void es8328_remove(struct snd_soc_component *component)
 {
        struct es8328_priv *es8328;
 
-       es8328 = snd_soc_codec_get_drvdata(codec);
+       es8328 = snd_soc_component_get_drvdata(component);
 
        if (es8328->clk)
                clk_disable_unprepare(es8328->clk);
 
        regulator_bulk_disable(ARRAY_SIZE(es8328->supplies),
                               es8328->supplies);
-
-       return 0;
 }
 
 const struct regmap_config es8328_regmap_config = {
@@ -830,22 +828,23 @@ const struct regmap_config es8328_regmap_config = {
 };
 EXPORT_SYMBOL_GPL(es8328_regmap_config);
 
-static const struct snd_soc_codec_driver es8328_codec_driver = {
-       .probe            = es8328_codec_probe,
-       .suspend          = es8328_suspend,
-       .resume           = es8328_resume,
-       .remove           = es8328_remove,
-       .set_bias_level   = es8328_set_bias_level,
-       .suspend_bias_off = true,
-
-       .component_driver = {
-               .controls               = es8328_snd_controls,
-               .num_controls           = ARRAY_SIZE(es8328_snd_controls),
-               .dapm_widgets           = es8328_dapm_widgets,
-               .num_dapm_widgets       = ARRAY_SIZE(es8328_dapm_widgets),
-               .dapm_routes            = es8328_dapm_routes,
-               .num_dapm_routes        = ARRAY_SIZE(es8328_dapm_routes),
-       },
+static const struct snd_soc_component_driver es8328_component_driver = {
+       .probe                  = es8328_component_probe,
+       .remove                 = es8328_remove,
+       .suspend                = es8328_suspend,
+       .resume                 = es8328_resume,
+       .set_bias_level         = es8328_set_bias_level,
+       .controls               = es8328_snd_controls,
+       .num_controls           = ARRAY_SIZE(es8328_snd_controls),
+       .dapm_widgets           = es8328_dapm_widgets,
+       .num_dapm_widgets       = ARRAY_SIZE(es8328_dapm_widgets),
+       .dapm_routes            = es8328_dapm_routes,
+       .num_dapm_routes        = ARRAY_SIZE(es8328_dapm_routes),
+       .suspend_bias_off       = 1,
+       .idle_bias_on           = 1,
+       .use_pmdown_time        = 1,
+       .endianness             = 1,
+       .non_legacy_dai_naming  = 1,
 };
 
 int es8328_probe(struct device *dev, struct regmap *regmap)
@@ -875,8 +874,8 @@ int es8328_probe(struct device *dev, struct regmap *regmap)
 
        dev_set_drvdata(dev, es8328);
 
-       return snd_soc_register_codec(dev,
-                       &es8328_codec_driver, &es8328_dai, 1);
+       return devm_snd_soc_register_component(dev,
+                       &es8328_component_driver, &es8328_dai, 1);
 }
 EXPORT_SYMBOL_GPL(es8328_probe);