Commit 45cbdda4 authored by Mark Brown's avatar Mark Brown

Merge remote-tracking branches 'asoc/topic/twl6040', 'asoc/topic/uda134x',...

Merge remote-tracking branches 'asoc/topic/twl6040', 'asoc/topic/uda134x', 'asoc/topic/uda1380' and 'asoc/topic/wl1273' into asoc-next
...@@ -18,18 +18,6 @@ struct uda134x_platform_data { ...@@ -18,18 +18,6 @@ struct uda134x_platform_data {
struct l3_pins l3; struct l3_pins l3;
void (*power) (int); void (*power) (int);
int model; int model;
/*
ALSA SOC usually puts the device in standby mode when it's not used
for sometime. If you unset is_powered_on_standby the driver will
turn off the ADC/DAC when this callback is invoked and turn it back
on when needed. Unfortunately this will result in a very light bump
(it can be audible only with good earphones). If this bothers you
set is_powered_on_standby, you will have slightly higher power
consumption. Please note that sending the L3 command for ADC is
enough to make the bump, so it doesn't make difference if you
completely take off power from the codec.
*/
int is_powered_on_standby;
#define UDA134X_UDA1340 1 #define UDA134X_UDA1340 1
#define UDA134X_UDA1341 2 #define UDA134X_UDA1341 2
#define UDA134X_UDA1344 3 #define UDA134X_UDA1344 3
......
...@@ -1095,25 +1095,6 @@ static struct snd_soc_dai_driver twl6040_dai[] = { ...@@ -1095,25 +1095,6 @@ static struct snd_soc_dai_driver twl6040_dai[] = {
}, },
}; };
#ifdef CONFIG_PM
static int twl6040_suspend(struct snd_soc_codec *codec)
{
twl6040_set_bias_level(codec, SND_SOC_BIAS_OFF);
return 0;
}
static int twl6040_resume(struct snd_soc_codec *codec)
{
twl6040_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
return 0;
}
#else
#define twl6040_suspend NULL
#define twl6040_resume NULL
#endif
static int twl6040_probe(struct snd_soc_codec *codec) static int twl6040_probe(struct snd_soc_codec *codec)
{ {
struct twl6040_data *priv; struct twl6040_data *priv;
...@@ -1160,7 +1141,6 @@ static int twl6040_remove(struct snd_soc_codec *codec) ...@@ -1160,7 +1141,6 @@ static int twl6040_remove(struct snd_soc_codec *codec)
struct twl6040_data *priv = snd_soc_codec_get_drvdata(codec); struct twl6040_data *priv = snd_soc_codec_get_drvdata(codec);
free_irq(priv->plug_irq, codec); free_irq(priv->plug_irq, codec);
twl6040_set_bias_level(codec, SND_SOC_BIAS_OFF);
return 0; return 0;
} }
...@@ -1168,11 +1148,10 @@ static int twl6040_remove(struct snd_soc_codec *codec) ...@@ -1168,11 +1148,10 @@ static int twl6040_remove(struct snd_soc_codec *codec)
static struct snd_soc_codec_driver soc_codec_dev_twl6040 = { static struct snd_soc_codec_driver soc_codec_dev_twl6040 = {
.probe = twl6040_probe, .probe = twl6040_probe,
.remove = twl6040_remove, .remove = twl6040_remove,
.suspend = twl6040_suspend,
.resume = twl6040_resume,
.read = twl6040_read, .read = twl6040_read,
.write = twl6040_write, .write = twl6040_write,
.set_bias_level = twl6040_set_bias_level, .set_bias_level = twl6040_set_bias_level,
.suspend_bias_off = true,
.ignore_pmdown_time = true, .ignore_pmdown_time = true,
.controls = twl6040_snd_controls, .controls = twl6040_snd_controls,
......
...@@ -518,11 +518,6 @@ static int uda134x_soc_probe(struct snd_soc_codec *codec) ...@@ -518,11 +518,6 @@ static int uda134x_soc_probe(struct snd_soc_codec *codec)
uda134x_reset(codec); uda134x_reset(codec);
if (pd->is_powered_on_standby)
uda134x_set_bias_level(codec, SND_SOC_BIAS_ON);
else
uda134x_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
if (pd->model == UDA134X_UDA1341) { if (pd->model == UDA134X_UDA1341) {
widgets = uda1341_dapm_widgets; widgets = uda1341_dapm_widgets;
num_widgets = ARRAY_SIZE(uda1341_dapm_widgets); num_widgets = ARRAY_SIZE(uda1341_dapm_widgets);
...@@ -574,44 +569,21 @@ static int uda134x_soc_remove(struct snd_soc_codec *codec) ...@@ -574,44 +569,21 @@ static int uda134x_soc_remove(struct snd_soc_codec *codec)
{ {
struct uda134x_priv *uda134x = snd_soc_codec_get_drvdata(codec); struct uda134x_priv *uda134x = snd_soc_codec_get_drvdata(codec);
uda134x_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
uda134x_set_bias_level(codec, SND_SOC_BIAS_OFF);
kfree(uda134x); kfree(uda134x);
return 0; return 0;
} }
#if defined(CONFIG_PM)
static int uda134x_soc_suspend(struct snd_soc_codec *codec)
{
uda134x_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
uda134x_set_bias_level(codec, SND_SOC_BIAS_OFF);
return 0;
}
static int uda134x_soc_resume(struct snd_soc_codec *codec)
{
uda134x_set_bias_level(codec, SND_SOC_BIAS_PREPARE);
uda134x_set_bias_level(codec, SND_SOC_BIAS_ON);
return 0;
}
#else
#define uda134x_soc_suspend NULL
#define uda134x_soc_resume NULL
#endif /* CONFIG_PM */
static struct snd_soc_codec_driver soc_codec_dev_uda134x = { static struct snd_soc_codec_driver soc_codec_dev_uda134x = {
.probe = uda134x_soc_probe, .probe = uda134x_soc_probe,
.remove = uda134x_soc_remove, .remove = uda134x_soc_remove,
.suspend = uda134x_soc_suspend,
.resume = uda134x_soc_resume,
.reg_cache_size = sizeof(uda134x_reg), .reg_cache_size = sizeof(uda134x_reg),
.reg_word_size = sizeof(u8), .reg_word_size = sizeof(u8),
.reg_cache_default = uda134x_reg, .reg_cache_default = uda134x_reg,
.reg_cache_step = 1, .reg_cache_step = 1,
.read = uda134x_read_reg_cache, .read = uda134x_read_reg_cache,
.write = uda134x_write,
.set_bias_level = uda134x_set_bias_level, .set_bias_level = uda134x_set_bias_level,
.suspend_bias_off = true,
.dapm_widgets = uda134x_dapm_widgets, .dapm_widgets = uda134x_dapm_widgets,
.num_dapm_widgets = ARRAY_SIZE(uda134x_dapm_widgets), .num_dapm_widgets = ARRAY_SIZE(uda134x_dapm_widgets),
.dapm_routes = uda134x_dapm_routes, .dapm_routes = uda134x_dapm_routes,
......
...@@ -693,18 +693,6 @@ static struct snd_soc_dai_driver uda1380_dai[] = { ...@@ -693,18 +693,6 @@ static struct snd_soc_dai_driver uda1380_dai[] = {
}, },
}; };
static int uda1380_suspend(struct snd_soc_codec *codec)
{
uda1380_set_bias_level(codec, SND_SOC_BIAS_OFF);
return 0;
}
static int uda1380_resume(struct snd_soc_codec *codec)
{
uda1380_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
return 0;
}
static int uda1380_probe(struct snd_soc_codec *codec) static int uda1380_probe(struct snd_soc_codec *codec)
{ {
struct uda1380_platform_data *pdata =codec->dev->platform_data; struct uda1380_platform_data *pdata =codec->dev->platform_data;
...@@ -739,8 +727,6 @@ static int uda1380_probe(struct snd_soc_codec *codec) ...@@ -739,8 +727,6 @@ static int uda1380_probe(struct snd_soc_codec *codec)
INIT_WORK(&uda1380->work, uda1380_flush_work); INIT_WORK(&uda1380->work, uda1380_flush_work);
/* power on device */
uda1380_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
/* set clock input */ /* set clock input */
switch (pdata->dac_clk) { switch (pdata->dac_clk) {
case UDA1380_DAC_CLK_SYSCLK: case UDA1380_DAC_CLK_SYSCLK:
...@@ -766,8 +752,6 @@ static int uda1380_remove(struct snd_soc_codec *codec) ...@@ -766,8 +752,6 @@ static int uda1380_remove(struct snd_soc_codec *codec)
{ {
struct uda1380_platform_data *pdata =codec->dev->platform_data; struct uda1380_platform_data *pdata =codec->dev->platform_data;
uda1380_set_bias_level(codec, SND_SOC_BIAS_OFF);
gpio_free(pdata->gpio_reset); gpio_free(pdata->gpio_reset);
gpio_free(pdata->gpio_power); gpio_free(pdata->gpio_power);
...@@ -777,11 +761,11 @@ static int uda1380_remove(struct snd_soc_codec *codec) ...@@ -777,11 +761,11 @@ static int uda1380_remove(struct snd_soc_codec *codec)
static struct snd_soc_codec_driver soc_codec_dev_uda1380 = { static struct snd_soc_codec_driver soc_codec_dev_uda1380 = {
.probe = uda1380_probe, .probe = uda1380_probe,
.remove = uda1380_remove, .remove = uda1380_remove,
.suspend = uda1380_suspend,
.resume = uda1380_resume,
.read = uda1380_read_reg_cache, .read = uda1380_read_reg_cache,
.write = uda1380_write, .write = uda1380_write,
.set_bias_level = uda1380_set_bias_level, .set_bias_level = uda1380_set_bias_level,
.suspend_bias_off = true,
.reg_cache_size = ARRAY_SIZE(uda1380_reg), .reg_cache_size = ARRAY_SIZE(uda1380_reg),
.reg_word_size = sizeof(u16), .reg_word_size = sizeof(u16),
.reg_cache_default = uda1380_reg, .reg_cache_default = uda1380_reg,
......
...@@ -452,7 +452,6 @@ static int wl1273_probe(struct snd_soc_codec *codec) ...@@ -452,7 +452,6 @@ static int wl1273_probe(struct snd_soc_codec *codec)
{ {
struct wl1273_core **core = codec->dev->platform_data; struct wl1273_core **core = codec->dev->platform_data;
struct wl1273_priv *wl1273; struct wl1273_priv *wl1273;
int r;
dev_dbg(codec->dev, "%s.\n", __func__); dev_dbg(codec->dev, "%s.\n", __func__);
...@@ -470,12 +469,7 @@ static int wl1273_probe(struct snd_soc_codec *codec) ...@@ -470,12 +469,7 @@ static int wl1273_probe(struct snd_soc_codec *codec)
snd_soc_codec_set_drvdata(codec, wl1273); snd_soc_codec_set_drvdata(codec, wl1273);
r = snd_soc_add_codec_controls(codec, wl1273_controls, return 0;
ARRAY_SIZE(wl1273_controls));
if (r)
kfree(wl1273);
return r;
} }
static int wl1273_remove(struct snd_soc_codec *codec) static int wl1273_remove(struct snd_soc_codec *codec)
...@@ -492,6 +486,8 @@ static struct snd_soc_codec_driver soc_codec_dev_wl1273 = { ...@@ -492,6 +486,8 @@ static struct snd_soc_codec_driver soc_codec_dev_wl1273 = {
.probe = wl1273_probe, .probe = wl1273_probe,
.remove = wl1273_remove, .remove = wl1273_remove,
.controls = wl1273_controls,
.num_controls = ARRAY_SIZE(wl1273_controls),
.dapm_widgets = wl1273_dapm_widgets, .dapm_widgets = wl1273_dapm_widgets,
.num_dapm_widgets = ARRAY_SIZE(wl1273_dapm_widgets), .num_dapm_widgets = ARRAY_SIZE(wl1273_dapm_widgets),
.dapm_routes = wl1273_dapm_routes, .dapm_routes = wl1273_dapm_routes,
......
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