#include <linux/device.h>
#include <linux/io.h>
#include <linux/module.h>
#include <linux/of_address.h>
#include <linux/pm_runtime.h>
#include <linux/regmap.h>
#include <sound/core.h>
#include <sound/soc.h>
#include <sound/tlv.h>
#include "tegra210_mbdrc.h"
#include "tegra210_ope.h"
#define MBDRC_FILTER_REG(reg, id) …
#define MBDRC_FILTER_REG_DEFAULTS(id) …
static const struct reg_default tegra210_mbdrc_reg_defaults[] = …;
static const struct tegra210_mbdrc_config mbdrc_init_config = …;
static void tegra210_mbdrc_write_ram(struct regmap *regmap, unsigned int reg_ctrl,
unsigned int reg_data, unsigned int ram_offset,
unsigned int *data, size_t size)
{ … }
static int tegra210_mbdrc_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int tegra210_mbdrc_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int tegra210_mbdrc_get_enum(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int tegra210_mbdrc_put_enum(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int tegra210_mbdrc_band_params_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int tegra210_mbdrc_band_params_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int tegra210_mbdrc_threshold_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int tegra210_mbdrc_threshold_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int tegra210_mbdrc_biquad_coeffs_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int tegra210_mbdrc_biquad_coeffs_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int tegra210_mbdrc_param_info(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_info *uinfo)
{ … }
static int tegra210_mbdrc_vol_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int tegra210_mbdrc_vol_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static const char * const tegra210_mbdrc_mode_text[] = …;
static const struct soc_enum tegra210_mbdrc_mode_enum = …;
static const char * const tegra210_mbdrc_peak_rms_text[] = …;
static const struct soc_enum tegra210_mbdrc_peak_rms_enum = …;
static const char * const tegra210_mbdrc_filter_structure_text[] = …;
static const struct soc_enum tegra210_mbdrc_filter_structure_enum = …;
static const char * const tegra210_mbdrc_frame_size_text[] = …;
static const struct soc_enum tegra210_mbdrc_frame_size_enum = …;
#define TEGRA_MBDRC_BYTES_EXT(xname, xbase, xregs, xshift, xmask, xinfo) …
#define TEGRA_MBDRC_BAND_BYTES_EXT(xname, xbase, xshift, xmask, xinfo) …
static const DECLARE_TLV_DB_MINMAX(mdbrc_vol_tlv, -25600, 25500);
static const struct snd_kcontrol_new tegra210_mbdrc_controls[] = …;
static bool tegra210_mbdrc_wr_reg(struct device *dev, unsigned int reg)
{ … }
static bool tegra210_mbdrc_rd_reg(struct device *dev, unsigned int reg)
{ … }
static bool tegra210_mbdrc_volatile_reg(struct device *dev, unsigned int reg)
{ … }
static bool tegra210_mbdrc_precious_reg(struct device *dev, unsigned int reg)
{ … }
static const struct regmap_config tegra210_mbdrc_regmap_cfg = …;
int tegra210_mbdrc_hw_params(struct snd_soc_component *cmpnt)
{ … }
int tegra210_mbdrc_component_init(struct snd_soc_component *cmpnt)
{ … }
int tegra210_mbdrc_regmap_init(struct platform_device *pdev)
{ … }