forked from Minki/linux
ASoC: cs4270: 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>
This commit is contained in:
parent
7928b2cbe5
commit
70c9a803fb
@ -254,8 +254,8 @@ static bool cs4270_reg_is_volatile(struct device *dev, unsigned int reg)
|
||||
static int cs4270_set_dai_sysclk(struct snd_soc_dai *codec_dai,
|
||||
int clk_id, unsigned int freq, int dir)
|
||||
{
|
||||
struct snd_soc_codec *codec = codec_dai->codec;
|
||||
struct cs4270_private *cs4270 = snd_soc_codec_get_drvdata(codec);
|
||||
struct snd_soc_component *component = codec_dai->component;
|
||||
struct cs4270_private *cs4270 = snd_soc_component_get_drvdata(component);
|
||||
|
||||
cs4270->mclk = freq;
|
||||
return 0;
|
||||
@ -277,8 +277,8 @@ static int cs4270_set_dai_sysclk(struct snd_soc_dai *codec_dai,
|
||||
static int cs4270_set_dai_fmt(struct snd_soc_dai *codec_dai,
|
||||
unsigned int format)
|
||||
{
|
||||
struct snd_soc_codec *codec = codec_dai->codec;
|
||||
struct cs4270_private *cs4270 = snd_soc_codec_get_drvdata(codec);
|
||||
struct snd_soc_component *component = codec_dai->component;
|
||||
struct cs4270_private *cs4270 = snd_soc_component_get_drvdata(component);
|
||||
|
||||
/* set DAI format */
|
||||
switch (format & SND_SOC_DAIFMT_FORMAT_MASK) {
|
||||
@ -287,7 +287,7 @@ static int cs4270_set_dai_fmt(struct snd_soc_dai *codec_dai,
|
||||
cs4270->mode = format & SND_SOC_DAIFMT_FORMAT_MASK;
|
||||
break;
|
||||
default:
|
||||
dev_err(codec->dev, "invalid dai format\n");
|
||||
dev_err(component->dev, "invalid dai format\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -301,7 +301,7 @@ static int cs4270_set_dai_fmt(struct snd_soc_dai *codec_dai,
|
||||
break;
|
||||
default:
|
||||
/* all other modes are unsupported by the hardware */
|
||||
dev_err(codec->dev, "Unknown master/slave configuration\n");
|
||||
dev_err(component->dev, "Unknown master/slave configuration\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -326,8 +326,8 @@ static int cs4270_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 cs4270_private *cs4270 = snd_soc_codec_get_drvdata(codec);
|
||||
struct snd_soc_component *component = dai->component;
|
||||
struct cs4270_private *cs4270 = snd_soc_component_get_drvdata(component);
|
||||
int ret;
|
||||
unsigned int i;
|
||||
unsigned int rate;
|
||||
@ -346,13 +346,13 @@ static int cs4270_hw_params(struct snd_pcm_substream *substream,
|
||||
|
||||
if (i == NUM_MCLK_RATIOS) {
|
||||
/* We did not find a matching ratio */
|
||||
dev_err(codec->dev, "could not find matching ratio\n");
|
||||
dev_err(component->dev, "could not find matching ratio\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* Set the sample rate */
|
||||
|
||||
reg = snd_soc_read(codec, CS4270_MODE);
|
||||
reg = snd_soc_component_read32(component, CS4270_MODE);
|
||||
reg &= ~(CS4270_MODE_SPEED_MASK | CS4270_MODE_DIV_MASK);
|
||||
reg |= cs4270_mode_ratios[i].mclk;
|
||||
|
||||
@ -361,15 +361,15 @@ static int cs4270_hw_params(struct snd_pcm_substream *substream,
|
||||
else
|
||||
reg |= cs4270_mode_ratios[i].speed_mode;
|
||||
|
||||
ret = snd_soc_write(codec, CS4270_MODE, reg);
|
||||
ret = snd_soc_component_write(component, CS4270_MODE, reg);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "i2c write failed\n");
|
||||
dev_err(component->dev, "i2c write failed\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Set the DAI format */
|
||||
|
||||
reg = snd_soc_read(codec, CS4270_FORMAT);
|
||||
reg = snd_soc_component_read32(component, CS4270_FORMAT);
|
||||
reg &= ~(CS4270_FORMAT_DAC_MASK | CS4270_FORMAT_ADC_MASK);
|
||||
|
||||
switch (cs4270->mode) {
|
||||
@ -380,13 +380,13 @@ static int cs4270_hw_params(struct snd_pcm_substream *substream,
|
||||
reg |= CS4270_FORMAT_DAC_LJ | CS4270_FORMAT_ADC_LJ;
|
||||
break;
|
||||
default:
|
||||
dev_err(codec->dev, "unknown dai format\n");
|
||||
dev_err(component->dev, "unknown dai format\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
ret = snd_soc_write(codec, CS4270_FORMAT, reg);
|
||||
ret = snd_soc_component_write(component, CS4270_FORMAT, reg);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "i2c write failed\n");
|
||||
dev_err(component->dev, "i2c write failed\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -405,11 +405,11 @@ static int cs4270_hw_params(struct snd_pcm_substream *substream,
|
||||
*/
|
||||
static int cs4270_dai_mute(struct snd_soc_dai *dai, int mute)
|
||||
{
|
||||
struct snd_soc_codec *codec = dai->codec;
|
||||
struct cs4270_private *cs4270 = snd_soc_codec_get_drvdata(codec);
|
||||
struct snd_soc_component *component = dai->component;
|
||||
struct cs4270_private *cs4270 = snd_soc_component_get_drvdata(component);
|
||||
int reg6;
|
||||
|
||||
reg6 = snd_soc_read(codec, CS4270_MUTE);
|
||||
reg6 = snd_soc_component_read32(component, CS4270_MUTE);
|
||||
|
||||
if (mute)
|
||||
reg6 |= CS4270_MUTE_DAC_A | CS4270_MUTE_DAC_B;
|
||||
@ -418,7 +418,7 @@ static int cs4270_dai_mute(struct snd_soc_dai *dai, int mute)
|
||||
reg6 |= cs4270->manual_mute;
|
||||
}
|
||||
|
||||
return snd_soc_write(codec, CS4270_MUTE, reg6);
|
||||
return snd_soc_component_write(component, CS4270_MUTE, reg6);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -438,8 +438,8 @@ static int cs4270_dai_mute(struct snd_soc_dai *dai, int mute)
|
||||
static int cs4270_soc_put_mute(struct snd_kcontrol *kcontrol,
|
||||
struct snd_ctl_elem_value *ucontrol)
|
||||
{
|
||||
struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
|
||||
struct cs4270_private *cs4270 = snd_soc_codec_get_drvdata(codec);
|
||||
struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
|
||||
struct cs4270_private *cs4270 = snd_soc_component_get_drvdata(component);
|
||||
int left = !ucontrol->value.integer.value[0];
|
||||
int right = !ucontrol->value.integer.value[1];
|
||||
|
||||
@ -501,9 +501,9 @@ static struct snd_soc_dai_driver cs4270_dai = {
|
||||
* This function is called when ASoC has all the pieces it needs to
|
||||
* instantiate a sound driver.
|
||||
*/
|
||||
static int cs4270_probe(struct snd_soc_codec *codec)
|
||||
static int cs4270_probe(struct snd_soc_component *component)
|
||||
{
|
||||
struct cs4270_private *cs4270 = snd_soc_codec_get_drvdata(codec);
|
||||
struct cs4270_private *cs4270 = snd_soc_component_get_drvdata(component);
|
||||
int ret;
|
||||
|
||||
/* Disable auto-mute. This feature appears to be buggy. In some
|
||||
@ -511,9 +511,9 @@ static int cs4270_probe(struct snd_soc_codec *codec)
|
||||
* this feature disabled by default. An application (e.g. alsactl) can
|
||||
* re-enabled it by using the controls.
|
||||
*/
|
||||
ret = snd_soc_update_bits(codec, CS4270_MUTE, CS4270_MUTE_AUTO, 0);
|
||||
ret = snd_soc_component_update_bits(component, CS4270_MUTE, CS4270_MUTE_AUTO, 0);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "i2c write failed\n");
|
||||
dev_err(component->dev, "i2c write failed\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -522,10 +522,10 @@ static int cs4270_probe(struct snd_soc_codec *codec)
|
||||
* playback has started. An application (e.g. alsactl) can
|
||||
* re-enabled it by using the controls.
|
||||
*/
|
||||
ret = snd_soc_update_bits(codec, CS4270_TRANS,
|
||||
ret = snd_soc_component_update_bits(component, CS4270_TRANS,
|
||||
CS4270_TRANS_SOFT | CS4270_TRANS_ZERO, 0);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "i2c write failed\n");
|
||||
dev_err(component->dev, "i2c write failed\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -541,13 +541,11 @@ static int cs4270_probe(struct snd_soc_codec *codec)
|
||||
*
|
||||
* This function is the counterpart to cs4270_probe().
|
||||
*/
|
||||
static int cs4270_remove(struct snd_soc_codec *codec)
|
||||
static void cs4270_remove(struct snd_soc_component *component)
|
||||
{
|
||||
struct cs4270_private *cs4270 = snd_soc_codec_get_drvdata(codec);
|
||||
struct cs4270_private *cs4270 = snd_soc_component_get_drvdata(component);
|
||||
|
||||
regulator_bulk_disable(ARRAY_SIZE(cs4270->supplies), cs4270->supplies);
|
||||
|
||||
return 0;
|
||||
};
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
@ -561,16 +559,16 @@ static int cs4270_remove(struct snd_soc_codec *codec)
|
||||
* and all registers are written back to the hardware when resuming.
|
||||
*/
|
||||
|
||||
static int cs4270_soc_suspend(struct snd_soc_codec *codec)
|
||||
static int cs4270_soc_suspend(struct snd_soc_component *component)
|
||||
{
|
||||
struct cs4270_private *cs4270 = snd_soc_codec_get_drvdata(codec);
|
||||
struct cs4270_private *cs4270 = snd_soc_component_get_drvdata(component);
|
||||
int reg, ret;
|
||||
|
||||
reg = snd_soc_read(codec, CS4270_PWRCTL) | CS4270_PWRCTL_PDN_ALL;
|
||||
reg = snd_soc_component_read32(component, CS4270_PWRCTL) | CS4270_PWRCTL_PDN_ALL;
|
||||
if (reg < 0)
|
||||
return reg;
|
||||
|
||||
ret = snd_soc_write(codec, CS4270_PWRCTL, reg);
|
||||
ret = snd_soc_component_write(component, CS4270_PWRCTL, reg);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
@ -580,9 +578,9 @@ static int cs4270_soc_suspend(struct snd_soc_codec *codec)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int cs4270_soc_resume(struct snd_soc_codec *codec)
|
||||
static int cs4270_soc_resume(struct snd_soc_component *component)
|
||||
{
|
||||
struct cs4270_private *cs4270 = snd_soc_codec_get_drvdata(codec);
|
||||
struct cs4270_private *cs4270 = snd_soc_component_get_drvdata(component);
|
||||
int reg, ret;
|
||||
|
||||
ret = regulator_bulk_enable(ARRAY_SIZE(cs4270->supplies),
|
||||
@ -598,10 +596,10 @@ static int cs4270_soc_resume(struct snd_soc_codec *codec)
|
||||
regcache_sync(cs4270->regmap);
|
||||
|
||||
/* ... then disable the power-down bits */
|
||||
reg = snd_soc_read(codec, CS4270_PWRCTL);
|
||||
reg = snd_soc_component_read32(component, CS4270_PWRCTL);
|
||||
reg &= ~CS4270_PWRCTL_PDN_ALL;
|
||||
|
||||
return snd_soc_write(codec, CS4270_PWRCTL, reg);
|
||||
return snd_soc_component_write(component, CS4270_PWRCTL, reg);
|
||||
}
|
||||
#else
|
||||
#define cs4270_soc_suspend NULL
|
||||
@ -611,20 +609,21 @@ static int cs4270_soc_resume(struct snd_soc_codec *codec)
|
||||
/*
|
||||
* ASoC codec driver structure
|
||||
*/
|
||||
static const struct snd_soc_codec_driver soc_codec_device_cs4270 = {
|
||||
.probe = cs4270_probe,
|
||||
.remove = cs4270_remove,
|
||||
.suspend = cs4270_soc_suspend,
|
||||
.resume = cs4270_soc_resume,
|
||||
|
||||
.component_driver = {
|
||||
.controls = cs4270_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs4270_snd_controls),
|
||||
.dapm_widgets = cs4270_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(cs4270_dapm_widgets),
|
||||
.dapm_routes = cs4270_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(cs4270_dapm_routes),
|
||||
},
|
||||
static const struct snd_soc_component_driver soc_component_device_cs4270 = {
|
||||
.probe = cs4270_probe,
|
||||
.remove = cs4270_remove,
|
||||
.suspend = cs4270_soc_suspend,
|
||||
.resume = cs4270_soc_resume,
|
||||
.controls = cs4270_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs4270_snd_controls),
|
||||
.dapm_widgets = cs4270_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(cs4270_dapm_widgets),
|
||||
.dapm_routes = cs4270_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(cs4270_dapm_routes),
|
||||
.idle_bias_on = 1,
|
||||
.use_pmdown_time = 1,
|
||||
.endianness = 1,
|
||||
.non_legacy_dai_naming = 1,
|
||||
};
|
||||
|
||||
/*
|
||||
@ -718,23 +717,11 @@ static int cs4270_i2c_probe(struct i2c_client *i2c_client,
|
||||
|
||||
i2c_set_clientdata(i2c_client, cs4270);
|
||||
|
||||
ret = snd_soc_register_codec(&i2c_client->dev,
|
||||
&soc_codec_device_cs4270, &cs4270_dai, 1);
|
||||
ret = devm_snd_soc_register_component(&i2c_client->dev,
|
||||
&soc_component_device_cs4270, &cs4270_dai, 1);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* cs4270_i2c_remove - remove an I2C device
|
||||
* @i2c_client: the I2C client object
|
||||
*
|
||||
* This function is the counterpart to cs4270_i2c_probe().
|
||||
*/
|
||||
static int cs4270_i2c_remove(struct i2c_client *i2c_client)
|
||||
{
|
||||
snd_soc_unregister_codec(&i2c_client->dev);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* cs4270_id - I2C device IDs supported by this driver
|
||||
*/
|
||||
@ -757,7 +744,6 @@ static struct i2c_driver cs4270_i2c_driver = {
|
||||
},
|
||||
.id_table = cs4270_id,
|
||||
.probe = cs4270_i2c_probe,
|
||||
.remove = cs4270_i2c_remove,
|
||||
};
|
||||
|
||||
module_i2c_driver(cs4270_i2c_driver);
|
||||
|
Loading…
Reference in New Issue
Block a user