diff options
-rw-r--r-- | include/sound/soc-dapm.h | 4 | ||||
-rw-r--r-- | sound/soc/soc-dapm.c | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/include/sound/soc-dapm.h b/include/sound/soc-dapm.h index 0c159a7d211e..d26a9b784772 100644 --- a/include/sound/soc-dapm.h +++ b/include/sound/soc-dapm.h | |||
@@ -43,6 +43,9 @@ | |||
43 | .num_kcontrols = 0} | 43 | .num_kcontrols = 0} |
44 | 44 | ||
45 | /* platform domain */ | 45 | /* platform domain */ |
46 | #define SND_SOC_DAPM_SIGGEN(wname) \ | ||
47 | { .id = snd_soc_dapm_siggen, .name = wname, .kcontrol_news = NULL, \ | ||
48 | .num_kcontrols = 0, .reg = SND_SOC_NOPM } | ||
46 | #define SND_SOC_DAPM_INPUT(wname) \ | 49 | #define SND_SOC_DAPM_INPUT(wname) \ |
47 | { .id = snd_soc_dapm_input, .name = wname, .kcontrol_news = NULL, \ | 50 | { .id = snd_soc_dapm_input, .name = wname, .kcontrol_news = NULL, \ |
48 | .num_kcontrols = 0, .reg = SND_SOC_NOPM } | 51 | .num_kcontrols = 0, .reg = SND_SOC_NOPM } |
@@ -410,6 +413,7 @@ enum snd_soc_dapm_type { | |||
410 | snd_soc_dapm_supply, /* power/clock supply */ | 413 | snd_soc_dapm_supply, /* power/clock supply */ |
411 | snd_soc_dapm_aif_in, /* audio interface input */ | 414 | snd_soc_dapm_aif_in, /* audio interface input */ |
412 | snd_soc_dapm_aif_out, /* audio interface output */ | 415 | snd_soc_dapm_aif_out, /* audio interface output */ |
416 | snd_soc_dapm_siggen, /* signal generator */ | ||
413 | }; | 417 | }; |
414 | 418 | ||
415 | /* | 419 | /* |
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c index da5c1ae7cc30..6bb327e431a5 100644 --- a/sound/soc/soc-dapm.c +++ b/sound/soc/soc-dapm.c | |||
@@ -339,6 +339,7 @@ static void dapm_set_path_status(struct snd_soc_dapm_widget *w, | |||
339 | case snd_soc_dapm_output: | 339 | case snd_soc_dapm_output: |
340 | case snd_soc_dapm_adc: | 340 | case snd_soc_dapm_adc: |
341 | case snd_soc_dapm_input: | 341 | case snd_soc_dapm_input: |
342 | case snd_soc_dapm_siggen: | ||
342 | case snd_soc_dapm_dac: | 343 | case snd_soc_dapm_dac: |
343 | case snd_soc_dapm_micbias: | 344 | case snd_soc_dapm_micbias: |
344 | case snd_soc_dapm_vmid: | 345 | case snd_soc_dapm_vmid: |
@@ -772,6 +773,11 @@ static int is_connected_input_ep(struct snd_soc_dapm_widget *widget) | |||
772 | return widget->inputs; | 773 | return widget->inputs; |
773 | } | 774 | } |
774 | 775 | ||
776 | /* signal generator */ | ||
777 | if (widget->id == snd_soc_dapm_siggen) { | ||
778 | widget->inputs = snd_soc_dapm_suspend_check(widget); | ||
779 | return widget->inputs; | ||
780 | } | ||
775 | } | 781 | } |
776 | 782 | ||
777 | list_for_each_entry(path, &widget->sources, list_sink) { | 783 | list_for_each_entry(path, &widget->sources, list_sink) { |
@@ -1982,6 +1988,7 @@ static int snd_soc_dapm_add_route(struct snd_soc_dapm_context *dapm, | |||
1982 | case snd_soc_dapm_out_drv: | 1988 | case snd_soc_dapm_out_drv: |
1983 | case snd_soc_dapm_input: | 1989 | case snd_soc_dapm_input: |
1984 | case snd_soc_dapm_output: | 1990 | case snd_soc_dapm_output: |
1991 | case snd_soc_dapm_siggen: | ||
1985 | case snd_soc_dapm_micbias: | 1992 | case snd_soc_dapm_micbias: |
1986 | case snd_soc_dapm_vmid: | 1993 | case snd_soc_dapm_vmid: |
1987 | case snd_soc_dapm_pre: | 1994 | case snd_soc_dapm_pre: |