Skip to content

Commit

Permalink
ASoC: Add context parameter to card DAPM callbacks
Browse files Browse the repository at this point in the history
The card callback will get called for each DAPM context in the card so it
can be useful for it to know which device is currently undergoing a
transition.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
  • Loading branch information
Mark Brown committed Jun 6, 2011
1 parent 171ec6b commit d4c6005
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 3 deletions.
2 changes: 2 additions & 0 deletions include/sound/soc.h
Original file line number Diff line number Diff line change
Expand Up @@ -726,8 +726,10 @@ struct snd_soc_card {

/* callbacks */
int (*set_bias_level)(struct snd_soc_card *,
struct snd_soc_dapm_context *dapm,
enum snd_soc_bias_level level);
int (*set_bias_level_post)(struct snd_soc_card *,
struct snd_soc_dapm_context *dapm,
enum snd_soc_bias_level level);

long pmdown_time;
Expand Down
1 change: 1 addition & 0 deletions sound/soc/atmel/sam9g20_wm8731.c
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ static struct snd_soc_ops at91sam9g20ek_ops = {
};

static int at91sam9g20ek_set_bias_level(struct snd_soc_card *card,
struct snd_soc_dapm_context *dapm,
enum snd_soc_bias_level level)
{
static int mclk_on;
Expand Down
3 changes: 2 additions & 1 deletion sound/soc/omap/ams-delta.c
Original file line number Diff line number Diff line change
Expand Up @@ -427,7 +427,8 @@ static struct snd_soc_ops ams_delta_ops = {

/* Board specific codec bias level control */
static int ams_delta_set_bias_level(struct snd_soc_card *card,
enum snd_soc_bias_level level)
struct snd_soc_dapm_context *dapm,
enum snd_soc_bias_level level)
{
struct snd_soc_codec *codec = card->rtd->codec;

Expand Down
4 changes: 4 additions & 0 deletions sound/soc/samsung/speyside.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,15 @@
#define WM8915_HPSEL_GPIO 214

static int speyside_set_bias_level(struct snd_soc_card *card,
struct snd_soc_dapm_context *dapm,
enum snd_soc_bias_level level)
{
struct snd_soc_dai *codec_dai = card->rtd[0].codec_dai;
int ret;

if (dapm->dev != codec_dai->dev)
return 0;

switch (level) {
case SND_SOC_BIAS_STANDBY:
ret = snd_soc_dai_set_sysclk(codec_dai, WM8915_SYSCLK_MCLK2,
Expand Down
4 changes: 2 additions & 2 deletions sound/soc/soc-dapm.c
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ static int snd_soc_dapm_set_bias_level(struct snd_soc_dapm_context *dapm,
trace_snd_soc_bias_level_start(card, level);

if (card && card->set_bias_level)
ret = card->set_bias_level(card, level);
ret = card->set_bias_level(card, dapm, level);
if (ret != 0)
goto out;

Expand All @@ -154,7 +154,7 @@ static int snd_soc_dapm_set_bias_level(struct snd_soc_dapm_context *dapm,
goto out;

if (card && card->set_bias_level_post)
ret = card->set_bias_level_post(card, level);
ret = card->set_bias_level_post(card, dapm, level);
out:
trace_snd_soc_bias_level_done(card, level);

Expand Down

0 comments on commit d4c6005

Please sign in to comment.