mirror of
https://github.com/torvalds/linux.git
synced 2024-12-12 14:12:51 +00:00
ASoC: codec: Simplify ASoC probe code.
For some CODEC drivers like who act as the MFDs children are ignored by this patch. Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
parent
db5a5ee7c7
commit
5d6be5aa6b
@ -322,14 +322,6 @@ static struct snd_soc_dai_driver ad193x_dai = {
|
||||
static int ad193x_codec_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct ad193x_priv *ad193x = snd_soc_codec_get_drvdata(codec);
|
||||
int ret;
|
||||
|
||||
codec->control_data = ad193x->regmap;
|
||||
ret = snd_soc_codec_set_cache_io(codec, 0, 0, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* default setting for ad193x */
|
||||
|
||||
@ -347,7 +339,7 @@ static int ad193x_codec_probe(struct snd_soc_codec *codec)
|
||||
regmap_write(ad193x->regmap, AD193X_PLL_CLK_CTRL0, 0x99); /* mclk=24.576Mhz: 0x9D; mclk=12.288Mhz: 0x99 */
|
||||
regmap_write(ad193x->regmap, AD193X_PLL_CLK_CTRL1, 0x04);
|
||||
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_ad193x = {
|
||||
|
@ -1376,15 +1376,8 @@ static int adau1373_probe(struct snd_soc_codec *codec)
|
||||
struct adau1373_platform_data *pdata = codec->dev->platform_data;
|
||||
bool lineout_differential = false;
|
||||
unsigned int val;
|
||||
int ret;
|
||||
int i;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 0, 0, SND_SOC_REGMAP);
|
||||
if (ret) {
|
||||
dev_err(codec->dev, "failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (pdata) {
|
||||
if (pdata->num_drc > ARRAY_SIZE(pdata->drc_setting))
|
||||
return -EINVAL;
|
||||
|
@ -798,15 +798,8 @@ static struct snd_soc_dai_driver adav80x_dais[] = {
|
||||
|
||||
static int adav80x_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret;
|
||||
struct adav80x *adav80x = snd_soc_codec_get_drvdata(codec);
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 0, 0, SND_SOC_REGMAP);
|
||||
if (ret) {
|
||||
dev_err(codec->dev, "failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Force PLLs on for SYSCLK output */
|
||||
snd_soc_dapm_force_enable_pin(&codec->dapm, "PLL1");
|
||||
snd_soc_dapm_force_enable_pin(&codec->dapm, "PLL2");
|
||||
|
@ -388,15 +388,6 @@ static int ak4535_resume(struct snd_soc_codec *codec)
|
||||
|
||||
static int ak4535_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct ak4535_priv *ak4535 = snd_soc_codec_get_drvdata(codec);
|
||||
int ret;
|
||||
|
||||
codec->control_data = ak4535->regmap;
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
/* power on device */
|
||||
ak4535_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
|
||||
|
||||
|
@ -519,14 +519,6 @@ static int ak4641_resume(struct snd_soc_codec *codec)
|
||||
|
||||
static int ak4641_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* power on device */
|
||||
ak4641_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
|
||||
|
||||
|
@ -465,14 +465,6 @@ static int ak4642_resume(struct snd_soc_codec *codec)
|
||||
|
||||
static int ak4642_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ak4642_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
|
||||
|
||||
return 0;
|
||||
|
@ -613,17 +613,7 @@ static struct snd_soc_dai_driver ak4671_dai = {
|
||||
|
||||
static int ak4671_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ak4671_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
|
||||
|
||||
return ret;
|
||||
return ak4671_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
|
||||
}
|
||||
|
||||
static int ak4671_remove(struct snd_soc_codec *codec)
|
||||
|
@ -904,13 +904,6 @@ static int alc5623_probe(struct snd_soc_codec *codec)
|
||||
struct snd_soc_dapm_context *dapm = &codec->dapm;
|
||||
int ret;
|
||||
|
||||
codec->control_data = alc5623->regmap;
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
alc5623_reset(codec);
|
||||
|
||||
/* power on device */
|
||||
|
@ -1063,14 +1063,6 @@ static int alc5632_probe(struct snd_soc_codec *codec)
|
||||
struct alc5632_priv *alc5632 = snd_soc_codec_get_drvdata(codec);
|
||||
int ret;
|
||||
|
||||
codec->control_data = alc5632->regmap;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* power on device */
|
||||
alc5632_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
|
||||
|
||||
|
@ -506,15 +506,6 @@ static int cs4270_probe(struct snd_soc_codec *codec)
|
||||
struct cs4270_private *cs4270 = snd_soc_codec_get_drvdata(codec);
|
||||
int ret;
|
||||
|
||||
/* Tell ASoC what kind of I/O to use to read the registers. ASoC will
|
||||
* then do the I2C transactions itself.
|
||||
*/
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "failed to set cache I/O (ret=%i)\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Disable auto-mute. This feature appears to be buggy. In some
|
||||
* situations, auto-mute will not deactivate when it should, so we want
|
||||
* this feature disabled by default. An application (e.g. alsactl) can
|
||||
|
@ -489,12 +489,6 @@ static int cs42l51_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret, reg;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* DAC configuration
|
||||
* - Use signal processor
|
||||
|
@ -1115,14 +1115,7 @@ static void cs42l52_free_beep(struct snd_soc_codec *codec)
|
||||
static int cs42l52_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct cs42l52_private *cs42l52 = snd_soc_codec_get_drvdata(codec);
|
||||
int ret;
|
||||
|
||||
codec->control_data = cs42l52->regmap;
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
regcache_cache_only(cs42l52->regmap, true);
|
||||
|
||||
cs42l52_add_mic_controls(codec);
|
||||
@ -1134,7 +1127,7 @@ static int cs42l52_probe(struct snd_soc_codec *codec)
|
||||
cs42l52->sysclk = CS42L52_DEFAULT_CLK;
|
||||
cs42l52->config.format = CS42L52_DEFAULT_FORMAT;
|
||||
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int cs42l52_remove(struct snd_soc_codec *codec)
|
||||
|
@ -1348,17 +1348,8 @@ static int cs42l73_resume(struct snd_soc_codec *codec)
|
||||
|
||||
static int cs42l73_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret;
|
||||
struct cs42l73_private *cs42l73 = snd_soc_codec_get_drvdata(codec);
|
||||
|
||||
codec->control_data = cs42l73->regmap;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
cs42l73_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
|
||||
|
||||
/* Set Charge Pump Frequency */
|
||||
@ -1371,7 +1362,7 @@ static int cs42l73_probe(struct snd_soc_codec *codec)
|
||||
cs42l73->mclksel = CS42L73_CLKID_MCLK1;
|
||||
cs42l73->mclk = 0;
|
||||
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int cs42l73_remove(struct snd_soc_codec *codec)
|
||||
|
@ -1071,17 +1071,9 @@ static struct snd_soc_dai_driver da7210_dai = {
|
||||
static int da7210_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct da7210_priv *da7210 = snd_soc_codec_get_drvdata(codec);
|
||||
int ret;
|
||||
|
||||
dev_info(codec->dev, "DA7210 Audio Codec %s\n", DA7210_VERSION);
|
||||
|
||||
codec->control_data = da7210->regmap;
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
da7210->mclk_rate = 0; /* This will be set from set_sysclk() */
|
||||
da7210->master = 0; /* This will be set from set_fmt() */
|
||||
|
||||
|
@ -1384,17 +1384,9 @@ static int da7213_set_bias_level(struct snd_soc_codec *codec,
|
||||
|
||||
static int da7213_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret;
|
||||
struct da7213_priv *da7213 = snd_soc_codec_get_drvdata(codec);
|
||||
struct da7213_platform_data *pdata = da7213->pdata;
|
||||
|
||||
codec->control_data = da7213->regmap;
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Default to using ALC auto offset calibration mode. */
|
||||
snd_soc_update_bits(codec, DA7213_ALC_CTRL1,
|
||||
DA7213_ALC_CALIB_MODE_MAN, 0);
|
||||
|
@ -1516,23 +1516,14 @@ static int da732x_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct da732x_priv *da732x = snd_soc_codec_get_drvdata(codec);
|
||||
struct snd_soc_dapm_context *dapm = &codec->dapm;
|
||||
int ret = 0;
|
||||
|
||||
da732x->codec = codec;
|
||||
|
||||
dapm->idle_bias_off = false;
|
||||
|
||||
codec->control_data = da732x->regmap;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to register codec.\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
da732x_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
|
||||
err:
|
||||
return ret;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int da732x_remove(struct snd_soc_codec *codec)
|
||||
|
@ -1381,16 +1381,8 @@ static int da9055_set_bias_level(struct snd_soc_codec *codec,
|
||||
|
||||
static int da9055_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret;
|
||||
struct da9055_priv *da9055 = snd_soc_codec_get_drvdata(codec);
|
||||
|
||||
codec->control_data = da9055->regmap;
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Enable all Gain Ramps */
|
||||
snd_soc_update_bits(codec, DA9055_AUX_L_CTRL,
|
||||
DA9055_GAIN_RAMPING_EN, DA9055_GAIN_RAMPING_EN);
|
||||
|
@ -1082,23 +1082,7 @@ static struct snd_soc_dai_driver isabelle_dai[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static int isabelle_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
codec->control_data = dev_get_regmap(codec->dev, NULL);
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_isabelle = {
|
||||
.probe = isabelle_probe,
|
||||
.set_bias_level = isabelle_set_bias_level,
|
||||
.controls = isabelle_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(isabelle_snd_controls),
|
||||
|
@ -1409,22 +1409,6 @@ static int lm49453_resume(struct snd_soc_codec *codec)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int lm49453_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct lm49453_priv *lm49453 = snd_soc_codec_get_drvdata(codec);
|
||||
int ret = 0;
|
||||
|
||||
codec->control_data = lm49453->regmap;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* power down chip */
|
||||
static int lm49453_remove(struct snd_soc_codec *codec)
|
||||
{
|
||||
@ -1433,7 +1417,6 @@ static int lm49453_remove(struct snd_soc_codec *codec)
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_lm49453 = {
|
||||
.probe = lm49453_probe,
|
||||
.remove = lm49453_remove,
|
||||
.suspend = lm49453_suspend,
|
||||
.resume = lm49453_resume,
|
||||
|
@ -135,11 +135,6 @@ static int max9768_probe(struct snd_soc_codec *codec)
|
||||
struct max9768 *max9768 = snd_soc_codec_get_drvdata(codec);
|
||||
int ret;
|
||||
|
||||
codec->control_data = max9768->regmap;
|
||||
ret = snd_soc_codec_set_cache_io(codec, 2, 6, SND_SOC_REGMAP);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (max9768->flags & MAX9768_FLAG_CLASSIC_PWM) {
|
||||
ret = snd_soc_write(codec, MAX9768_CTRL, MAX9768_CTRL_PWM);
|
||||
if (ret)
|
||||
|
@ -1915,12 +1915,6 @@ static int max98088_probe(struct snd_soc_codec *codec)
|
||||
|
||||
regcache_mark_dirty(max98088->regmap);
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* initialize private data */
|
||||
|
||||
max98088->sysclk = (unsigned)-1;
|
||||
|
@ -2195,14 +2195,6 @@ static int max98090_probe(struct snd_soc_codec *codec)
|
||||
|
||||
max98090->codec = codec;
|
||||
|
||||
codec->control_data = max98090->regmap;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Reset the codec, the DSP core, and disable all interrupts */
|
||||
max98090_reset(max98090);
|
||||
|
||||
|
@ -2234,12 +2234,6 @@ static int max98095_probe(struct snd_soc_codec *codec)
|
||||
struct i2c_client *client;
|
||||
int ret = 0;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* reset the codec, the DSP core, and disable all interrupts */
|
||||
max98095_reset(codec);
|
||||
|
||||
|
@ -312,14 +312,6 @@ static int max9850_resume(struct snd_soc_codec *codec)
|
||||
|
||||
static int max9850_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* enable zero-detect */
|
||||
snd_soc_update_bits(codec, MAX9850_GENERAL_PURPOSE, 1, 1);
|
||||
/* enable slew-rate control */
|
||||
|
@ -586,16 +586,6 @@ static int ml26124_resume(struct snd_soc_codec *codec)
|
||||
|
||||
static int ml26124_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret;
|
||||
struct ml26124_priv *priv = snd_soc_codec_get_drvdata(codec);
|
||||
codec->control_data = priv->regmap;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Software Reset */
|
||||
snd_soc_update_bits(codec, ML26124_SW_RST, 0x01, 1);
|
||||
snd_soc_update_bits(codec, ML26124_SW_RST, 0x01, 0);
|
||||
|
@ -1585,15 +1585,6 @@ static int rt5631_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec);
|
||||
unsigned int val;
|
||||
int ret;
|
||||
|
||||
codec->control_data = rt5631->regmap;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
val = rt5631_read_index(codec, RT5631_ADDA_MIXER_INTL_REG3);
|
||||
if (val & 0x0002)
|
||||
|
@ -1943,16 +1943,8 @@ static int rt5640_set_bias_level(struct snd_soc_codec *codec,
|
||||
static int rt5640_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec);
|
||||
int ret;
|
||||
|
||||
rt5640->codec = codec;
|
||||
codec->control_data = rt5640->regmap;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
codec->dapm.idle_bias_off = 1;
|
||||
rt5640_set_bias_level(codec, SND_SOC_BIAS_OFF);
|
||||
|
@ -825,8 +825,6 @@ static int sn95031_codec_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
pr_debug("codec_probe called\n");
|
||||
|
||||
snd_soc_codec_set_cache_io(codec, 0, 0, SND_SOC_REGMAP);
|
||||
|
||||
/* PCM interface config
|
||||
* This sets the pcm rx slot conguration to max 6 slots
|
||||
* for max 4 dais (2 stereo and 2 mono)
|
||||
|
@ -648,16 +648,6 @@ static struct snd_soc_dai_driver ssm2518_dai = {
|
||||
|
||||
static int ssm2518_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct ssm2518 *ssm2518 = snd_soc_codec_get_drvdata(codec);
|
||||
int ret;
|
||||
|
||||
codec->control_data = ssm2518->regmap;
|
||||
ret = snd_soc_codec_set_cache_io(codec, 0, 0, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return ssm2518_set_bias_level(codec, SND_SOC_BIAS_OFF);
|
||||
}
|
||||
|
||||
|
@ -573,13 +573,6 @@ static int ssm260x_probe(struct snd_soc_codec *codec)
|
||||
struct ssm2602_priv *ssm2602 = snd_soc_codec_get_drvdata(codec);
|
||||
int ret;
|
||||
|
||||
codec->control_data = ssm2602->regmap;
|
||||
ret = snd_soc_codec_set_cache_io(codec, 0, 0, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = regmap_write(ssm2602->regmap, SSM2602_RESET, 0);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to issue reset: %d\n", ret);
|
||||
|
@ -872,16 +872,6 @@ static int sta32x_probe(struct snd_soc_codec *codec)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Tell ASoC what kind of I/O to use to read the registers. ASoC will
|
||||
* then do the I2C transactions itself.
|
||||
*/
|
||||
codec->control_data = sta32x->regmap;
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "failed to set cache I/O (ret=%i)\n", ret);
|
||||
goto err;
|
||||
}
|
||||
|
||||
/* Chip documentation explicitly requires that the reset values
|
||||
* of reserved register bits are left untouched.
|
||||
* Write the register default value to cache for reserved registers,
|
||||
@ -946,10 +936,6 @@ static int sta32x_probe(struct snd_soc_codec *codec)
|
||||
regulator_bulk_disable(ARRAY_SIZE(sta32x->supplies), sta32x->supplies);
|
||||
|
||||
return 0;
|
||||
|
||||
err:
|
||||
regulator_bulk_disable(ARRAY_SIZE(sta32x->supplies), sta32x->supplies);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int sta32x_remove(struct snd_soc_codec *codec)
|
||||
|
@ -322,16 +322,6 @@ static struct snd_soc_dai_driver sta529_dai = {
|
||||
|
||||
static int sta529_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct sta529 *sta529 = snd_soc_codec_get_drvdata(codec);
|
||||
int ret;
|
||||
|
||||
codec->control_data = sta529->regmap;
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
sta529_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
|
||||
|
||||
return 0;
|
||||
|
@ -559,14 +559,6 @@ static int tlv320aic23_resume(struct snd_soc_codec *codec)
|
||||
|
||||
static int tlv320aic23_codec_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Reset codec */
|
||||
snd_soc_write(codec, TLV320AIC23_RESET, 0);
|
||||
|
||||
|
@ -295,8 +295,6 @@ static int aic26_probe(struct snd_soc_codec *codec)
|
||||
struct aic26 *aic26 = dev_get_drvdata(codec->dev);
|
||||
int ret, reg;
|
||||
|
||||
snd_soc_codec_set_cache_io(codec, 16, 16, SND_SOC_REGMAP);
|
||||
|
||||
aic26->codec = codec;
|
||||
|
||||
/* Reset the codec to power on defaults */
|
||||
|
@ -614,8 +614,6 @@ static int aic32x4_probe(struct snd_soc_codec *codec)
|
||||
struct aic32x4_priv *aic32x4 = snd_soc_codec_get_drvdata(codec);
|
||||
u32 tmp_reg;
|
||||
|
||||
snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
|
||||
if (gpio_is_valid(aic32x4->rstn_gpio)) {
|
||||
ndelay(10);
|
||||
gpio_set_value(aic32x4->rstn_gpio, 1);
|
||||
|
@ -1344,12 +1344,6 @@ static int aic3x_probe(struct snd_soc_codec *codec)
|
||||
INIT_LIST_HEAD(&aic3x->list);
|
||||
aic3x->codec = codec;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(aic3x->supplies); i++) {
|
||||
aic3x->disable_nb[i].nb.notifier_call = aic3x_regulator_event;
|
||||
aic3x->disable_nb[i].aic3x = aic3x;
|
||||
|
@ -786,8 +786,6 @@ static int wm2000_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct wm2000_priv *wm2000 = dev_get_drvdata(codec->dev);
|
||||
|
||||
snd_soc_codec_set_cache_io(codec, 16, 8, SND_SOC_REGMAP);
|
||||
|
||||
/* This will trigger a transition to standby mode by default */
|
||||
wm2000_anc_set_mode(wm2000);
|
||||
|
||||
|
@ -1556,15 +1556,8 @@ static int wm2200_probe(struct snd_soc_codec *codec)
|
||||
int ret;
|
||||
|
||||
wm2200->codec = codec;
|
||||
codec->control_data = wm2200->regmap;
|
||||
codec->dapm.bias_level = SND_SOC_BIAS_OFF;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 16, 16, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = snd_soc_add_codec_controls(codec, wm_adsp1_fw_controls, 2);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
|
@ -2337,13 +2337,6 @@ static int wm5100_probe(struct snd_soc_codec *codec)
|
||||
int ret, i;
|
||||
|
||||
wm5100->codec = codec;
|
||||
codec->control_data = wm5100->regmap;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 16, 16, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(wm5100_dig_vu); i++)
|
||||
snd_soc_update_bits(codec, wm5100_dig_vu[i], WM5100_OUT_VU,
|
||||
|
@ -589,20 +589,12 @@ static int wm8510_resume(struct snd_soc_codec *codec)
|
||||
|
||||
static int wm8510_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
printk(KERN_ERR "wm8510: failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
wm8510_reset(codec);
|
||||
|
||||
/* power on device */
|
||||
wm8510_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
|
||||
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* power down chip */
|
||||
|
@ -392,18 +392,11 @@ static int wm8523_resume(struct snd_soc_codec *codec)
|
||||
static int wm8523_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct wm8523_priv *wm8523 = snd_soc_codec_get_drvdata(codec);
|
||||
int ret;
|
||||
|
||||
wm8523->rate_constraint.list = &wm8523->rate_constraint_list[0];
|
||||
wm8523->rate_constraint.count =
|
||||
ARRAY_SIZE(wm8523->rate_constraint_list);
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Change some default settings - latch VU and enable ZC */
|
||||
snd_soc_update_bits(codec, WM8523_DAC_GAINR,
|
||||
WM8523_DACR_VU, WM8523_DACR_VU);
|
||||
|
@ -869,12 +869,6 @@ static int wm8580_probe(struct snd_soc_codec *codec)
|
||||
struct wm8580_priv *wm8580 = snd_soc_codec_get_drvdata(codec);
|
||||
int ret = 0;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = regulator_bulk_enable(ARRAY_SIZE(wm8580->supplies),
|
||||
wm8580->supplies);
|
||||
if (ret != 0) {
|
||||
|
@ -367,12 +367,6 @@ static int wm8711_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = wm8711_reset(codec);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to issue reset\n");
|
||||
|
@ -228,19 +228,10 @@ static int wm8728_resume(struct snd_soc_codec *codec)
|
||||
|
||||
static int wm8728_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
printk(KERN_ERR "wm8728: failed to configure cache I/O: %d\n",
|
||||
ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* power on device */
|
||||
wm8728_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
|
||||
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int wm8728_remove(struct snd_soc_codec *codec)
|
||||
|
@ -583,13 +583,6 @@ static int wm8731_probe(struct snd_soc_codec *codec)
|
||||
struct wm8731_priv *wm8731 = snd_soc_codec_get_drvdata(codec);
|
||||
int ret = 0, i;
|
||||
|
||||
codec->control_data = wm8731->regmap;
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(wm8731->supplies); i++)
|
||||
wm8731->supplies[i].supply = wm8731_supply_names[i];
|
||||
|
||||
|
@ -570,12 +570,6 @@ static int wm8737_probe(struct snd_soc_codec *codec)
|
||||
struct wm8737_priv *wm8737 = snd_soc_codec_get_drvdata(codec);
|
||||
int ret;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = regulator_bulk_enable(ARRAY_SIZE(wm8737->supplies),
|
||||
wm8737->supplies);
|
||||
if (ret != 0) {
|
||||
|
@ -429,12 +429,6 @@ static int wm8741_probe(struct snd_soc_codec *codec)
|
||||
goto err_get;
|
||||
}
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
goto err_enable;
|
||||
}
|
||||
|
||||
ret = wm8741_reset(codec);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to issue reset\n");
|
||||
|
@ -702,12 +702,6 @@ static int wm8750_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
printk(KERN_ERR "wm8750: failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = wm8750_reset(codec);
|
||||
if (ret < 0) {
|
||||
printk(KERN_ERR "wm8750: failed to reset: %d\n", ret);
|
||||
|
@ -1471,13 +1471,6 @@ static int wm8753_probe(struct snd_soc_codec *codec)
|
||||
|
||||
INIT_DELAYED_WORK(&codec->dapm.delayed_work, wm8753_work);
|
||||
|
||||
codec->control_data = wm8753->regmap;
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = wm8753_reset(codec);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to issue reset: %d\n", ret);
|
||||
|
@ -580,12 +580,6 @@ static int wm8770_probe(struct snd_soc_codec *codec)
|
||||
wm8770 = snd_soc_codec_get_drvdata(codec);
|
||||
wm8770->codec = codec;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = regulator_bulk_enable(ARRAY_SIZE(wm8770->supplies),
|
||||
wm8770->supplies);
|
||||
if (ret) {
|
||||
|
@ -430,12 +430,6 @@ static int wm8776_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = wm8776_reset(codec);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to issue reset: %d\n", ret);
|
||||
|
@ -546,14 +546,6 @@ static int wm8804_probe(struct snd_soc_codec *codec)
|
||||
|
||||
wm8804 = snd_soc_codec_get_drvdata(codec);
|
||||
|
||||
codec->control_data = wm8804->regmap;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache i/o: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(wm8804->supplies); i++)
|
||||
wm8804->supplies[i].supply = wm8804_supply_names[i];
|
||||
|
||||
|
@ -1178,13 +1178,7 @@ static int wm8900_resume(struct snd_soc_codec *codec)
|
||||
|
||||
static int wm8900_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret = 0, reg;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
int reg;
|
||||
|
||||
reg = snd_soc_read(codec, WM8900_REG_ID);
|
||||
if (reg != 0x8900) {
|
||||
|
@ -1897,21 +1897,13 @@ static void wm8903_free_gpio(struct wm8903_priv *wm8903)
|
||||
static int wm8903_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct wm8903_priv *wm8903 = snd_soc_codec_get_drvdata(codec);
|
||||
int ret;
|
||||
|
||||
wm8903->codec = codec;
|
||||
codec->control_data = wm8903->regmap;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* power on device */
|
||||
wm8903_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
|
||||
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* power down chip */
|
||||
|
@ -2047,9 +2047,6 @@ static void wm8904_handle_pdata(struct snd_soc_codec *codec)
|
||||
static int wm8904_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct wm8904_priv *wm8904 = snd_soc_codec_get_drvdata(codec);
|
||||
int ret;
|
||||
|
||||
codec->control_data = wm8904->regmap;
|
||||
|
||||
switch (wm8904->devtype) {
|
||||
case WM8904:
|
||||
@ -2063,12 +2060,6 @@ static int wm8904_probe(struct snd_soc_codec *codec)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
wm8904_handle_pdata(codec);
|
||||
|
||||
wm8904_add_widgets(codec);
|
||||
|
@ -712,12 +712,6 @@ static int wm8940_probe(struct snd_soc_codec *codec)
|
||||
int ret;
|
||||
u16 reg;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = wm8940_reset(codec);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to issue reset\n");
|
||||
|
@ -896,14 +896,6 @@ static int wm8955_probe(struct snd_soc_codec *codec)
|
||||
struct wm8955_pdata *pdata = dev_get_platdata(codec->dev);
|
||||
int ret, i;
|
||||
|
||||
codec->control_data = wm8955->regmap;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(wm8955->supplies); i++)
|
||||
wm8955->supplies[i].supply = wm8955_supply_names[i];
|
||||
|
||||
|
@ -976,12 +976,6 @@ static int wm8960_probe(struct snd_soc_codec *codec)
|
||||
wm8960->set_bias_level = wm8960_set_bias_level_capless;
|
||||
}
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = wm8960_reset(codec);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to issue reset\n");
|
||||
|
@ -836,15 +836,8 @@ static struct snd_soc_dai_driver wm8961_dai = {
|
||||
static int wm8961_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct snd_soc_dapm_context *dapm = &codec->dapm;
|
||||
int ret = 0;
|
||||
u16 reg;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Enable class W */
|
||||
reg = snd_soc_read(codec, WM8961_CHARGE_PUMP_B);
|
||||
reg |= WM8961_CP_DYN_PWR_MASK;
|
||||
|
@ -3400,13 +3400,6 @@ static int wm8962_probe(struct snd_soc_codec *codec)
|
||||
bool dmicclk, dmicdat;
|
||||
|
||||
wm8962->codec = codec;
|
||||
codec->control_data = wm8962->regmap;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 16, 16, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
wm8962->disable_nb[0].notifier_call = wm8962_regulator_event_0;
|
||||
wm8962->disable_nb[1].notifier_call = wm8962_regulator_event_1;
|
||||
|
@ -648,12 +648,6 @@ static int wm8971_probe(struct snd_soc_codec *codec)
|
||||
int ret = 0;
|
||||
u16 reg;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
printk(KERN_ERR "wm8971: failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
INIT_DELAYED_WORK(&codec->dapm.delayed_work, wm8971_work);
|
||||
wm8971_workq = create_workqueue("wm8971");
|
||||
if (wm8971_workq == NULL)
|
||||
|
@ -593,12 +593,6 @@ static int wm8974_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = wm8974_reset(codec);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to issue reset\n");
|
||||
|
@ -975,19 +975,13 @@ static const int update_reg[] = {
|
||||
static int wm8978_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct wm8978_priv *wm8978 = snd_soc_codec_get_drvdata(codec);
|
||||
int ret = 0, i;
|
||||
int i;
|
||||
|
||||
/*
|
||||
* Set default system clock to PLL, it is more precise, this is also the
|
||||
* default hardware setting
|
||||
*/
|
||||
wm8978->sysclk = WM8978_PLL;
|
||||
codec->control_data = wm8978->regmap;
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* Set the update bit in all registers, that have one. This way all
|
||||
|
@ -1000,12 +1000,6 @@ static int wm8983_probe(struct snd_soc_codec *codec)
|
||||
int ret;
|
||||
int i;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache i/o: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = snd_soc_write(codec, WM8983_SOFTWARE_RESET, 0);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to issue reset: %d\n", ret);
|
||||
|
@ -1000,13 +1000,6 @@ static int wm8985_probe(struct snd_soc_codec *codec)
|
||||
int ret;
|
||||
|
||||
wm8985 = snd_soc_codec_get_drvdata(codec);
|
||||
codec->control_data = wm8985->regmap;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache i/o: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(wm8985->supplies); i++)
|
||||
wm8985->supplies[i].supply = wm8985_supply_names[i];
|
||||
|
@ -810,16 +810,8 @@ static int wm8988_resume(struct snd_soc_codec *codec)
|
||||
|
||||
static int wm8988_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct wm8988_priv *wm8988 = snd_soc_codec_get_drvdata(codec);
|
||||
int ret = 0;
|
||||
|
||||
codec->control_data = wm8988->regmap;
|
||||
ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = wm8988_reset(codec);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to issue reset\n");
|
||||
|
@ -1292,14 +1292,6 @@ static int wm8990_resume(struct snd_soc_codec *codec)
|
||||
*/
|
||||
static int wm8990_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
printk(KERN_ERR "wm8990: failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
wm8990_reset(codec);
|
||||
|
||||
/* charge output caps */
|
||||
|
@ -1248,14 +1248,6 @@ static int wm8991_remove(struct snd_soc_codec *codec)
|
||||
|
||||
static int wm8991_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache i/o: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
wm8991_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
|
||||
|
||||
return 0;
|
||||
|
@ -1493,13 +1493,6 @@ static int wm8993_probe(struct snd_soc_codec *codec)
|
||||
wm8993->hubs_data.dcs_codes_r = -2;
|
||||
wm8993->hubs_data.series_startup = 1;
|
||||
|
||||
codec->control_data = wm8993->regmap;
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Latch volume update bits and default ZC on */
|
||||
snd_soc_update_bits(codec, WM8993_RIGHT_DAC_DIGITAL_VOLUME,
|
||||
WM8993_DAC_VU, WM8993_DAC_VU);
|
||||
|
@ -2047,13 +2047,6 @@ static int wm8995_probe(struct snd_soc_codec *codec)
|
||||
wm8995 = snd_soc_codec_get_drvdata(codec);
|
||||
wm8995->codec = codec;
|
||||
|
||||
codec->control_data = wm8995->regmap;
|
||||
ret = snd_soc_codec_set_cache_io(codec, 16, 16, SND_SOC_REGMAP);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to set cache i/o: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(wm8995->supplies); i++)
|
||||
wm8995->supplies[i].supply = wm8995_supply_names[i];
|
||||
|
||||
|
@ -2628,14 +2628,6 @@ static int wm8996_probe(struct snd_soc_codec *codec)
|
||||
init_completion(&wm8996->dcs_done);
|
||||
init_completion(&wm8996->fll_lock);
|
||||
|
||||
codec->control_data = wm8996->regmap;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 16, 16, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (wm8996->pdata.num_retune_mobile_cfgs)
|
||||
wm8996_retune_mobile_pdata(codec);
|
||||
else
|
||||
@ -2674,13 +2666,11 @@ static int wm8996_probe(struct snd_soc_codec *codec)
|
||||
} else {
|
||||
dev_err(codec->dev, "Failed to request IRQ: %d\n",
|
||||
ret);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
err:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int wm8996_remove(struct snd_soc_codec *codec)
|
||||
|
@ -1265,15 +1265,6 @@ static struct snd_soc_dai_driver wm9081_dai = {
|
||||
static int wm9081_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct wm9081_priv *wm9081 = snd_soc_codec_get_drvdata(codec);
|
||||
int ret;
|
||||
|
||||
codec->control_data = wm9081->regmap;
|
||||
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Enable zero cross by default */
|
||||
snd_soc_update_bits(codec, WM9081_ANALOGUE_LINEOUT,
|
||||
@ -1288,7 +1279,7 @@ static int wm9081_probe(struct snd_soc_codec *codec)
|
||||
ARRAY_SIZE(wm9081_eq_controls));
|
||||
}
|
||||
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int wm9081_remove(struct snd_soc_codec *codec)
|
||||
|
@ -522,16 +522,6 @@ static int wm9090_set_bias_level(struct snd_soc_codec *codec,
|
||||
|
||||
static int wm9090_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct wm9090_priv *wm9090 = dev_get_drvdata(codec->dev);
|
||||
int ret;
|
||||
|
||||
codec->control_data = wm9090->regmap;
|
||||
ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_REGMAP);
|
||||
if (ret != 0) {
|
||||
dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Configure some defaults; they will be written out when we
|
||||
* bring the bias up.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user