Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
soc-core.c File Reference
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/pm.h>
#include <linux/bitops.h>
#include <linux/debugfs.h>
#include <linux/platform_device.h>
#include <linux/ctype.h>
#include <linux/slab.h>
#include <linux/of.h>
#include <sound/ac97_codec.h>
#include <sound/core.h>
#include <sound/jack.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
#include <sound/soc.h>
#include <sound/soc-dpcm.h>
#include <sound/initval.h>
#include <trace/events/asoc.h>

Go to the source code of this file.

Macros

#define CREATE_TRACE_POINTS
 
#define NAME_SIZE   32
 
#define snd_soc_suspend   NULL
 
#define snd_soc_resume   NULL
 

Functions

 module_param (pmdown_time, int, 0)
 
 MODULE_PARM_DESC (pmdown_time,"DAPM stream powerdown time (msecs)")
 
struct snd_pcm_substreamsnd_soc_get_dai_substream (struct snd_soc_card *card, const char *dai_link, int stream)
 
 EXPORT_SYMBOL_GPL (snd_soc_get_dai_substream)
 
struct snd_soc_pcm_runtimesnd_soc_get_pcm_runtime (struct snd_soc_card *card, const char *dai_link)
 
 EXPORT_SYMBOL_GPL (snd_soc_get_pcm_runtime)
 
int snd_soc_poweroff (struct device *dev)
 
 EXPORT_SYMBOL_GPL (snd_soc_poweroff)
 
 EXPORT_SYMBOL_GPL (snd_soc_pm_ops)
 
int snd_soc_codec_volatile_register (struct snd_soc_codec *codec, unsigned int reg)
 
 EXPORT_SYMBOL_GPL (snd_soc_codec_volatile_register)
 
int snd_soc_codec_readable_register (struct snd_soc_codec *codec, unsigned int reg)
 
 EXPORT_SYMBOL_GPL (snd_soc_codec_readable_register)
 
int snd_soc_codec_writable_register (struct snd_soc_codec *codec, unsigned int reg)
 
 EXPORT_SYMBOL_GPL (snd_soc_codec_writable_register)
 
int snd_soc_platform_read (struct snd_soc_platform *platform, unsigned int reg)
 
 EXPORT_SYMBOL_GPL (snd_soc_platform_read)
 
int snd_soc_platform_write (struct snd_soc_platform *platform, unsigned int reg, unsigned int val)
 
 EXPORT_SYMBOL_GPL (snd_soc_platform_write)
 
int snd_soc_new_ac97_codec (struct snd_soc_codec *codec, struct snd_ac97_bus_ops *ops, int num)
 
 EXPORT_SYMBOL_GPL (snd_soc_new_ac97_codec)
 
void snd_soc_free_ac97_codec (struct snd_soc_codec *codec)
 
 EXPORT_SYMBOL_GPL (snd_soc_free_ac97_codec)
 
unsigned int snd_soc_read (struct snd_soc_codec *codec, unsigned int reg)
 
 EXPORT_SYMBOL_GPL (snd_soc_read)
 
unsigned int snd_soc_write (struct snd_soc_codec *codec, unsigned int reg, unsigned int val)
 
 EXPORT_SYMBOL_GPL (snd_soc_write)
 
unsigned int snd_soc_bulk_write_raw (struct snd_soc_codec *codec, unsigned int reg, const void *data, size_t len)
 
 EXPORT_SYMBOL_GPL (snd_soc_bulk_write_raw)
 
int snd_soc_update_bits (struct snd_soc_codec *codec, unsigned short reg, unsigned int mask, unsigned int value)
 
 EXPORT_SYMBOL_GPL (snd_soc_update_bits)
 
int snd_soc_update_bits_locked (struct snd_soc_codec *codec, unsigned short reg, unsigned int mask, unsigned int value)
 
 EXPORT_SYMBOL_GPL (snd_soc_update_bits_locked)
 
int snd_soc_test_bits (struct snd_soc_codec *codec, unsigned short reg, unsigned int mask, unsigned int value)
 
 EXPORT_SYMBOL_GPL (snd_soc_test_bits)
 
int snd_soc_set_runtime_hwparams (struct snd_pcm_substream *substream, const struct snd_pcm_hardware *hw)
 
 EXPORT_SYMBOL_GPL (snd_soc_set_runtime_hwparams)
 
struct snd_kcontrolsnd_soc_cnew (const struct snd_kcontrol_new *_template, void *data, const char *long_name, const char *prefix)
 
 EXPORT_SYMBOL_GPL (snd_soc_cnew)
 
int snd_soc_add_codec_controls (struct snd_soc_codec *codec, const struct snd_kcontrol_new *controls, int num_controls)
 
 EXPORT_SYMBOL_GPL (snd_soc_add_codec_controls)
 
int snd_soc_add_platform_controls (struct snd_soc_platform *platform, const struct snd_kcontrol_new *controls, int num_controls)
 
 EXPORT_SYMBOL_GPL (snd_soc_add_platform_controls)
 
int snd_soc_add_card_controls (struct snd_soc_card *soc_card, const struct snd_kcontrol_new *controls, int num_controls)
 
 EXPORT_SYMBOL_GPL (snd_soc_add_card_controls)
 
int snd_soc_add_dai_controls (struct snd_soc_dai *dai, const struct snd_kcontrol_new *controls, int num_controls)
 
 EXPORT_SYMBOL_GPL (snd_soc_add_dai_controls)
 
int snd_soc_info_enum_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
 
 EXPORT_SYMBOL_GPL (snd_soc_info_enum_double)
 
int snd_soc_get_enum_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
 EXPORT_SYMBOL_GPL (snd_soc_get_enum_double)
 
int snd_soc_put_enum_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
 EXPORT_SYMBOL_GPL (snd_soc_put_enum_double)
 
int snd_soc_get_value_enum_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
 EXPORT_SYMBOL_GPL (snd_soc_get_value_enum_double)
 
int snd_soc_put_value_enum_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
 EXPORT_SYMBOL_GPL (snd_soc_put_value_enum_double)
 
int snd_soc_info_enum_ext (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
 
 EXPORT_SYMBOL_GPL (snd_soc_info_enum_ext)
 
int snd_soc_info_volsw_ext (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
 
 EXPORT_SYMBOL_GPL (snd_soc_info_volsw_ext)
 
int snd_soc_info_volsw (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
 
 EXPORT_SYMBOL_GPL (snd_soc_info_volsw)
 
int snd_soc_get_volsw (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
 EXPORT_SYMBOL_GPL (snd_soc_get_volsw)
 
int snd_soc_put_volsw (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
 EXPORT_SYMBOL_GPL (snd_soc_put_volsw)
 
int snd_soc_get_volsw_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
 EXPORT_SYMBOL_GPL (snd_soc_get_volsw_sx)
 
int snd_soc_put_volsw_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
 EXPORT_SYMBOL_GPL (snd_soc_put_volsw_sx)
 
int snd_soc_info_volsw_s8 (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
 
 EXPORT_SYMBOL_GPL (snd_soc_info_volsw_s8)
 
int snd_soc_get_volsw_s8 (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
 EXPORT_SYMBOL_GPL (snd_soc_get_volsw_s8)
 
int snd_soc_put_volsw_s8 (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
 EXPORT_SYMBOL_GPL (snd_soc_put_volsw_s8)
 
int snd_soc_info_volsw_range (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
 
 EXPORT_SYMBOL_GPL (snd_soc_info_volsw_range)
 
int snd_soc_put_volsw_range (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
 EXPORT_SYMBOL_GPL (snd_soc_put_volsw_range)
 
int snd_soc_get_volsw_range (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
 EXPORT_SYMBOL_GPL (snd_soc_get_volsw_range)
 

Variables

struct dev_pm_ops snd_soc_pm_ops
 

: Name of the control

snd_soc_limit_volume - Set new limit to an existing volume control.

: where to look for the control

: new maximum limit

Return 0 for success, else error.

int snd_soc_limit_volume (struct snd_soc_codec *codec, const char *name, int max)
 
 EXPORT_SYMBOL_GPL (snd_soc_limit_volume)
 
int snd_soc_bytes_info (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
 
 EXPORT_SYMBOL_GPL (snd_soc_bytes_info)
 
int snd_soc_bytes_get (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
 EXPORT_SYMBOL_GPL (snd_soc_bytes_get)
 
int snd_soc_bytes_put (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
 EXPORT_SYMBOL_GPL (snd_soc_bytes_put)
 
int snd_soc_info_xr_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
 
 EXPORT_SYMBOL_GPL (snd_soc_info_xr_sx)
 
int snd_soc_get_xr_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
 EXPORT_SYMBOL_GPL (snd_soc_get_xr_sx)
 
int snd_soc_put_xr_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
 EXPORT_SYMBOL_GPL (snd_soc_put_xr_sx)
 
int snd_soc_get_strobe (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
 EXPORT_SYMBOL_GPL (snd_soc_get_strobe)
 
int snd_soc_put_strobe (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
 EXPORT_SYMBOL_GPL (snd_soc_put_strobe)
 
int snd_soc_dai_set_sysclk (struct snd_soc_dai *dai, int clk_id, unsigned int freq, int dir)
 
 EXPORT_SYMBOL_GPL (snd_soc_dai_set_sysclk)
 
int snd_soc_codec_set_sysclk (struct snd_soc_codec *codec, int clk_id, int source, unsigned int freq, int dir)
 
 EXPORT_SYMBOL_GPL (snd_soc_codec_set_sysclk)
 
int snd_soc_dai_set_clkdiv (struct snd_soc_dai *dai, int div_id, int div)
 
 EXPORT_SYMBOL_GPL (snd_soc_dai_set_clkdiv)
 
int snd_soc_dai_set_pll (struct snd_soc_dai *dai, int pll_id, int source, unsigned int freq_in, unsigned int freq_out)
 
 EXPORT_SYMBOL_GPL (snd_soc_dai_set_pll)
 
int snd_soc_codec_set_pll (struct snd_soc_codec *codec, int pll_id, int source, unsigned int freq_in, unsigned int freq_out)
 
 EXPORT_SYMBOL_GPL (snd_soc_codec_set_pll)
 
int snd_soc_dai_set_fmt (struct snd_soc_dai *dai, unsigned int fmt)
 
 EXPORT_SYMBOL_GPL (snd_soc_dai_set_fmt)
 
int snd_soc_dai_set_tdm_slot (struct snd_soc_dai *dai, unsigned int tx_mask, unsigned int rx_mask, int slots, int slot_width)
 
 EXPORT_SYMBOL_GPL (snd_soc_dai_set_tdm_slot)
 
int snd_soc_dai_set_channel_map (struct snd_soc_dai *dai, unsigned int tx_num, unsigned int *tx_slot, unsigned int rx_num, unsigned int *rx_slot)
 
 EXPORT_SYMBOL_GPL (snd_soc_dai_set_channel_map)
 
int snd_soc_dai_set_tristate (struct snd_soc_dai *dai, int tristate)
 
 EXPORT_SYMBOL_GPL (snd_soc_dai_set_tristate)
 
int snd_soc_dai_digital_mute (struct snd_soc_dai *dai, int mute)
 
 EXPORT_SYMBOL_GPL (snd_soc_dai_digital_mute)
 
int snd_soc_register_card (struct snd_soc_card *card)
 
 EXPORT_SYMBOL_GPL (snd_soc_register_card)
 
int snd_soc_unregister_card (struct snd_soc_card *card)
 
 EXPORT_SYMBOL_GPL (snd_soc_unregister_card)
 
int snd_soc_register_dai (struct device *dev, struct snd_soc_dai_driver *dai_drv)
 
 EXPORT_SYMBOL_GPL (snd_soc_register_dai)
 
void snd_soc_unregister_dai (struct device *dev)
 
 EXPORT_SYMBOL_GPL (snd_soc_unregister_dai)
 
int snd_soc_register_dais (struct device *dev, struct snd_soc_dai_driver *dai_drv, size_t count)
 
 EXPORT_SYMBOL_GPL (snd_soc_register_dais)
 
void snd_soc_unregister_dais (struct device *dev, size_t count)
 
 EXPORT_SYMBOL_GPL (snd_soc_unregister_dais)
 
int snd_soc_register_platform (struct device *dev, struct snd_soc_platform_driver *platform_drv)
 
 EXPORT_SYMBOL_GPL (snd_soc_register_platform)
 
void snd_soc_unregister_platform (struct device *dev)
 
 EXPORT_SYMBOL_GPL (snd_soc_unregister_platform)
 
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)
 
 EXPORT_SYMBOL_GPL (snd_soc_register_codec)
 
void snd_soc_unregister_codec (struct device *dev)
 
 EXPORT_SYMBOL_GPL (snd_soc_unregister_codec)
 
int snd_soc_of_parse_card_name (struct snd_soc_card *card, const char *propname)
 
 EXPORT_SYMBOL_GPL (snd_soc_of_parse_card_name)
 
int snd_soc_of_parse_audio_routing (struct snd_soc_card *card, const char *propname)
 
 EXPORT_SYMBOL_GPL (snd_soc_of_parse_audio_routing)
 
 module_init (snd_soc_init)
 
 module_exit (snd_soc_exit)
 
 MODULE_AUTHOR ("Liam Girdwood, [email protected]")
 
 MODULE_DESCRIPTION ("ALSA SoC Core")
 
 MODULE_LICENSE ("GPL")
 
 MODULE_ALIAS ("platform:soc-audio")
 

Macro Definition Documentation

#define CREATE_TRACE_POINTS

Definition at line 45 of file soc-core.c.

#define NAME_SIZE   32

Definition at line 48 of file soc-core.c.

#define snd_soc_resume   NULL

Definition at line 806 of file soc-core.c.

#define snd_soc_suspend   NULL

Definition at line 805 of file soc-core.c.

Function Documentation

EXPORT_SYMBOL_GPL ( snd_soc_get_dai_substream  )
EXPORT_SYMBOL_GPL ( snd_soc_get_pcm_runtime  )
EXPORT_SYMBOL_GPL ( snd_soc_poweroff  )
EXPORT_SYMBOL_GPL ( snd_soc_pm_ops  )
EXPORT_SYMBOL_GPL ( snd_soc_codec_volatile_register  )
EXPORT_SYMBOL_GPL ( snd_soc_codec_readable_register  )
EXPORT_SYMBOL_GPL ( snd_soc_codec_writable_register  )
EXPORT_SYMBOL_GPL ( snd_soc_platform_read  )
EXPORT_SYMBOL_GPL ( snd_soc_platform_write  )
EXPORT_SYMBOL_GPL ( snd_soc_new_ac97_codec  )
EXPORT_SYMBOL_GPL ( snd_soc_free_ac97_codec  )
EXPORT_SYMBOL_GPL ( snd_soc_read  )
EXPORT_SYMBOL_GPL ( snd_soc_write  )
EXPORT_SYMBOL_GPL ( snd_soc_bulk_write_raw  )
EXPORT_SYMBOL_GPL ( snd_soc_update_bits  )
EXPORT_SYMBOL_GPL ( snd_soc_update_bits_locked  )
EXPORT_SYMBOL_GPL ( snd_soc_test_bits  )
EXPORT_SYMBOL_GPL ( snd_soc_set_runtime_hwparams  )
EXPORT_SYMBOL_GPL ( snd_soc_cnew  )
EXPORT_SYMBOL_GPL ( snd_soc_add_codec_controls  )
EXPORT_SYMBOL_GPL ( snd_soc_add_platform_controls  )
EXPORT_SYMBOL_GPL ( snd_soc_add_card_controls  )
EXPORT_SYMBOL_GPL ( snd_soc_add_dai_controls  )
EXPORT_SYMBOL_GPL ( snd_soc_info_enum_double  )
EXPORT_SYMBOL_GPL ( snd_soc_get_enum_double  )
EXPORT_SYMBOL_GPL ( snd_soc_put_enum_double  )
EXPORT_SYMBOL_GPL ( snd_soc_get_value_enum_double  )
EXPORT_SYMBOL_GPL ( snd_soc_put_value_enum_double  )
EXPORT_SYMBOL_GPL ( snd_soc_info_enum_ext  )
EXPORT_SYMBOL_GPL ( snd_soc_info_volsw_ext  )
EXPORT_SYMBOL_GPL ( snd_soc_info_volsw  )
EXPORT_SYMBOL_GPL ( snd_soc_get_volsw  )
EXPORT_SYMBOL_GPL ( snd_soc_put_volsw  )
EXPORT_SYMBOL_GPL ( snd_soc_get_volsw_sx  )
EXPORT_SYMBOL_GPL ( snd_soc_put_volsw_sx  )
EXPORT_SYMBOL_GPL ( snd_soc_info_volsw_s8  )
EXPORT_SYMBOL_GPL ( snd_soc_get_volsw_s8  )
EXPORT_SYMBOL_GPL ( snd_soc_put_volsw_s8  )
EXPORT_SYMBOL_GPL ( snd_soc_info_volsw_range  )
EXPORT_SYMBOL_GPL ( snd_soc_put_volsw_range  )
EXPORT_SYMBOL_GPL ( snd_soc_get_volsw_range  )
EXPORT_SYMBOL_GPL ( snd_soc_limit_volume  )
EXPORT_SYMBOL_GPL ( snd_soc_bytes_info  )
EXPORT_SYMBOL_GPL ( snd_soc_bytes_get  )
EXPORT_SYMBOL_GPL ( snd_soc_bytes_put  )
EXPORT_SYMBOL_GPL ( snd_soc_info_xr_sx  )
EXPORT_SYMBOL_GPL ( snd_soc_get_xr_sx  )
EXPORT_SYMBOL_GPL ( snd_soc_put_xr_sx  )
EXPORT_SYMBOL_GPL ( snd_soc_get_strobe  )
EXPORT_SYMBOL_GPL ( snd_soc_put_strobe  )
EXPORT_SYMBOL_GPL ( snd_soc_dai_set_sysclk  )
EXPORT_SYMBOL_GPL ( snd_soc_codec_set_sysclk  )
EXPORT_SYMBOL_GPL ( snd_soc_dai_set_clkdiv  )
EXPORT_SYMBOL_GPL ( snd_soc_dai_set_pll  )
EXPORT_SYMBOL_GPL ( snd_soc_codec_set_pll  )
EXPORT_SYMBOL_GPL ( snd_soc_dai_set_fmt  )
EXPORT_SYMBOL_GPL ( snd_soc_dai_set_tdm_slot  )
EXPORT_SYMBOL_GPL ( snd_soc_dai_set_channel_map  )
EXPORT_SYMBOL_GPL ( snd_soc_dai_set_tristate  )
EXPORT_SYMBOL_GPL ( snd_soc_dai_digital_mute  )
EXPORT_SYMBOL_GPL ( snd_soc_register_card  )
EXPORT_SYMBOL_GPL ( snd_soc_unregister_card  )
EXPORT_SYMBOL_GPL ( snd_soc_register_dai  )
EXPORT_SYMBOL_GPL ( snd_soc_unregister_dai  )
EXPORT_SYMBOL_GPL ( snd_soc_register_dais  )
EXPORT_SYMBOL_GPL ( snd_soc_unregister_dais  )
EXPORT_SYMBOL_GPL ( snd_soc_register_platform  )
EXPORT_SYMBOL_GPL ( snd_soc_unregister_platform  )
EXPORT_SYMBOL_GPL ( snd_soc_register_codec  )
EXPORT_SYMBOL_GPL ( snd_soc_unregister_codec  )
EXPORT_SYMBOL_GPL ( snd_soc_of_parse_card_name  )
EXPORT_SYMBOL_GPL ( snd_soc_of_parse_audio_routing  )
MODULE_ALIAS ( "platform:soc-audio )
MODULE_AUTHOR ( "Liam  Girdwood,
lrg @slimlogic.co.uk"   
)
MODULE_DESCRIPTION ( "ALSA SoC Core"  )
module_exit ( snd_soc_exit  )
module_init ( snd_soc_init  )
MODULE_LICENSE ( "GPL"  )
module_param ( pmdown_time  ,
int  ,
 
)
MODULE_PARM_DESC ( pmdown_time  ,
"DAPM stream powerdown time (msecs)"   
)
int snd_soc_add_card_controls ( struct snd_soc_card soc_card,
const struct snd_kcontrol_new controls,
int  num_controls 
)

snd_soc_add_card_controls - add an array of controls to a SoC card. Convenience function to add a list of controls.

: SoC card to add controls to : array of controls to add : number of elements in the array

Return 0 for success, else error.

Definition at line 2345 of file soc-core.c.

int snd_soc_add_codec_controls ( struct snd_soc_codec codec,
const struct snd_kcontrol_new controls,
int  num_controls 
)

snd_soc_add_codec_controls - add an array of controls to a codec. Convenience function to add a list of controls. Many codecs were duplicating this code.

: codec to add controls to : array of controls to add : number of elements in the array

Return 0 for success, else error.

Definition at line 2305 of file soc-core.c.

int snd_soc_add_dai_controls ( struct snd_soc_dai dai,
const struct snd_kcontrol_new controls,
int  num_controls 
)

snd_soc_add_dai_controls - add an array of controls to a DAI. Convienience function to add a list of controls.

: DAI to add controls to : array of controls to add : number of elements in the array

Return 0 for success, else error.

Definition at line 2365 of file soc-core.c.

int snd_soc_add_platform_controls ( struct snd_soc_platform platform,
const struct snd_kcontrol_new controls,
int  num_controls 
)

snd_soc_add_platform_controls - add an array of controls to a platform. Convenience function to add a list of controls.

: platform to add controls to : array of controls to add : number of elements in the array

Return 0 for success, else error.

Definition at line 2325 of file soc-core.c.

unsigned int snd_soc_bulk_write_raw ( struct snd_soc_codec codec,
unsigned int  reg,
const void data,
size_t  len 
)

Definition at line 2107 of file soc-core.c.

int snd_soc_bytes_get ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

Definition at line 3037 of file soc-core.c.

int snd_soc_bytes_info ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_info uinfo 
)

Definition at line 3024 of file soc-core.c.

int snd_soc_bytes_put ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

Definition at line 3074 of file soc-core.c.

struct snd_kcontrol* snd_soc_cnew ( const struct snd_kcontrol_new _template,
void data,
const char long_name,
const char prefix 
)
read

snd_soc_cnew - create new control : control template : control private data : control long name : control name prefix

Create a new mixer control from a template control.

Returns 0 for success, else error.

Definition at line 2239 of file soc-core.c.

int snd_soc_codec_readable_register ( struct snd_soc_codec codec,
unsigned int  reg 
)

snd_soc_codec_readable_register: Report if a register is readable.

: CODEC to query. : Register to query.

Boolean function indicating if a CODEC register is readable.

Definition at line 1965 of file soc-core.c.

int snd_soc_codec_set_pll ( struct snd_soc_codec codec,
int  pll_id,
int  source,
unsigned int  freq_in,
unsigned int  freq_out 
)

Definition at line 3410 of file soc-core.c.

int snd_soc_codec_set_sysclk ( struct snd_soc_codec codec,
int  clk_id,
int  source,
unsigned int  freq,
int  dir 
)

Definition at line 3345 of file soc-core.c.

int snd_soc_codec_volatile_register ( struct snd_soc_codec codec,
unsigned int  reg 
)

snd_soc_codec_volatile_register: Report if a register is volatile.

: CODEC to query. : Register to query.

Boolean function indiciating if a CODEC register is volatile.

Definition at line 1947 of file soc-core.c.

int snd_soc_codec_writable_register ( struct snd_soc_codec codec,
unsigned int  reg 
)

snd_soc_codec_writable_register: Report if a register is writable.

: CODEC to query. : Register to query.

Boolean function indicating if a CODEC register is writable.

Definition at line 1983 of file soc-core.c.

int snd_soc_dai_digital_mute ( struct snd_soc_dai dai,
int  mute 
)

snd_soc_dai_digital_mute - configure DAI system or master clock. : DAI : mute enable

Mutes the DAI DAC.

Definition at line 3507 of file soc-core.c.

int snd_soc_dai_set_channel_map ( struct snd_soc_dai dai,
unsigned int  tx_num,
unsigned int tx_slot,
unsigned int  rx_num,
unsigned int rx_slot 
)

snd_soc_dai_set_channel_map - configure DAI audio channel map : DAI : how many TX channels : pointer to an array which imply the TX slot number channel 0~num-1 uses : how many RX channels : pointer to an array which imply the RX slot number channel 0~num-1 uses

configure the relationship between channel number and TDM slot number.

Definition at line 3472 of file soc-core.c.

int snd_soc_dai_set_clkdiv ( struct snd_soc_dai dai,
int  div_id,
int  div 
)

snd_soc_dai_set_clkdiv - configure DAI clock dividers. : DAI : DAI specific clock divider ID : new clock divisor.

Configures the clock dividers. This is used to derive the best DAI bit and frame clocks from the system or master clock. It's best to set the DAI bit and frame clocks as low as possible to save system power.

Definition at line 3366 of file soc-core.c.

int snd_soc_dai_set_fmt ( struct snd_soc_dai dai,
unsigned int  fmt 
)

snd_soc_dai_set_fmt - configure DAI hardware audio format. : DAI : SND_SOC_DAIFMT_ format value.

Configures the DAI hardware format and clocking.

Definition at line 3428 of file soc-core.c.

int snd_soc_dai_set_pll ( struct snd_soc_dai dai,
int  pll_id,
int  source,
unsigned int  freq_in,
unsigned int  freq_out 
)

snd_soc_dai_set_pll - configure DAI PLL. : DAI : DAI specific PLL ID : DAI specific source for the PLL : PLL input clock frequency in Hz : requested PLL output clock frequency in Hz

Configures and enables PLL to generate output clock based on input clock.

Definition at line 3386 of file soc-core.c.

int snd_soc_dai_set_sysclk ( struct snd_soc_dai dai,
int  clk_id,
unsigned int  freq,
int  dir 
)

Definition at line 3322 of file soc-core.c.

int snd_soc_dai_set_tdm_slot ( struct snd_soc_dai dai,
unsigned int  tx_mask,
unsigned int  rx_mask,
int  slots,
int  slot_width 
)

snd_soc_dai_set_tdm_slot - configure DAI TDM. : DAI : bitmask representing active TX slots. : bitmask representing active RX slots. : Number of slots in use. : Width in bits for each slot.

Configures a DAI for TDM operation. Both mask and slots are codec and DAI specific.

Definition at line 3449 of file soc-core.c.

int snd_soc_dai_set_tristate ( struct snd_soc_dai dai,
int  tristate 
)

snd_soc_dai_set_tristate - configure DAI system or master clock. : DAI : tristate enable

Tristates the DAI so that others can use it.

Definition at line 3491 of file soc-core.c.

void snd_soc_free_ac97_codec ( struct snd_soc_codec codec)

snd_soc_free_ac97_codec - free AC97 codec device : audio codec

Frees AC97 codec device resources.

Definition at line 2072 of file soc-core.c.

struct snd_pcm_substream* snd_soc_get_dai_substream ( struct snd_soc_card card,
const char dai_link,
int  stream 
)
read

Definition at line 468 of file soc-core.c.

int snd_soc_get_enum_double ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

snd_soc_get_enum_double - enumerated double mixer get callback : mixer control : control element information

Callback to get the value of a double enumerated mixer.

Returns 0 for success.

Definition at line 2411 of file soc-core.c.

struct snd_soc_pcm_runtime* snd_soc_get_pcm_runtime ( struct snd_soc_card card,
const char dai_link 
)
read

Definition at line 483 of file soc-core.c.

int snd_soc_get_strobe ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

snd_soc_get_strobe - strobe get callback : mixer control : control element information

Callback get the value of a strobe mixer control.

Returns 0 for success.

Definition at line 3259 of file soc-core.c.

int snd_soc_get_value_enum_double ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

snd_soc_get_value_enum_double - semi enumerated double mixer get callback : mixer control : control element information

Callback to get the value of a double semi enumerated mixer.

Semi enumerated mixer: the enumerated items are referred as values. Can be used for handling bitfield coded enumeration for example.

Returns 0 for success.

Definition at line 2473 of file soc-core.c.

int snd_soc_get_volsw ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

snd_soc_get_volsw - single mixer get callback : mixer control : control element information

Callback to get the value of a single mixer control, or a double mixer control that spans 2 registers.

Returns 0 for success.

Definition at line 2631 of file soc-core.c.

int snd_soc_get_volsw_range ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

snd_soc_get_volsw_range - single mixer get callback with range : mixer control : control element information

Callback to get the value, within a range, of a single mixer control.

Returns 0 for success.

Definition at line 2960 of file soc-core.c.

int snd_soc_get_volsw_s8 ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

snd_soc_get_volsw_s8 - signed mixer get callback : mixer control : control element information

Callback to get the value of a signed mixer control.

Returns 0 for success.

Definition at line 2843 of file soc-core.c.

int snd_soc_get_volsw_sx ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

snd_soc_get_volsw_sx - single mixer get callback : mixer control : control element information

Callback to get the value of a single mixer control, or a double mixer control that spans 2 registers.

Returns 0 for success.

Definition at line 2733 of file soc-core.c.

int snd_soc_get_xr_sx ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

snd_soc_get_xr_sx - signed multi register get callback : mreg control : control element information

Callback to get the value of a control that can span multiple codec registers which together forms a single signed value in a MSB/LSB manner. The control supports specifying total no of bits used to allow for bitfields across the multiple codec registers.

Returns 0 for success.

Definition at line 3171 of file soc-core.c.

int snd_soc_info_enum_double ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_info uinfo 
)

snd_soc_info_enum_double - enumerated double mixer info callback : mixer control : control element information

Callback to provide information about a double enumerated mixer control.

Returns 0 for success.

Definition at line 2385 of file soc-core.c.

int snd_soc_info_enum_ext ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_info uinfo 
)

snd_soc_info_enum_ext - external enumerated single mixer info callback : mixer control : control element information

Callback to provide information about an external enumerated single mixer.

Returns 0 for success.

Definition at line 2545 of file soc-core.c.

int snd_soc_info_volsw ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_info uinfo 
)

snd_soc_info_volsw - single mixer info callback : mixer control : control element information

Callback to provide information about a single mixer control, or a double mixer control that spans 2 registers.

Returns 0 for success.

Definition at line 2598 of file soc-core.c.

int snd_soc_info_volsw_ext ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_info uinfo 
)

snd_soc_info_volsw_ext - external single mixer info callback : mixer control : control element information

Callback to provide information about a single external mixer control.

Returns 0 for success.

Definition at line 2571 of file soc-core.c.

int snd_soc_info_volsw_range ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_info uinfo 
)

snd_soc_info_volsw_range - single mixer info callback with range. : mixer control : control element information

Callback to provide information, within a range, about a single mixer control.

returns 0 for success.

Definition at line 2897 of file soc-core.c.

int snd_soc_info_volsw_s8 ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_info uinfo 
)

snd_soc_info_volsw_s8 - signed mixer info callback : mixer control : control element information

Callback to provide information about a signed mixer control.

Returns 0 for success.

Definition at line 2814 of file soc-core.c.

int snd_soc_info_xr_sx ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_info uinfo 
)

snd_soc_info_xr_sx - signed multi register info callback : mreg control : control element information

Callback to provide information of a control that can span multiple codec registers which together forms a single signed value in a MSB/LSB manner.

Returns 0 for success.

Definition at line 3144 of file soc-core.c.

int snd_soc_limit_volume ( struct snd_soc_codec codec,
const char name,
int  max 
)

Definition at line 2994 of file soc-core.c.

int snd_soc_new_ac97_codec ( struct snd_soc_codec codec,
struct snd_ac97_bus_ops ops,
int  num 
)

snd_soc_new_ac97_codec - initailise AC97 device : audio codec : AC97 bus operations : AC97 codec number

Initialises AC97 codec resources for use by ad-hoc devices only.

Definition at line 2033 of file soc-core.c.

int snd_soc_of_parse_audio_routing ( struct snd_soc_card card,
const char propname 
)

Definition at line 4118 of file soc-core.c.

int snd_soc_of_parse_card_name ( struct snd_soc_card card,
const char propname 
)

Definition at line 4095 of file soc-core.c.

int snd_soc_platform_read ( struct snd_soc_platform platform,
unsigned int  reg 
)

Definition at line 1993 of file soc-core.c.

int snd_soc_platform_write ( struct snd_soc_platform platform,
unsigned int  reg,
unsigned int  val 
)

Definition at line 2011 of file soc-core.c.

int snd_soc_poweroff ( struct device dev)

Definition at line 1897 of file soc-core.c.

int snd_soc_put_enum_double ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

snd_soc_put_enum_double - enumerated double mixer put callback : mixer control : control element information

Callback to set the value of a double enumerated mixer.

Returns 0 for success.

Definition at line 2438 of file soc-core.c.

int snd_soc_put_strobe ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

snd_soc_put_strobe - strobe put callback : mixer control : control element information

Callback strobe a register bit to high then low (or the inverse) in one pass of a single mixer enum control.

Returns 1 for success.

Definition at line 3289 of file soc-core.c.

int snd_soc_put_value_enum_double ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

snd_soc_put_value_enum_double - semi enumerated double mixer put callback : mixer control : control element information

Callback to set the value of a double semi enumerated mixer.

Semi enumerated mixer: the enumerated items are referred as values. Can be used for handling bitfield coded enumeration for example.

Returns 0 for success.

Definition at line 2512 of file soc-core.c.

int snd_soc_put_volsw ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

snd_soc_put_volsw - single mixer put callback : mixer control : control element information

Callback to set the value of a single mixer control, or a double mixer control that spans 2 registers.

Returns 0 for success.

Definition at line 2677 of file soc-core.c.

int snd_soc_put_volsw_range ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

snd_soc_put_volsw_range - single mixer put value callback with range. : mixer control : control element information

Callback to set the value, within a range, for a single mixer control.

Returns 0 for success.

Definition at line 2927 of file soc-core.c.

int snd_soc_put_volsw_s8 ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

snd_soc_put_volsw_sgn - signed mixer put callback : mixer control : control element information

Callback to set the value of a signed mixer control.

Returns 0 for success.

Definition at line 2870 of file soc-core.c.

int snd_soc_put_volsw_sx ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

snd_soc_put_volsw_sx - double mixer set callback : mixer control : control element information

Callback to set the value of a double mixer control that spans 2 registers.

Returns 0 for success.

Definition at line 2768 of file soc-core.c.

int snd_soc_put_xr_sx ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

snd_soc_put_xr_sx - signed multi register get callback : mreg control : control element information

Callback to set the value of a control that can span multiple codec registers which together forms a single signed value in a MSB/LSB manner. The control supports specifying total no of bits used to allow for bitfields across the multiple codec registers.

Returns 0 for success.

Definition at line 3217 of file soc-core.c.

unsigned int snd_soc_read ( struct snd_soc_codec codec,
unsigned int  reg 
)

Definition at line 2086 of file soc-core.c.

int snd_soc_register_card ( struct snd_soc_card card)

snd_soc_register_card - Register a card with the ASoC core

: Card to register

Definition at line 3522 of file soc-core.c.

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 
)

snd_soc_register_codec - Register a codec with the ASoC core

: codec to register

Definition at line 3961 of file soc-core.c.

int snd_soc_register_dai ( struct device dev,
struct snd_soc_dai_driver dai_drv 
)

snd_soc_register_dai - Register a DAI with the ASoC core

: DAI to register

Definition at line 3695 of file soc-core.c.

int snd_soc_register_dais ( struct device dev,
struct snd_soc_dai_driver dai_drv,
size_t  count 
)

snd_soc_register_dais - Register multiple DAIs with the ASoC core

: Array of DAIs to register : Number of DAIs

Definition at line 3776 of file soc-core.c.

int snd_soc_register_platform ( struct device dev,
struct snd_soc_platform_driver platform_drv 
)

snd_soc_register_platform - Register a platform with the ASoC core

: platform to register

Definition at line 3862 of file soc-core.c.

int snd_soc_set_runtime_hwparams ( struct snd_pcm_substream substream,
const struct snd_pcm_hardware hw 
)

snd_soc_set_runtime_hwparams - set the runtime hardware parameters : the pcm substream : the hardware parameters

Sets the substream runtime hardware parameters.

Definition at line 2212 of file soc-core.c.

int snd_soc_test_bits ( struct snd_soc_codec codec,
unsigned short  reg,
unsigned int  mask,
unsigned int  value 
)

snd_soc_test_bits - test register for change : audio codec : codec register : register mask : new value

Tests a register with a new value and checks if the new value is different from the old value.

Returns 1 for change else 0.

Definition at line 2191 of file soc-core.c.

int snd_soc_unregister_card ( struct snd_soc_card card)

snd_soc_unregister_card - Unregister a card with the ASoC core

: Card to unregister

Definition at line 3621 of file soc-core.c.

void snd_soc_unregister_codec ( struct device dev)

snd_soc_unregister_codec - Unregister a codec from the ASoC core

: codec to unregister

Definition at line 4065 of file soc-core.c.

void snd_soc_unregister_dai ( struct device dev)

snd_soc_unregister_dai - Unregister a DAI from the ASoC core

: DAI to unregister

Definition at line 3749 of file soc-core.c.

void snd_soc_unregister_dais ( struct device dev,
size_t  count 
)

snd_soc_unregister_dais - Unregister multiple DAIs from the ASoC core

: Array of DAIs to unregister : Number of DAIs

Definition at line 3848 of file soc-core.c.

void snd_soc_unregister_platform ( struct device dev)

snd_soc_unregister_platform - Unregister a platform from the ASoC core

: platform to unregister

Definition at line 3902 of file soc-core.c.

int snd_soc_update_bits ( struct snd_soc_codec codec,
unsigned short  reg,
unsigned int  mask,
unsigned int  value 
)

snd_soc_update_bits - update codec register bits : audio codec : codec register : register mask : new value

Writes new register value.

Returns 1 for change, 0 for no change, or negative error code.

Definition at line 2125 of file soc-core.c.

int snd_soc_update_bits_locked ( struct snd_soc_codec codec,
unsigned short  reg,
unsigned int  mask,
unsigned int  value 
)

snd_soc_update_bits_locked - update codec register bits : audio codec : codec register : register mask : new value

Writes new register value, and takes the codec mutex.

Returns 1 for change else 0.

Definition at line 2165 of file soc-core.c.

unsigned int snd_soc_write ( struct snd_soc_codec codec,
unsigned int  reg,
unsigned int  val 
)

Definition at line 2098 of file soc-core.c.

Variable Documentation

struct dev_pm_ops snd_soc_pm_ops
Initial value:
= {
.suspend = snd_soc_suspend,
.resume = snd_soc_resume,
.freeze = snd_soc_suspend,
.thaw = snd_soc_resume,
.poweroff = snd_soc_poweroff,
.restore = snd_soc_resume,
}

Definition at line 1918 of file soc-core.c.