diff options
Diffstat (limited to 'include/sound/soc.h')
| -rw-r--r-- | include/sound/soc.h | 26 | 
1 files changed, 26 insertions, 0 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h index 0d7718f9280..5d234a8c250 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h @@ -169,6 +169,23 @@  	.private_value = (unsigned long)&xenum }  /* + * Simplified versions of above macros, declaring a struct and calculating + * ARRAY_SIZE internally + */ +#define SOC_ENUM_DOUBLE_DECL(name, xreg, xshift_l, xshift_r, xtexts) \ +	struct soc_enum name = SOC_ENUM_DOUBLE(xreg, xshift_l, xshift_r, \ +						ARRAY_SIZE(xtexts), xtexts) +#define SOC_ENUM_SINGLE_DECL(name, xreg, xshift, xtexts) \ +	SOC_ENUM_DOUBLE_DECL(name, xreg, xshift, xshift, xtexts) +#define SOC_ENUM_SINGLE_EXT_DECL(name, xtexts) \ +	struct soc_enum name = SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(xtexts), xtexts) +#define SOC_VALUE_ENUM_DOUBLE_DECL(name, xreg, xshift_l, xshift_r, xmask, xtexts, xvalues) \ +	struct soc_enum name = SOC_VALUE_ENUM_DOUBLE(xreg, xshift_l, xshift_r, xmask, \ +							ARRAY_SIZE(xtexts), xtexts, xvalues) +#define SOC_VALUE_ENUM_SINGLE_DECL(name, xreg, xshift, xmask, xtexts, xvalues) \ +	SOC_VALUE_ENUM_DOUBLE_DECL(name, xreg, xshift, xshift, xmask, xtexts, xvalues) + +/*   * Bias levels   *   * @ON:      Bias is fully on for audio playback and capture operations. @@ -253,6 +270,9 @@ void snd_soc_jack_free_gpios(struct snd_soc_jack *jack, int count,  /* codec register bit access */  int snd_soc_update_bits(struct snd_soc_codec *codec, unsigned short reg,  				unsigned int mask, unsigned int value); +int snd_soc_update_bits_locked(struct snd_soc_codec *codec, +			       unsigned short reg, unsigned int mask, +			       unsigned int value);  int snd_soc_test_bits(struct snd_soc_codec *codec, unsigned short reg,  				unsigned int mask, unsigned int value); @@ -402,6 +422,10 @@ struct snd_soc_codec {  	short reg_cache_size;  	short reg_cache_step; +	unsigned int idle_bias_off:1; /* Use BIAS_OFF instead of STANDBY */ +	unsigned int cache_only:1;  /* Suppress writes to hardware */ +	unsigned int cache_sync:1; /* Cache needs to be synced to hardware */ +  	/* dapm */  	u32 pop_time;  	struct list_head dapm_widgets; @@ -497,6 +521,8 @@ struct snd_soc_card {  	int (*set_bias_level)(struct snd_soc_card *,  			      enum snd_soc_bias_level level); +	long pmdown_time; +  	/* CPU <--> Codec DAI links  */  	struct snd_soc_dai_link *dai_link;  	int num_links;  |