|
@@ -401,11 +401,7 @@ struct snd_soc_ops;
|
|
struct snd_soc_pcm_runtime;
|
|
struct snd_soc_pcm_runtime;
|
|
struct snd_soc_dai;
|
|
struct snd_soc_dai;
|
|
struct snd_soc_dai_driver;
|
|
struct snd_soc_dai_driver;
|
|
-struct snd_soc_platform;
|
|
|
|
struct snd_soc_dai_link;
|
|
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;
|
|
struct snd_soc_component_driver;
|
|
struct snd_soc_component_driver;
|
|
struct soc_enum;
|
|
struct soc_enum;
|
|
@@ -430,13 +426,6 @@ enum snd_soc_card_subclass {
|
|
SND_SOC_CARD_CLASS_RUNTIME = 1,
|
|
SND_SOC_CARD_CLASS_RUNTIME = 1,
|
|
};
|
|
};
|
|
|
|
|
|
-int snd_soc_codec_set_sysclk(struct snd_soc_codec *codec, int clk_id,
|
|
|
|
- int source, unsigned int freq, int dir);
|
|
|
|
-int snd_soc_codec_set_pll(struct snd_soc_codec *codec, int pll_id, int source,
|
|
|
|
- unsigned int freq_in, unsigned int freq_out);
|
|
|
|
-int snd_soc_codec_set_jack(struct snd_soc_codec *codec,
|
|
|
|
- struct snd_soc_jack *jack, void *data);
|
|
|
|
-
|
|
|
|
int snd_soc_register_card(struct snd_soc_card *card);
|
|
int snd_soc_register_card(struct snd_soc_card *card);
|
|
int snd_soc_unregister_card(struct snd_soc_card *card);
|
|
int snd_soc_unregister_card(struct snd_soc_card *card);
|
|
int devm_snd_soc_register_card(struct device *dev, struct snd_soc_card *card);
|
|
int devm_snd_soc_register_card(struct device *dev, struct snd_soc_card *card);
|
|
@@ -455,19 +444,6 @@ static inline int snd_soc_resume(struct device *dev)
|
|
}
|
|
}
|
|
#endif
|
|
#endif
|
|
int snd_soc_poweroff(struct device *dev);
|
|
int snd_soc_poweroff(struct device *dev);
|
|
-int snd_soc_register_platform(struct device *dev,
|
|
|
|
- const struct snd_soc_platform_driver *platform_drv);
|
|
|
|
-int devm_snd_soc_register_platform(struct device *dev,
|
|
|
|
- const struct snd_soc_platform_driver *platform_drv);
|
|
|
|
-void snd_soc_unregister_platform(struct device *dev);
|
|
|
|
-int snd_soc_add_platform(struct device *dev, struct snd_soc_platform *platform,
|
|
|
|
- const struct snd_soc_platform_driver *platform_drv);
|
|
|
|
-void snd_soc_remove_platform(struct snd_soc_platform *platform);
|
|
|
|
-struct snd_soc_platform *snd_soc_lookup_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_add_component(struct device *dev,
|
|
int snd_soc_add_component(struct device *dev,
|
|
struct snd_soc_component *component,
|
|
struct snd_soc_component *component,
|
|
const struct snd_soc_component_driver *component_driver,
|
|
const struct snd_soc_component_driver *component_driver,
|
|
@@ -482,16 +458,15 @@ int devm_snd_soc_register_component(struct device *dev,
|
|
void snd_soc_unregister_component(struct device *dev);
|
|
void snd_soc_unregister_component(struct device *dev);
|
|
struct snd_soc_component *snd_soc_lookup_component(struct device *dev,
|
|
struct snd_soc_component *snd_soc_lookup_component(struct device *dev,
|
|
const char *driver_name);
|
|
const char *driver_name);
|
|
-int snd_soc_cache_init(struct snd_soc_codec *codec);
|
|
|
|
-int snd_soc_cache_exit(struct snd_soc_codec *codec);
|
|
|
|
|
|
|
|
-int snd_soc_platform_read(struct snd_soc_platform *platform,
|
|
|
|
- unsigned int reg);
|
|
|
|
-int snd_soc_platform_write(struct snd_soc_platform *platform,
|
|
|
|
- unsigned int reg, unsigned int val);
|
|
|
|
int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num);
|
|
int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num);
|
|
#ifdef CONFIG_SND_SOC_COMPRESS
|
|
#ifdef CONFIG_SND_SOC_COMPRESS
|
|
int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num);
|
|
int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num);
|
|
|
|
+#else
|
|
|
|
+static inline int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
|
|
|
|
+{
|
|
|
|
+ return 0;
|
|
|
|
+}
|
|
#endif
|
|
#endif
|
|
|
|
|
|
void snd_soc_disconnect_sync(struct device *dev);
|
|
void snd_soc_disconnect_sync(struct device *dev);
|
|
@@ -576,23 +551,7 @@ static inline void snd_soc_jack_free_gpios(struct snd_soc_jack *jack, int count,
|
|
}
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
|
|
-/* codec register bit access */
|
|
|
|
-int snd_soc_update_bits(struct snd_soc_codec *codec, unsigned int reg,
|
|
|
|
- unsigned int mask, unsigned int value);
|
|
|
|
-int snd_soc_update_bits_locked(struct snd_soc_codec *codec,
|
|
|
|
- unsigned int reg, unsigned int mask,
|
|
|
|
- unsigned int value);
|
|
|
|
-int snd_soc_test_bits(struct snd_soc_codec *codec, unsigned int reg,
|
|
|
|
- unsigned int mask, unsigned int value);
|
|
|
|
-
|
|
|
|
#ifdef CONFIG_SND_SOC_AC97_BUS
|
|
#ifdef CONFIG_SND_SOC_AC97_BUS
|
|
-#define snd_soc_alloc_ac97_codec(codec) \
|
|
|
|
- snd_soc_alloc_ac97_component(&codec->component)
|
|
|
|
-#define snd_soc_new_ac97_codec(codec, id, id_mask) \
|
|
|
|
- snd_soc_new_ac97_component(&codec->component, id, id_mask)
|
|
|
|
-#define snd_soc_free_ac97_codec(ac97) \
|
|
|
|
- snd_soc_free_ac97_component(ac97)
|
|
|
|
-
|
|
|
|
struct snd_ac97 *snd_soc_alloc_ac97_component(struct snd_soc_component *component);
|
|
struct snd_ac97 *snd_soc_alloc_ac97_component(struct snd_soc_component *component);
|
|
struct snd_ac97 *snd_soc_new_ac97_component(struct snd_soc_component *component,
|
|
struct snd_ac97 *snd_soc_new_ac97_component(struct snd_soc_component *component,
|
|
unsigned int id, unsigned int id_mask);
|
|
unsigned int id, unsigned int id_mask);
|
|
@@ -626,10 +585,6 @@ struct snd_kcontrol *snd_soc_card_get_kcontrol(struct snd_soc_card *soc_card,
|
|
const char *name);
|
|
const char *name);
|
|
int snd_soc_add_component_controls(struct snd_soc_component *component,
|
|
int snd_soc_add_component_controls(struct snd_soc_component *component,
|
|
const struct snd_kcontrol_new *controls, unsigned int num_controls);
|
|
const struct snd_kcontrol_new *controls, unsigned int num_controls);
|
|
-int snd_soc_add_codec_controls(struct snd_soc_codec *codec,
|
|
|
|
- const struct snd_kcontrol_new *controls, unsigned int num_controls);
|
|
|
|
-int snd_soc_add_platform_controls(struct snd_soc_platform *platform,
|
|
|
|
- const struct snd_kcontrol_new *controls, unsigned int num_controls);
|
|
|
|
int snd_soc_add_card_controls(struct snd_soc_card *soc_card,
|
|
int snd_soc_add_card_controls(struct snd_soc_card *soc_card,
|
|
const struct snd_kcontrol_new *controls, int num_controls);
|
|
const struct snd_kcontrol_new *controls, int num_controls);
|
|
int snd_soc_add_dai_controls(struct snd_soc_dai *dai,
|
|
int snd_soc_add_dai_controls(struct snd_soc_dai *dai,
|
|
@@ -862,8 +817,6 @@ struct snd_soc_component {
|
|
|
|
|
|
unsigned int active;
|
|
unsigned int active;
|
|
|
|
|
|
- unsigned int ignore_pmdown_time:1; /* pmdown_time is ignored at stop */
|
|
|
|
- unsigned int registered_as_component:1;
|
|
|
|
unsigned int suspended:1; /* is in suspend PM state */
|
|
unsigned int suspended:1; /* is in suspend PM state */
|
|
|
|
|
|
struct list_head list;
|
|
struct list_head list;
|
|
@@ -875,9 +828,6 @@ struct snd_soc_component {
|
|
struct list_head dai_list;
|
|
struct list_head dai_list;
|
|
int num_dai;
|
|
int num_dai;
|
|
|
|
|
|
- int (*read)(struct snd_soc_component *, unsigned int, unsigned int *);
|
|
|
|
- int (*write)(struct snd_soc_component *, unsigned int, unsigned int);
|
|
|
|
-
|
|
|
|
struct regmap *regmap;
|
|
struct regmap *regmap;
|
|
int val_bytes;
|
|
int val_bytes;
|
|
|
|
|
|
@@ -886,10 +836,6 @@ struct snd_soc_component {
|
|
/* attached dynamic objects */
|
|
/* attached dynamic objects */
|
|
struct list_head dobj_list;
|
|
struct list_head dobj_list;
|
|
|
|
|
|
-#ifdef CONFIG_DEBUG_FS
|
|
|
|
- struct dentry *debugfs_root;
|
|
|
|
-#endif
|
|
|
|
-
|
|
|
|
/*
|
|
/*
|
|
* DO NOT use any of the fields below in drivers, they are temporary and
|
|
* DO NOT use any of the fields below in drivers, they are temporary and
|
|
* are going to be removed again soon. If you use them in driver code the
|
|
* are going to be removed again soon. If you use them in driver code the
|
|
@@ -899,29 +845,11 @@ struct snd_soc_component {
|
|
/* Don't use these, use snd_soc_component_get_dapm() */
|
|
/* Don't use these, use snd_soc_component_get_dapm() */
|
|
struct snd_soc_dapm_context dapm;
|
|
struct snd_soc_dapm_context dapm;
|
|
|
|
|
|
- struct snd_soc_codec *codec;
|
|
|
|
-
|
|
|
|
- int (*probe)(struct snd_soc_component *);
|
|
|
|
- void (*remove)(struct snd_soc_component *);
|
|
|
|
- int (*suspend)(struct snd_soc_component *);
|
|
|
|
- int (*resume)(struct snd_soc_component *);
|
|
|
|
- int (*pcm_new)(struct snd_soc_component *, struct snd_soc_pcm_runtime *);
|
|
|
|
- void (*pcm_free)(struct snd_soc_component *, struct snd_pcm *);
|
|
|
|
-
|
|
|
|
- int (*set_sysclk)(struct snd_soc_component *component,
|
|
|
|
- int clk_id, int source, unsigned int freq, int dir);
|
|
|
|
- int (*set_pll)(struct snd_soc_component *component, int pll_id,
|
|
|
|
- int source, unsigned int freq_in, unsigned int freq_out);
|
|
|
|
- int (*set_jack)(struct snd_soc_component *component,
|
|
|
|
- struct snd_soc_jack *jack, void *data);
|
|
|
|
- int (*set_bias_level)(struct snd_soc_component *component,
|
|
|
|
- enum snd_soc_bias_level level);
|
|
|
|
-
|
|
|
|
/* machine specific init */
|
|
/* machine specific init */
|
|
int (*init)(struct snd_soc_component *component);
|
|
int (*init)(struct snd_soc_component *component);
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_FS
|
|
#ifdef CONFIG_DEBUG_FS
|
|
- void (*init_debugfs)(struct snd_soc_component *component);
|
|
|
|
|
|
+ struct dentry *debugfs_root;
|
|
const char *debugfs_prefix;
|
|
const char *debugfs_prefix;
|
|
#endif
|
|
#endif
|
|
};
|
|
};
|
|
@@ -938,97 +866,12 @@ snd_soc_rtdcom_lookup(struct snd_soc_pcm_runtime *rtd,
|
|
#define for_each_rtdcom_safe(rtd, rtdcom1, rtdcom2) \
|
|
#define for_each_rtdcom_safe(rtd, rtdcom1, rtdcom2) \
|
|
list_for_each_entry_safe(rtdcom1, rtdcom2, &(rtd)->component_list, list)
|
|
list_for_each_entry_safe(rtdcom1, rtdcom2, &(rtd)->component_list, list)
|
|
|
|
|
|
-/* SoC Audio Codec device */
|
|
|
|
-struct snd_soc_codec {
|
|
|
|
- struct device *dev;
|
|
|
|
- const struct snd_soc_codec_driver *driver;
|
|
|
|
-
|
|
|
|
- struct list_head list;
|
|
|
|
-
|
|
|
|
- /* runtime */
|
|
|
|
- unsigned int cache_init:1; /* codec cache has been initialized */
|
|
|
|
-
|
|
|
|
- /* codec IO */
|
|
|
|
- void *control_data; /* codec control (i2c/3wire) data */
|
|
|
|
- hw_write_t hw_write;
|
|
|
|
- void *reg_cache;
|
|
|
|
-
|
|
|
|
- /* component */
|
|
|
|
- struct snd_soc_component component;
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
-/* codec driver */
|
|
|
|
-struct snd_soc_codec_driver {
|
|
|
|
-
|
|
|
|
- /* driver ops */
|
|
|
|
- int (*probe)(struct snd_soc_codec *);
|
|
|
|
- int (*remove)(struct snd_soc_codec *);
|
|
|
|
- int (*suspend)(struct snd_soc_codec *);
|
|
|
|
- int (*resume)(struct snd_soc_codec *);
|
|
|
|
- struct snd_soc_component_driver component_driver;
|
|
|
|
-
|
|
|
|
- /* codec wide operations */
|
|
|
|
- int (*set_sysclk)(struct snd_soc_codec *codec,
|
|
|
|
- int clk_id, int source, unsigned int freq, int dir);
|
|
|
|
- int (*set_pll)(struct snd_soc_codec *codec, int pll_id, int source,
|
|
|
|
- unsigned int freq_in, unsigned int freq_out);
|
|
|
|
- int (*set_jack)(struct snd_soc_codec *codec,
|
|
|
|
- struct snd_soc_jack *jack, void *data);
|
|
|
|
-
|
|
|
|
- /* codec IO */
|
|
|
|
- struct regmap *(*get_regmap)(struct device *);
|
|
|
|
- unsigned int (*read)(struct snd_soc_codec *, unsigned int);
|
|
|
|
- int (*write)(struct snd_soc_codec *, unsigned int, unsigned int);
|
|
|
|
- unsigned int reg_cache_size;
|
|
|
|
- short reg_cache_step;
|
|
|
|
- short reg_word_size;
|
|
|
|
- const void *reg_cache_default;
|
|
|
|
-
|
|
|
|
- /* codec bias level */
|
|
|
|
- int (*set_bias_level)(struct snd_soc_codec *,
|
|
|
|
- enum snd_soc_bias_level level);
|
|
|
|
- bool idle_bias_off;
|
|
|
|
- bool suspend_bias_off;
|
|
|
|
-
|
|
|
|
- void (*seq_notifier)(struct snd_soc_dapm_context *,
|
|
|
|
- enum snd_soc_dapm_type, int);
|
|
|
|
-
|
|
|
|
- bool ignore_pmdown_time; /* Doesn't benefit from pmdown delay */
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
-/* SoC platform interface */
|
|
|
|
-struct snd_soc_platform_driver {
|
|
|
|
-
|
|
|
|
- int (*probe)(struct snd_soc_platform *);
|
|
|
|
- int (*remove)(struct snd_soc_platform *);
|
|
|
|
- struct snd_soc_component_driver component_driver;
|
|
|
|
-
|
|
|
|
- /* pcm creation and destruction */
|
|
|
|
- int (*pcm_new)(struct snd_soc_pcm_runtime *);
|
|
|
|
- void (*pcm_free)(struct snd_pcm *);
|
|
|
|
-
|
|
|
|
- /* platform stream pcm ops */
|
|
|
|
- const struct snd_pcm_ops *ops;
|
|
|
|
-
|
|
|
|
- /* platform stream compress ops */
|
|
|
|
- const struct snd_compr_ops *compr_ops;
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
struct snd_soc_dai_link_component {
|
|
struct snd_soc_dai_link_component {
|
|
const char *name;
|
|
const char *name;
|
|
struct device_node *of_node;
|
|
struct device_node *of_node;
|
|
const char *dai_name;
|
|
const char *dai_name;
|
|
};
|
|
};
|
|
|
|
|
|
-struct snd_soc_platform {
|
|
|
|
- struct device *dev;
|
|
|
|
- const struct snd_soc_platform_driver *driver;
|
|
|
|
-
|
|
|
|
- struct list_head list;
|
|
|
|
-
|
|
|
|
- struct snd_soc_component component;
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
struct snd_soc_dai_link {
|
|
struct snd_soc_dai_link {
|
|
/* config - must be set by machine driver */
|
|
/* config - must be set by machine driver */
|
|
const char *name; /* Codec name */
|
|
const char *name; /* Codec name */
|
|
@@ -1276,8 +1119,6 @@ struct snd_soc_pcm_runtime {
|
|
/* runtime devices */
|
|
/* runtime devices */
|
|
struct snd_pcm *pcm;
|
|
struct snd_pcm *pcm;
|
|
struct snd_compr *compr;
|
|
struct snd_compr *compr;
|
|
- struct snd_soc_codec *codec;
|
|
|
|
- struct snd_soc_platform *platform; /* will be removed */
|
|
|
|
struct snd_soc_dai *codec_dai;
|
|
struct snd_soc_dai *codec_dai;
|
|
struct snd_soc_dai *cpu_dai;
|
|
struct snd_soc_dai *cpu_dai;
|
|
|
|
|
|
@@ -1345,32 +1186,6 @@ struct soc_enum {
|
|
struct snd_soc_dobj dobj;
|
|
struct snd_soc_dobj dobj;
|
|
};
|
|
};
|
|
|
|
|
|
-/**
|
|
|
|
- * snd_soc_component_to_codec() - Casts a component to the CODEC it is embedded in
|
|
|
|
- * @component: The component to cast to a CODEC
|
|
|
|
- *
|
|
|
|
- * This function must only be used on components that are known to be CODECs.
|
|
|
|
- * Otherwise the behavior is undefined.
|
|
|
|
- */
|
|
|
|
-static inline struct snd_soc_codec *snd_soc_component_to_codec(
|
|
|
|
- struct snd_soc_component *component)
|
|
|
|
-{
|
|
|
|
- return container_of(component, struct snd_soc_codec, component);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
- * snd_soc_component_to_platform() - Casts a component to the platform it is embedded in
|
|
|
|
- * @component: The component to cast to a platform
|
|
|
|
- *
|
|
|
|
- * This function must only be used on components that are known to be platforms.
|
|
|
|
- * Otherwise the behavior is undefined.
|
|
|
|
- */
|
|
|
|
-static inline struct snd_soc_platform *snd_soc_component_to_platform(
|
|
|
|
- struct snd_soc_component *component)
|
|
|
|
-{
|
|
|
|
- return container_of(component, struct snd_soc_platform, component);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* snd_soc_dapm_to_component() - Casts a DAPM context to the component it is
|
|
* snd_soc_dapm_to_component() - Casts a DAPM context to the component it is
|
|
* embedded in
|
|
* embedded in
|
|
@@ -1386,33 +1201,6 @@ static inline struct snd_soc_component *snd_soc_dapm_to_component(
|
|
return container_of(dapm, struct snd_soc_component, dapm);
|
|
return container_of(dapm, struct snd_soc_component, dapm);
|
|
}
|
|
}
|
|
|
|
|
|
-/**
|
|
|
|
- * snd_soc_dapm_to_codec() - Casts a DAPM context to the CODEC it is embedded in
|
|
|
|
- * @dapm: The DAPM context to cast to the CODEC
|
|
|
|
- *
|
|
|
|
- * This function must only be used on DAPM contexts that are known to be part of
|
|
|
|
- * a CODEC (e.g. in a CODEC driver). Otherwise the behavior is undefined.
|
|
|
|
- */
|
|
|
|
-static inline struct snd_soc_codec *snd_soc_dapm_to_codec(
|
|
|
|
- struct snd_soc_dapm_context *dapm)
|
|
|
|
-{
|
|
|
|
- return snd_soc_component_to_codec(snd_soc_dapm_to_component(dapm));
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
- * snd_soc_dapm_to_platform() - Casts a DAPM context to the platform it is
|
|
|
|
- * embedded in
|
|
|
|
- * @dapm: The DAPM context to cast to the platform.
|
|
|
|
- *
|
|
|
|
- * This function must only be used on DAPM contexts that are known to be part of
|
|
|
|
- * a platform (e.g. in a platform driver). Otherwise the behavior is undefined.
|
|
|
|
- */
|
|
|
|
-static inline struct snd_soc_platform *snd_soc_dapm_to_platform(
|
|
|
|
- struct snd_soc_dapm_context *dapm)
|
|
|
|
-{
|
|
|
|
- return snd_soc_component_to_platform(snd_soc_dapm_to_component(dapm));
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* snd_soc_component_get_dapm() - Returns the DAPM context associated with a
|
|
* snd_soc_component_get_dapm() - Returns the DAPM context associated with a
|
|
* component
|
|
* component
|
|
@@ -1424,31 +1212,6 @@ static inline struct snd_soc_dapm_context *snd_soc_component_get_dapm(
|
|
return &component->dapm;
|
|
return &component->dapm;
|
|
}
|
|
}
|
|
|
|
|
|
-/**
|
|
|
|
- * snd_soc_codec_get_dapm() - Returns the DAPM context for the CODEC
|
|
|
|
- * @codec: The CODEC for which to get the DAPM context
|
|
|
|
- *
|
|
|
|
- * Note: Use this function instead of directly accessing the CODEC's dapm field
|
|
|
|
- */
|
|
|
|
-static inline struct snd_soc_dapm_context *snd_soc_codec_get_dapm(
|
|
|
|
- struct snd_soc_codec *codec)
|
|
|
|
-{
|
|
|
|
- return snd_soc_component_get_dapm(&codec->component);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
- * snd_soc_dapm_init_bias_level() - Initialize CODEC DAPM bias level
|
|
|
|
- * @codec: The CODEC for which to initialize the DAPM bias level
|
|
|
|
- * @level: The DAPM level to initialize to
|
|
|
|
- *
|
|
|
|
- * Initializes the CODEC DAPM bias level. See snd_soc_dapm_init_bias_level().
|
|
|
|
- */
|
|
|
|
-static inline void snd_soc_codec_init_bias_level(struct snd_soc_codec *codec,
|
|
|
|
- enum snd_soc_bias_level level)
|
|
|
|
-{
|
|
|
|
- snd_soc_dapm_init_bias_level(snd_soc_codec_get_dapm(codec), level);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* snd_soc_component_init_bias_level() - Initialize COMPONENT DAPM bias level
|
|
* snd_soc_component_init_bias_level() - Initialize COMPONENT DAPM bias level
|
|
* @component: The COMPONENT for which to initialize the DAPM bias level
|
|
* @component: The COMPONENT for which to initialize the DAPM bias level
|
|
@@ -1464,18 +1227,6 @@ snd_soc_component_init_bias_level(struct snd_soc_component *component,
|
|
snd_soc_component_get_dapm(component), level);
|
|
snd_soc_component_get_dapm(component), level);
|
|
}
|
|
}
|
|
|
|
|
|
-/**
|
|
|
|
- * snd_soc_dapm_get_bias_level() - Get current CODEC DAPM bias level
|
|
|
|
- * @codec: The CODEC for which to get the DAPM bias level
|
|
|
|
- *
|
|
|
|
- * Returns: The current DAPM bias level of the CODEC.
|
|
|
|
- */
|
|
|
|
-static inline enum snd_soc_bias_level snd_soc_codec_get_bias_level(
|
|
|
|
- struct snd_soc_codec *codec)
|
|
|
|
-{
|
|
|
|
- return snd_soc_dapm_get_bias_level(snd_soc_codec_get_dapm(codec));
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* snd_soc_component_get_bias_level() - Get current COMPONENT DAPM bias level
|
|
* snd_soc_component_get_bias_level() - Get current COMPONENT DAPM bias level
|
|
* @component: The COMPONENT for which to get the DAPM bias level
|
|
* @component: The COMPONENT for which to get the DAPM bias level
|
|
@@ -1489,21 +1240,6 @@ snd_soc_component_get_bias_level(struct snd_soc_component *component)
|
|
snd_soc_component_get_dapm(component));
|
|
snd_soc_component_get_dapm(component));
|
|
}
|
|
}
|
|
|
|
|
|
-/**
|
|
|
|
- * snd_soc_codec_force_bias_level() - Set the CODEC DAPM bias level
|
|
|
|
- * @codec: The CODEC for which to set the level
|
|
|
|
- * @level: The level to set to
|
|
|
|
- *
|
|
|
|
- * Forces the CODEC bias level to a specific state. See
|
|
|
|
- * snd_soc_dapm_force_bias_level().
|
|
|
|
- */
|
|
|
|
-static inline int snd_soc_codec_force_bias_level(struct snd_soc_codec *codec,
|
|
|
|
- enum snd_soc_bias_level level)
|
|
|
|
-{
|
|
|
|
- return snd_soc_dapm_force_bias_level(snd_soc_codec_get_dapm(codec),
|
|
|
|
- level);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* snd_soc_component_force_bias_level() - Set the COMPONENT DAPM bias level
|
|
* snd_soc_component_force_bias_level() - Set the COMPONENT DAPM bias level
|
|
* @component: The COMPONENT for which to set the level
|
|
* @component: The COMPONENT for which to set the level
|
|
@@ -1521,19 +1257,6 @@ snd_soc_component_force_bias_level(struct snd_soc_component *component,
|
|
level);
|
|
level);
|
|
}
|
|
}
|
|
|
|
|
|
-/**
|
|
|
|
- * snd_soc_dapm_kcontrol_codec() - Returns the codec associated to a kcontrol
|
|
|
|
- * @kcontrol: The kcontrol
|
|
|
|
- *
|
|
|
|
- * This function must only be used on DAPM contexts that are known to be part of
|
|
|
|
- * a CODEC (e.g. in a CODEC driver). Otherwise the behavior is undefined.
|
|
|
|
- */
|
|
|
|
-static inline struct snd_soc_codec *snd_soc_dapm_kcontrol_codec(
|
|
|
|
- struct snd_kcontrol *kcontrol)
|
|
|
|
-{
|
|
|
|
- return snd_soc_dapm_to_codec(snd_soc_dapm_kcontrol_dapm(kcontrol));
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* snd_soc_dapm_kcontrol_component() - Returns the component associated to a kcontrol
|
|
* snd_soc_dapm_kcontrol_component() - Returns the component associated to a kcontrol
|
|
* @kcontrol: The kcontrol
|
|
* @kcontrol: The kcontrol
|
|
@@ -1547,22 +1270,6 @@ static inline struct snd_soc_component *snd_soc_dapm_kcontrol_component(
|
|
return snd_soc_dapm_to_component(snd_soc_dapm_kcontrol_dapm(kcontrol));
|
|
return snd_soc_dapm_to_component(snd_soc_dapm_kcontrol_dapm(kcontrol));
|
|
}
|
|
}
|
|
|
|
|
|
-/* codec IO */
|
|
|
|
-unsigned int snd_soc_read(struct snd_soc_codec *codec, unsigned int reg);
|
|
|
|
-int snd_soc_write(struct snd_soc_codec *codec, unsigned int reg,
|
|
|
|
- unsigned int val);
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
- * snd_soc_cache_sync() - Sync the register cache with the hardware
|
|
|
|
- * @codec: CODEC to sync
|
|
|
|
- *
|
|
|
|
- * Note: This function will call regcache_sync()
|
|
|
|
- */
|
|
|
|
-static inline int snd_soc_cache_sync(struct snd_soc_codec *codec)
|
|
|
|
-{
|
|
|
|
- return regcache_sync(codec->component.regmap);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* snd_soc_component_cache_sync() - Sync the register cache with the hardware
|
|
* snd_soc_component_cache_sync() - Sync the register cache with the hardware
|
|
* @component: COMPONENT to sync
|
|
* @component: COMPONENT to sync
|
|
@@ -1605,37 +1312,6 @@ void snd_soc_component_init_regmap(struct snd_soc_component *component,
|
|
struct regmap *regmap);
|
|
struct regmap *regmap);
|
|
void snd_soc_component_exit_regmap(struct snd_soc_component *component);
|
|
void snd_soc_component_exit_regmap(struct snd_soc_component *component);
|
|
|
|
|
|
-/**
|
|
|
|
- * snd_soc_codec_init_regmap() - Initialize regmap instance for the CODEC
|
|
|
|
- * @codec: The CODEC for which to initialize the regmap instance
|
|
|
|
- * @regmap: The regmap instance that should be used by the CODEC
|
|
|
|
- *
|
|
|
|
- * This function allows deferred assignment of the regmap instance that is
|
|
|
|
- * associated with the CODEC. Only use this if the regmap instance is not yet
|
|
|
|
- * ready when the CODEC is registered. The function must also be called before
|
|
|
|
- * the first IO attempt of the CODEC.
|
|
|
|
- */
|
|
|
|
-static inline void snd_soc_codec_init_regmap(struct snd_soc_codec *codec,
|
|
|
|
- struct regmap *regmap)
|
|
|
|
-{
|
|
|
|
- snd_soc_component_init_regmap(&codec->component, regmap);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
- * snd_soc_codec_exit_regmap() - De-initialize regmap instance for the CODEC
|
|
|
|
- * @codec: The CODEC for which to de-initialize the regmap instance
|
|
|
|
- *
|
|
|
|
- * Calls regmap_exit() on the regmap instance associated to the CODEC and
|
|
|
|
- * removes the regmap instance from the CODEC.
|
|
|
|
- *
|
|
|
|
- * This function should only be used if snd_soc_codec_init_regmap() was used to
|
|
|
|
- * initialize the regmap instance.
|
|
|
|
- */
|
|
|
|
-static inline void snd_soc_codec_exit_regmap(struct snd_soc_codec *codec)
|
|
|
|
-{
|
|
|
|
- snd_soc_component_exit_regmap(&codec->component);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
/* device driver data */
|
|
/* device driver data */
|
|
@@ -1662,28 +1338,6 @@ static inline void *snd_soc_component_get_drvdata(struct snd_soc_component *c)
|
|
return dev_get_drvdata(c->dev);
|
|
return dev_get_drvdata(c->dev);
|
|
}
|
|
}
|
|
|
|
|
|
-static inline void snd_soc_codec_set_drvdata(struct snd_soc_codec *codec,
|
|
|
|
- void *data)
|
|
|
|
-{
|
|
|
|
- snd_soc_component_set_drvdata(&codec->component, data);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-static inline void *snd_soc_codec_get_drvdata(struct snd_soc_codec *codec)
|
|
|
|
-{
|
|
|
|
- return snd_soc_component_get_drvdata(&codec->component);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-static inline void snd_soc_platform_set_drvdata(struct snd_soc_platform *platform,
|
|
|
|
- void *data)
|
|
|
|
-{
|
|
|
|
- snd_soc_component_set_drvdata(&platform->component, data);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-static inline void *snd_soc_platform_get_drvdata(struct snd_soc_platform *platform)
|
|
|
|
-{
|
|
|
|
- return snd_soc_component_get_drvdata(&platform->component);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static inline void snd_soc_initialize_card_lists(struct snd_soc_card *card)
|
|
static inline void snd_soc_initialize_card_lists(struct snd_soc_card *card)
|
|
{
|
|
{
|
|
INIT_LIST_HEAD(&card->widgets);
|
|
INIT_LIST_HEAD(&card->widgets);
|
|
@@ -1735,20 +1389,15 @@ static inline bool snd_soc_component_is_active(
|
|
return component->active != 0;
|
|
return component->active != 0;
|
|
}
|
|
}
|
|
|
|
|
|
-static inline bool snd_soc_codec_is_active(struct snd_soc_codec *codec)
|
|
|
|
-{
|
|
|
|
- return snd_soc_component_is_active(&codec->component);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* snd_soc_kcontrol_component() - Returns the component that registered the
|
|
* snd_soc_kcontrol_component() - Returns the component that registered the
|
|
* control
|
|
* control
|
|
* @kcontrol: The control for which to get the component
|
|
* @kcontrol: The control for which to get the component
|
|
*
|
|
*
|
|
* Note: This function will work correctly if the control has been registered
|
|
* Note: This function will work correctly if the control has been registered
|
|
- * for a component. Either with snd_soc_add_codec_controls() or
|
|
|
|
- * snd_soc_add_platform_controls() or via table based setup for either a
|
|
|
|
- * CODEC, a platform or component driver. Otherwise the behavior is undefined.
|
|
|
|
|
|
+ * for a component. With snd_soc_add_codec_controls() or via table based
|
|
|
|
+ * setup for either a CODEC or component driver. Otherwise the behavior is
|
|
|
|
+ * undefined.
|
|
*/
|
|
*/
|
|
static inline struct snd_soc_component *snd_soc_kcontrol_component(
|
|
static inline struct snd_soc_component *snd_soc_kcontrol_component(
|
|
struct snd_kcontrol *kcontrol)
|
|
struct snd_kcontrol *kcontrol)
|
|
@@ -1756,34 +1405,6 @@ static inline struct snd_soc_component *snd_soc_kcontrol_component(
|
|
return snd_kcontrol_chip(kcontrol);
|
|
return snd_kcontrol_chip(kcontrol);
|
|
}
|
|
}
|
|
|
|
|
|
-/**
|
|
|
|
- * snd_soc_kcontrol_codec() - Returns the CODEC that registered the control
|
|
|
|
- * @kcontrol: The control for which to get the CODEC
|
|
|
|
- *
|
|
|
|
- * Note: This function will only work correctly if the control has been
|
|
|
|
- * registered with snd_soc_add_codec_controls() or via table based setup of
|
|
|
|
- * snd_soc_codec_driver. Otherwise the behavior is undefined.
|
|
|
|
- */
|
|
|
|
-static inline struct snd_soc_codec *snd_soc_kcontrol_codec(
|
|
|
|
- struct snd_kcontrol *kcontrol)
|
|
|
|
-{
|
|
|
|
- return snd_soc_component_to_codec(snd_soc_kcontrol_component(kcontrol));
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
- * snd_soc_kcontrol_platform() - Returns the platform that registered the control
|
|
|
|
- * @kcontrol: The control for which to get the platform
|
|
|
|
- *
|
|
|
|
- * Note: This function will only work correctly if the control has been
|
|
|
|
- * registered with snd_soc_add_platform_controls() or via table based setup of
|
|
|
|
- * a snd_soc_platform_driver. Otherwise the behavior is undefined.
|
|
|
|
- */
|
|
|
|
-static inline struct snd_soc_platform *snd_soc_kcontrol_platform(
|
|
|
|
- struct snd_kcontrol *kcontrol)
|
|
|
|
-{
|
|
|
|
- return snd_soc_component_to_platform(snd_soc_kcontrol_component(kcontrol));
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
int snd_soc_util_init(void);
|
|
int snd_soc_util_init(void);
|
|
void snd_soc_util_exit(void);
|
|
void snd_soc_util_exit(void);
|
|
|
|
|