diff options
Diffstat (limited to 'include/sound/soc.h')
| -rw-r--r-- | include/sound/soc.h | 29 | 
1 files changed, 24 insertions, 5 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h index a6a059ca387..9eb0e4db483 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h @@ -324,6 +324,8 @@ struct snd_soc_dai_link;  struct snd_soc_platform_driver;  struct snd_soc_codec;  struct snd_soc_codec_driver; +struct snd_soc_component; +struct snd_soc_component_driver;  struct soc_enum;  struct snd_soc_jack;  struct snd_soc_jack_zone; @@ -371,12 +373,16 @@ int snd_soc_suspend(struct device *dev);  int snd_soc_resume(struct device *dev);  int snd_soc_poweroff(struct device *dev);  int snd_soc_register_platform(struct device *dev, -		struct snd_soc_platform_driver *platform_drv); +		const struct snd_soc_platform_driver *platform_drv);  void snd_soc_unregister_platform(struct device *dev);  int snd_soc_register_codec(struct device *dev,  		const struct snd_soc_codec_driver *codec_drv,  		struct snd_soc_dai_driver *dai_drv, int num_dai);  void snd_soc_unregister_codec(struct device *dev); +int snd_soc_register_component(struct device *dev, +			 const struct snd_soc_component_driver *cmpnt_drv, +			 struct snd_soc_dai_driver *dai_drv, int num_dai); +void snd_soc_unregister_component(struct device *dev);  int snd_soc_codec_volatile_register(struct snd_soc_codec *codec,  				    unsigned int reg);  int snd_soc_codec_readable_register(struct snd_soc_codec *codec, @@ -801,10 +807,10 @@ struct snd_soc_platform_driver {  		struct snd_soc_dai *);  	/* platform stream pcm ops */ -	struct snd_pcm_ops *ops; +	const struct snd_pcm_ops *ops;  	/* platform stream compress ops */ -	struct snd_compr_ops *compr_ops; +	const struct snd_compr_ops *compr_ops;  	/* platform stream completion event */  	int (*stream_event)(struct snd_soc_dapm_context *dapm, int event); @@ -823,7 +829,7 @@ struct snd_soc_platform {  	const char *name;  	int id;  	struct device *dev; -	struct snd_soc_platform_driver *driver; +	const struct snd_soc_platform_driver *driver;  	struct mutex mutex;  	unsigned int suspended:1; /* platform is suspended */ @@ -841,6 +847,20 @@ struct snd_soc_platform {  #endif  }; +struct snd_soc_component_driver { +	const char *name; +}; + +struct snd_soc_component { +	const char *name; +	int id; +	int num_dai; +	struct device *dev; +	struct list_head list; + +	const struct snd_soc_component_driver *driver; +}; +  struct snd_soc_dai_link {  	/* config - must be set by machine driver */  	const char *name;			/* Codec name */ @@ -1086,7 +1106,6 @@ struct soc_enum {  	unsigned int mask;  	const char * const *texts;  	const unsigned int *values; -	void *dapm;  };  /* codec IO */  |