diff options
Diffstat (limited to 'include/sound/soc-dapm.h')
| -rw-r--r-- | include/sound/soc-dapm.h | 24 | 
1 files changed, 21 insertions, 3 deletions
diff --git a/include/sound/soc-dapm.h b/include/sound/soc-dapm.h index a7def6a9a030..ec8a45f9a069 100644 --- a/include/sound/soc-dapm.h +++ b/include/sound/soc-dapm.h @@ -140,16 +140,30 @@  #define SND_SOC_DAPM_DAC(wname, stname, wreg, wshift, winvert) \  {	.id = snd_soc_dapm_dac, .name = wname, .sname = stname, .reg = wreg, \  	.shift = wshift, .invert = winvert} +#define SND_SOC_DAPM_DAC_E(wname, stname, wreg, wshift, winvert, \ +			   wevent, wflags)				\ +{	.id = snd_soc_dapm_dac, .name = wname, .sname = stname, .reg = wreg, \ +	.shift = wshift, .invert = winvert, \ +	.event = wevent, .event_flags = wflags}  #define SND_SOC_DAPM_ADC(wname, stname, wreg, wshift, winvert) \  {	.id = snd_soc_dapm_adc, .name = wname, .sname = stname, .reg = wreg, \  	.shift = wshift, .invert = winvert} +#define SND_SOC_DAPM_ADC_E(wname, stname, wreg, wshift, winvert, \ +			   wevent, wflags)				\ +{	.id = snd_soc_dapm_adc, .name = wname, .sname = stname, .reg = wreg, \ +	.shift = wshift, .invert = winvert, \ +	.event = wevent, .event_flags = wflags} -/* generic register modifier widget */ +/* generic widgets */  #define SND_SOC_DAPM_REG(wid, wname, wreg, wshift, wmask, won_val, woff_val) \  {	.id = wid, .name = wname, .kcontrols = NULL, .num_kcontrols = 0, \  	.reg = -((wreg) + 1), .shift = wshift, .mask = wmask, \  	.on_val = won_val, .off_val = woff_val, .event = dapm_reg_event, \  	.event_flags = SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD} +#define SND_SOC_DAPM_SUPPLY(wname, wreg, wshift, winvert, wevent, wflags) \ +{	.id = snd_soc_dapm_supply, .name = wname, .reg = wreg,	\ +	.shift = wshift, .invert = winvert, .event = wevent, \ +	.event_flags = wflags}  /* dapm kcontrol types */  #define SOC_DAPM_SINGLE(xname, reg, shift, max, invert) \ @@ -265,8 +279,6 @@ int snd_soc_dapm_add_routes(struct snd_soc_codec *codec,  /* dapm events */  int snd_soc_dapm_stream_event(struct snd_soc_codec *codec, char *stream,  	int event); -int snd_soc_dapm_set_bias_level(struct snd_soc_device *socdev, -	enum snd_soc_bias_level level);  /* dapm sys fs - used by the core */  int snd_soc_dapm_sys_add(struct device *dev); @@ -298,6 +310,7 @@ enum snd_soc_dapm_type {  	snd_soc_dapm_vmid,			/* codec bias/vmid - to minimise pops */  	snd_soc_dapm_pre,			/* machine specific pre widget - exec first */  	snd_soc_dapm_post,			/* machine specific post widget - exec last */ +	snd_soc_dapm_supply,		/* power/clock supply */  };  /* @@ -357,6 +370,8 @@ struct snd_soc_dapm_widget {  	unsigned char suspend:1;		/* was active before suspend */  	unsigned char pmdown:1;			/* waiting for timeout */ +	int (*power_check)(struct snd_soc_dapm_widget *w); +  	/* external events */  	unsigned short event_flags;		/* flags to specify event types */  	int (*event)(struct snd_soc_dapm_widget*, struct snd_kcontrol *, int); @@ -368,6 +383,9 @@ struct snd_soc_dapm_widget {  	/* widget input and outputs */  	struct list_head sources;  	struct list_head sinks; + +	/* used during DAPM updates */ +	struct list_head power_list;  };  #endif  |