aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/sound/soc-dapm.h4
-rw-r--r--sound/soc/soc-dapm.c7
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: