Commit f928badf authored by Mark Brown's avatar Mark Brown

Merge remote-tracking branch 'asoc/topic/codecs' into asoc-next

parents 9780b684 ab64246c
...@@ -918,8 +918,7 @@ static int isabelle_hw_params(struct snd_pcm_substream *substream, ...@@ -918,8 +918,7 @@ static int isabelle_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params, struct snd_pcm_hw_params *params,
struct snd_soc_dai *dai) struct snd_soc_dai *dai)
{ {
struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_codec *codec = dai->codec;
struct snd_soc_codec *codec = rtd->codec;
u16 aif = 0; u16 aif = 0;
unsigned int fs_val = 0; unsigned int fs_val = 0;
......
...@@ -106,8 +106,7 @@ static int mc13783_pcm_hw_params_dac(struct snd_pcm_substream *substream, ...@@ -106,8 +106,7 @@ static int mc13783_pcm_hw_params_dac(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params, struct snd_pcm_hw_params *params,
struct snd_soc_dai *dai) struct snd_soc_dai *dai)
{ {
struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_codec *codec = dai->codec;
struct snd_soc_codec *codec = rtd->codec;
unsigned int rate = params_rate(params); unsigned int rate = params_rate(params);
int i; int i;
...@@ -126,8 +125,7 @@ static int mc13783_pcm_hw_params_codec(struct snd_pcm_substream *substream, ...@@ -126,8 +125,7 @@ static int mc13783_pcm_hw_params_codec(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params, struct snd_pcm_hw_params *params,
struct snd_soc_dai *dai) struct snd_soc_dai *dai)
{ {
struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_codec *codec = dai->codec;
struct snd_soc_codec *codec = rtd->codec;
unsigned int rate = params_rate(params); unsigned int rate = params_rate(params);
unsigned int val; unsigned int val;
......
...@@ -1594,8 +1594,7 @@ static int get_clk_info(int sclk, int rate) ...@@ -1594,8 +1594,7 @@ static int get_clk_info(int sclk, int rate)
static int rt5640_hw_params(struct snd_pcm_substream *substream, static int rt5640_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params, struct snd_soc_dai *dai) struct snd_pcm_hw_params *params, struct snd_soc_dai *dai)
{ {
struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_codec *codec = dai->codec;
struct snd_soc_codec *codec = rtd->codec;
struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec);
unsigned int val_len = 0, val_clk, mask_clk; unsigned int val_len = 0, val_clk, mask_clk;
int dai_sel, pre_div, bclk_ms, frame_size; int dai_sel, pre_div, bclk_ms, frame_size;
......
...@@ -193,8 +193,7 @@ static int sta529_hw_params(struct snd_pcm_substream *substream, ...@@ -193,8 +193,7 @@ static int sta529_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params, struct snd_pcm_hw_params *params,
struct snd_soc_dai *dai) struct snd_soc_dai *dai)
{ {
struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_codec *codec = dai->codec;
struct snd_soc_codec *codec = rtd->codec;
int pdata, play_freq_val, record_freq_val; int pdata, play_freq_val, record_freq_val;
int bclk_to_fs_ratio; int bclk_to_fs_ratio;
......
...@@ -129,7 +129,7 @@ static const struct regmap_range_cfg aic31xx_ranges[] = { ...@@ -129,7 +129,7 @@ static const struct regmap_range_cfg aic31xx_ranges[] = {
}, },
}; };
struct regmap_config aic31xx_i2c_regmap = { static const struct regmap_config aic31xx_i2c_regmap = {
.reg_bits = 8, .reg_bits = 8,
.val_bits = 8, .val_bits = 8,
.writeable_reg = aic31xx_writeable, .writeable_reg = aic31xx_writeable,
...@@ -321,9 +321,9 @@ static const struct snd_kcontrol_new ldac_in_control = ...@@ -321,9 +321,9 @@ static const struct snd_kcontrol_new ldac_in_control =
static const struct snd_kcontrol_new rdac_in_control = static const struct snd_kcontrol_new rdac_in_control =
SOC_DAPM_ENUM("DAC Right Input", rdac_in_enum); SOC_DAPM_ENUM("DAC Right Input", rdac_in_enum);
int aic31xx_wait_bits(struct aic31xx_priv *aic31xx, unsigned int reg, static int aic31xx_wait_bits(struct aic31xx_priv *aic31xx, unsigned int reg,
unsigned int mask, unsigned int wbits, int sleep, unsigned int mask, unsigned int wbits, int sleep,
int count) int count)
{ {
unsigned int bits; unsigned int bits;
int counter = count; int counter = count;
...@@ -753,10 +753,9 @@ static int aic31xx_setup_pll(struct snd_soc_codec *codec, ...@@ -753,10 +753,9 @@ static int aic31xx_setup_pll(struct snd_soc_codec *codec,
static int aic31xx_hw_params(struct snd_pcm_substream *substream, static int aic31xx_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params, struct snd_pcm_hw_params *params,
struct snd_soc_dai *tmp) struct snd_soc_dai *dai)
{ {
struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_codec *codec = dai->codec;
struct snd_soc_codec *codec = rtd->codec;
u8 data = 0; u8 data = 0;
dev_dbg(codec->dev, "## %s: format %d width %d rate %d\n", dev_dbg(codec->dev, "## %s: format %d width %d rate %d\n",
...@@ -943,7 +942,6 @@ static void aic31xx_clk_on(struct snd_soc_codec *codec) ...@@ -943,7 +942,6 @@ static void aic31xx_clk_on(struct snd_soc_codec *codec)
static void aic31xx_clk_off(struct snd_soc_codec *codec) static void aic31xx_clk_off(struct snd_soc_codec *codec)
{ {
struct aic31xx_priv *aic31xx = snd_soc_codec_get_drvdata(codec);
u8 mask = AIC31XX_PM_MASK; u8 mask = AIC31XX_PM_MASK;
u8 off = 0; u8 off = 0;
...@@ -1021,7 +1019,8 @@ static int aic31xx_set_bias_level(struct snd_soc_codec *codec, ...@@ -1021,7 +1019,8 @@ static int aic31xx_set_bias_level(struct snd_soc_codec *codec,
} }
break; break;
case SND_SOC_BIAS_OFF: case SND_SOC_BIAS_OFF:
aic31xx_power_off(codec); if (codec->dapm.bias_level == SND_SOC_BIAS_STANDBY)
aic31xx_power_off(codec);
break; break;
} }
codec->dapm.bias_level = level; codec->dapm.bias_level = level;
...@@ -1050,18 +1049,9 @@ static int aic31xx_codec_probe(struct snd_soc_codec *codec) ...@@ -1050,18 +1049,9 @@ static int aic31xx_codec_probe(struct snd_soc_codec *codec)
dev_dbg(aic31xx->dev, "## %s\n", __func__); dev_dbg(aic31xx->dev, "## %s\n", __func__);
aic31xx = snd_soc_codec_get_drvdata(codec); aic31xx = snd_soc_codec_get_drvdata(codec);
codec->control_data = aic31xx->regmap;
aic31xx->codec = codec; aic31xx->codec = codec;
ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP);
if (ret != 0) {
dev_err(codec->dev, "snd_soc_codec_set_cache_io failed %d\n",
ret);
return ret;
}
for (i = 0; i < ARRAY_SIZE(aic31xx->supplies); i++) { for (i = 0; i < ARRAY_SIZE(aic31xx->supplies); i++) {
aic31xx->disable_nb[i].nb.notifier_call = aic31xx->disable_nb[i].nb.notifier_call =
aic31xx_regulator_event; aic31xx_regulator_event;
...@@ -1187,7 +1177,7 @@ static void aic31xx_pdata_from_of(struct aic31xx_priv *aic31xx) ...@@ -1187,7 +1177,7 @@ static void aic31xx_pdata_from_of(struct aic31xx_priv *aic31xx)
} }
#endif /* CONFIG_OF */ #endif /* CONFIG_OF */
void aic31xx_device_init(struct aic31xx_priv *aic31xx) static void aic31xx_device_init(struct aic31xx_priv *aic31xx)
{ {
int ret, i; int ret, i;
...@@ -1238,7 +1228,6 @@ static int aic31xx_i2c_probe(struct i2c_client *i2c, ...@@ -1238,7 +1228,6 @@ static int aic31xx_i2c_probe(struct i2c_client *i2c,
return -ENOMEM; return -ENOMEM;
aic31xx->regmap = devm_regmap_init_i2c(i2c, regmap_config); aic31xx->regmap = devm_regmap_init_i2c(i2c, regmap_config);
if (IS_ERR(aic31xx->regmap)) { if (IS_ERR(aic31xx->regmap)) {
ret = PTR_ERR(aic31xx->regmap); ret = PTR_ERR(aic31xx->regmap);
dev_err(&i2c->dev, "Failed to allocate register map: %d\n", dev_err(&i2c->dev, "Failed to allocate register map: %d\n",
...@@ -1251,18 +1240,14 @@ static int aic31xx_i2c_probe(struct i2c_client *i2c, ...@@ -1251,18 +1240,14 @@ static int aic31xx_i2c_probe(struct i2c_client *i2c,
aic31xx_device_init(aic31xx); aic31xx_device_init(aic31xx);
ret = snd_soc_register_codec(&i2c->dev, &soc_codec_driver_aic31xx, return snd_soc_register_codec(&i2c->dev, &soc_codec_driver_aic31xx,
aic31xx_dai_driver, aic31xx_dai_driver,
ARRAY_SIZE(aic31xx_dai_driver)); ARRAY_SIZE(aic31xx_dai_driver));
return ret;
} }
static int aic31xx_i2c_remove(struct i2c_client *i2c) static int aic31xx_i2c_remove(struct i2c_client *i2c)
{ {
struct aic31xx_priv *aic31xx = dev_get_drvdata(&i2c->dev); snd_soc_unregister_codec(&i2c->dev);
kfree(aic31xx);
return 0; return 0;
} }
...@@ -1284,7 +1269,7 @@ static struct i2c_driver aic31xx_i2c_driver = { ...@@ -1284,7 +1269,7 @@ static struct i2c_driver aic31xx_i2c_driver = {
.of_match_table = of_match_ptr(tlv320aic31xx_of_match), .of_match_table = of_match_ptr(tlv320aic31xx_of_match),
}, },
.probe = aic31xx_i2c_probe, .probe = aic31xx_i2c_probe,
.remove = (aic31xx_i2c_remove), .remove = aic31xx_i2c_remove,
.id_table = aic31xx_i2c_id, .id_table = aic31xx_i2c_id,
}; };
......
...@@ -203,8 +203,7 @@ static int uda134x_hw_params(struct snd_pcm_substream *substream, ...@@ -203,8 +203,7 @@ static int uda134x_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params, struct snd_pcm_hw_params *params,
struct snd_soc_dai *dai) struct snd_soc_dai *dai)
{ {
struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_codec *codec = dai->codec;
struct snd_soc_codec *codec = rtd->codec;
struct uda134x_priv *uda134x = snd_soc_codec_get_drvdata(codec); struct uda134x_priv *uda134x = snd_soc_codec_get_drvdata(codec);
u8 hw_params; u8 hw_params;
......
...@@ -566,8 +566,7 @@ static int uda1380_pcm_hw_params(struct snd_pcm_substream *substream, ...@@ -566,8 +566,7 @@ static int uda1380_pcm_hw_params(struct snd_pcm_substream *substream,
static void uda1380_pcm_shutdown(struct snd_pcm_substream *substream, static void uda1380_pcm_shutdown(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai) struct snd_soc_dai *dai)
{ {
struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_codec *codec = dai->codec;
struct snd_soc_codec *codec = rtd->codec;
u16 clk = uda1380_read_reg_cache(codec, UDA1380_CLK); u16 clk = uda1380_read_reg_cache(codec, UDA1380_CLK);
/* shut down WSPLL power if running from this clock */ /* shut down WSPLL power if running from this clock */
......
...@@ -504,8 +504,7 @@ static int wm8580_paif_hw_params(struct snd_pcm_substream *substream, ...@@ -504,8 +504,7 @@ static int wm8580_paif_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params, struct snd_pcm_hw_params *params,
struct snd_soc_dai *dai) struct snd_soc_dai *dai)
{ {
struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_codec *codec = dai->codec;
struct snd_soc_codec *codec = rtd->codec;
struct wm8580_priv *wm8580 = snd_soc_codec_get_drvdata(codec); struct wm8580_priv *wm8580 = snd_soc_codec_get_drvdata(codec);
u16 paifa = 0; u16 paifa = 0;
u16 paifb = 0; u16 paifb = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment