#include <dt-bindings/sound/qcom,q6asm.h>
#include <dt-bindings/sound/qcom,q6afe.h>
#include <linux/init.h>
#include <linux/err.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/bitops.h>
#include <linux/mutex.h>
#include <linux/slab.h>
#include <sound/core.h>
#include <sound/soc.h>
#include <sound/soc-dapm.h>
#include <sound/pcm.h>
#include <sound/control.h>
#include <sound/asound.h>
#include <sound/pcm_params.h>
#include "q6afe.h"
#include "q6asm.h"
#include "q6adm.h"
#include "q6routing.h"
#define DRV_NAME …
#define Q6ROUTING_RX_MIXERS(id) …
#define Q6ROUTING_RX_DAPM_ROUTE(mix_name, s) …
#define Q6ROUTING_TX_DAPM_ROUTE(mix_name) …
#define Q6ROUTING_TX_MIXERS(id) …
struct session_data { … };
struct msm_routing_data { … };
static struct msm_routing_data *routing_data;
int q6routing_stream_open(int fedai_id, int perf_mode,
int stream_id, int stream_type)
{ … }
EXPORT_SYMBOL_GPL(…);
static struct session_data *get_session_from_id(struct msm_routing_data *data,
int fedai_id)
{ … }
void q6routing_stream_close(int fedai_id, int stream_type)
{ … }
EXPORT_SYMBOL_GPL(…);
static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static const struct snd_kcontrol_new hdmi_mixer_controls[] = …;
static const struct snd_kcontrol_new display_port_mixer_controls[] = …;
static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = …;
static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = …;
static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = …;
static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = …;
static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = …;
static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = …;
static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = …;
static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = …;
static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = …;
static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = …;
static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = …;
static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = …;
static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = …;
static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = …;
static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = …;
static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = …;
static const struct snd_kcontrol_new pri_tdm_rx_4_mixer_controls[] = …;
static const struct snd_kcontrol_new pri_tdm_rx_5_mixer_controls[] = …;
static const struct snd_kcontrol_new pri_tdm_rx_6_mixer_controls[] = …;
static const struct snd_kcontrol_new pri_tdm_rx_7_mixer_controls[] = …;
static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = …;
static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = …;
static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = …;
static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = …;
static const struct snd_kcontrol_new sec_tdm_rx_4_mixer_controls[] = …;
static const struct snd_kcontrol_new sec_tdm_rx_5_mixer_controls[] = …;
static const struct snd_kcontrol_new sec_tdm_rx_6_mixer_controls[] = …;
static const struct snd_kcontrol_new sec_tdm_rx_7_mixer_controls[] = …;
static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = …;
static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = …;
static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = …;
static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = …;
static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = …;
static const struct snd_kcontrol_new tert_tdm_rx_5_mixer_controls[] = …;
static const struct snd_kcontrol_new tert_tdm_rx_6_mixer_controls[] = …;
static const struct snd_kcontrol_new tert_tdm_rx_7_mixer_controls[] = …;
static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = …;
static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = …;
static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = …;
static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = …;
static const struct snd_kcontrol_new quat_tdm_rx_4_mixer_controls[] = …;
static const struct snd_kcontrol_new quat_tdm_rx_5_mixer_controls[] = …;
static const struct snd_kcontrol_new quat_tdm_rx_6_mixer_controls[] = …;
static const struct snd_kcontrol_new quat_tdm_rx_7_mixer_controls[] = …;
static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = …;
static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = …;
static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = …;
static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = …;
static const struct snd_kcontrol_new quin_tdm_rx_4_mixer_controls[] = …;
static const struct snd_kcontrol_new quin_tdm_rx_5_mixer_controls[] = …;
static const struct snd_kcontrol_new quin_tdm_rx_6_mixer_controls[] = …;
static const struct snd_kcontrol_new quin_tdm_rx_7_mixer_controls[] = …;
static const struct snd_kcontrol_new wsa_codec_dma_rx_0_mixer_controls[] = …;
static const struct snd_kcontrol_new wsa_codec_dma_rx_1_mixer_controls[] = …;
static const struct snd_kcontrol_new rx_codec_dma_rx_0_mixer_controls[] = …;
static const struct snd_kcontrol_new rx_codec_dma_rx_1_mixer_controls[] = …;
static const struct snd_kcontrol_new rx_codec_dma_rx_2_mixer_controls[] = …;
static const struct snd_kcontrol_new rx_codec_dma_rx_3_mixer_controls[] = …;
static const struct snd_kcontrol_new rx_codec_dma_rx_4_mixer_controls[] = …;
static const struct snd_kcontrol_new rx_codec_dma_rx_5_mixer_controls[] = …;
static const struct snd_kcontrol_new rxcodec_dma_rx_6_mixer_controls[] = …;
static const struct snd_kcontrol_new rx_codec_dma_rx_7_mixer_controls[] = …;
static const struct snd_kcontrol_new mmul1_mixer_controls[] = …;
static const struct snd_kcontrol_new mmul2_mixer_controls[] = …;
static const struct snd_kcontrol_new mmul3_mixer_controls[] = …;
static const struct snd_kcontrol_new mmul4_mixer_controls[] = …;
static const struct snd_kcontrol_new mmul5_mixer_controls[] = …;
static const struct snd_kcontrol_new mmul6_mixer_controls[] = …;
static const struct snd_kcontrol_new mmul7_mixer_controls[] = …;
static const struct snd_kcontrol_new mmul8_mixer_controls[] = …;
static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = …;
static const struct snd_soc_dapm_route intercon[] = …;
static int routing_hw_params(struct snd_soc_component *component,
struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params)
{ … }
static int msm_routing_probe(struct snd_soc_component *c)
{ … }
static unsigned int q6routing_reg_read(struct snd_soc_component *component,
unsigned int reg)
{ … }
static int q6routing_reg_write(struct snd_soc_component *component,
unsigned int reg, unsigned int val)
{ … }
static const struct snd_soc_component_driver msm_soc_routing_component = …;
static int q6pcm_routing_probe(struct platform_device *pdev)
{ … }
static void q6pcm_routing_remove(struct platform_device *pdev)
{ … }
#ifdef CONFIG_OF
static const struct of_device_id q6pcm_routing_device_id[] = …;
MODULE_DEVICE_TABLE(of, q6pcm_routing_device_id);
#endif
static struct platform_driver q6pcm_routing_platform_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;