aboutsummaryrefslogtreecommitdiffstats
path: root/include/sound/soc.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-05-03 12:10:23 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-05-03 12:10:23 -0400
commit9992ba72327fa0d8bdc9fb624e80f5cce338a711 (patch)
treee0bf31ae53cb19c44674df7e0d0343a26037ad34 /include/sound/soc.h
parent00fdffb5131125dce0702bf61e24a806ec3aed80 (diff)
parent4ca231b2e6ed171107c5b21f9e92d1965fd6fd9e (diff)
Merge tag 'sound-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai: "Mostly many small changes spread as seen in diffstat in sound/* directory by this update. A significant change in the subsystem level is the introduction of snd_soc_component, which will help more generic handling of SoC and off-SoC components. Also, snd_BUG_ON() macro is enabled unconditionally now due to its misuses, so people might hit kernel warnings (it's a good thing for us). - compress-offload: support for capture by Charles Keepax - HD-audio: codec delay support by Dylan Reid - HD-audio: improvements/fixes in generic parser: better headphone mic and headset mic support, jack_modes hint consolidation, proper beep attach/detachment, generalized power filter controls by David Henningsson, et al - HD-audio: Improved management of HDMI codec pins/converters - HD-audio: Better pin/DAC assignment for VIA codecs - HD-audio: Haswell HDMI workarounds - HD-audio: ALC268 codec support, a few new quirks for Chromebooks - USB: regression fixes: USB-MIDI autopm fix, the recent ISO latency fix by Clemens Ladisch - USB: support for DSD formats by Daniel Mack - USB: A few UAC2 device endian/cock fixes by Eldad Zack - USB: quirks for Emu 192kHz support, Novation Twitch DJ controller, Yamaha THRxx devices - HDSPM: updates for TCO controls by Adrian Knoth - ASoC: Add a snd_soc_component object type for generic handling of SoC and off-SoC components by Kuninori Morimoto, - dmaengine: a large set of cleanups and conversions by Lars-Peter Clausen - ASoC DAPM: performance optimizations from Ryo Tsutsui - ASoC DAPM: support for mixer control sharing by Stephen Warren - ASoC: multiplatform ARM cleanups from Arnd Bergmann - ASoC: new codec drivers for AK5385 and TAS5086 from Daniel Mack" * tag 'sound-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (315 commits) ALSA: usb-audio: caiaq: fix endianness bug in snd_usb_caiaq_maschine_dispatch ALSA: asihpi: add format support check in snd_card_asihpi_capture_formats ALSA: pcm_format_to_bits strong-typed conversion ALSA: compress: fix the states to check for allowing read ALSA: hda - Move Thinkpad X220 to use auto parser ALSA: USB: adjust for changed 3.8 USB API ALSA: usb - Avoid unnecessary sample rate changes on USB 2.0 clock sources sound: oss/dmabuf: use dma_map_single ALSA: ali5451: use mdelay instead of large udelay constants ALSA: hda - Add the support for ALC286 codec ALSA: usb-audio: USB quirk for Yamaha THR10C ALSA: usb-audio: USB quirk for Yamaha THR5A ALSA: usb-audio: USB quirk for Yamaha THR10 ALSA: usb-audio: Fix autopm error during probing ALSA: snd-usb: try harder to find USB_DT_CS_ENDPOINT ALSA: sound kconfig typo ALSA: emu10k1: Fix dock firmware loading ASoC: ux500: forward declare msp_i2s_platform_data ASoC: davinci-mcasp: Add Support BCLK-to-LRCLK ratio for TDM modes ASoC: davinci-pcm, davinci-mcasp: Clean up active_serializers ...
Diffstat (limited to 'include/sound/soc.h')
-rw-r--r--include/sound/soc.h33
1 files changed, 28 insertions, 5 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h
index a6a059ca3874..85c15226103b 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -324,6 +324,8 @@ struct snd_soc_dai_link;
324struct snd_soc_platform_driver; 324struct snd_soc_platform_driver;
325struct snd_soc_codec; 325struct snd_soc_codec;
326struct snd_soc_codec_driver; 326struct snd_soc_codec_driver;
327struct snd_soc_component;
328struct snd_soc_component_driver;
327struct soc_enum; 329struct soc_enum;
328struct snd_soc_jack; 330struct snd_soc_jack;
329struct snd_soc_jack_zone; 331struct snd_soc_jack_zone;
@@ -371,12 +373,20 @@ int snd_soc_suspend(struct device *dev);
371int snd_soc_resume(struct device *dev); 373int snd_soc_resume(struct device *dev);
372int snd_soc_poweroff(struct device *dev); 374int snd_soc_poweroff(struct device *dev);
373int snd_soc_register_platform(struct device *dev, 375int snd_soc_register_platform(struct device *dev,
374 struct snd_soc_platform_driver *platform_drv); 376 const struct snd_soc_platform_driver *platform_drv);
375void snd_soc_unregister_platform(struct device *dev); 377void snd_soc_unregister_platform(struct device *dev);
378int snd_soc_add_platform(struct device *dev, struct snd_soc_platform *platform,
379 const struct snd_soc_platform_driver *platform_drv);
380void snd_soc_remove_platform(struct snd_soc_platform *platform);
381struct snd_soc_platform *snd_soc_lookup_platform(struct device *dev);
376int snd_soc_register_codec(struct device *dev, 382int snd_soc_register_codec(struct device *dev,
377 const struct snd_soc_codec_driver *codec_drv, 383 const struct snd_soc_codec_driver *codec_drv,
378 struct snd_soc_dai_driver *dai_drv, int num_dai); 384 struct snd_soc_dai_driver *dai_drv, int num_dai);
379void snd_soc_unregister_codec(struct device *dev); 385void snd_soc_unregister_codec(struct device *dev);
386int snd_soc_register_component(struct device *dev,
387 const struct snd_soc_component_driver *cmpnt_drv,
388 struct snd_soc_dai_driver *dai_drv, int num_dai);
389void snd_soc_unregister_component(struct device *dev);
380int snd_soc_codec_volatile_register(struct snd_soc_codec *codec, 390int snd_soc_codec_volatile_register(struct snd_soc_codec *codec,
381 unsigned int reg); 391 unsigned int reg);
382int snd_soc_codec_readable_register(struct snd_soc_codec *codec, 392int snd_soc_codec_readable_register(struct snd_soc_codec *codec,
@@ -801,10 +811,10 @@ struct snd_soc_platform_driver {
801 struct snd_soc_dai *); 811 struct snd_soc_dai *);
802 812
803 /* platform stream pcm ops */ 813 /* platform stream pcm ops */
804 struct snd_pcm_ops *ops; 814 const struct snd_pcm_ops *ops;
805 815
806 /* platform stream compress ops */ 816 /* platform stream compress ops */
807 struct snd_compr_ops *compr_ops; 817 const struct snd_compr_ops *compr_ops;
808 818
809 /* platform stream completion event */ 819 /* platform stream completion event */
810 int (*stream_event)(struct snd_soc_dapm_context *dapm, int event); 820 int (*stream_event)(struct snd_soc_dapm_context *dapm, int event);
@@ -823,7 +833,7 @@ struct snd_soc_platform {
823 const char *name; 833 const char *name;
824 int id; 834 int id;
825 struct device *dev; 835 struct device *dev;
826 struct snd_soc_platform_driver *driver; 836 const struct snd_soc_platform_driver *driver;
827 struct mutex mutex; 837 struct mutex mutex;
828 838
829 unsigned int suspended:1; /* platform is suspended */ 839 unsigned int suspended:1; /* platform is suspended */
@@ -841,6 +851,20 @@ struct snd_soc_platform {
841#endif 851#endif
842}; 852};
843 853
854struct snd_soc_component_driver {
855 const char *name;
856};
857
858struct snd_soc_component {
859 const char *name;
860 int id;
861 int num_dai;
862 struct device *dev;
863 struct list_head list;
864
865 const struct snd_soc_component_driver *driver;
866};
867
844struct snd_soc_dai_link { 868struct snd_soc_dai_link {
845 /* config - must be set by machine driver */ 869 /* config - must be set by machine driver */
846 const char *name; /* Codec name */ 870 const char *name; /* Codec name */
@@ -1086,7 +1110,6 @@ struct soc_enum {
1086 unsigned int mask; 1110 unsigned int mask;
1087 const char * const *texts; 1111 const char * const *texts;
1088 const unsigned int *values; 1112 const unsigned int *values;
1089 void *dapm;
1090}; 1113};
1091 1114
1092/* codec IO */ 1115/* codec IO */