#include <linux/init.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <sound/core.h>
#include <sound/hda_codec.h>
#include "hda_local.h"
#define SI3054_VERB_READ_NODE …
#define SI3054_VERB_WRITE_NODE …
#define SI3054_EXTENDED_MID …
#define SI3054_LINE_RATE …
#define SI3054_LINE_LEVEL …
#define SI3054_GPIO_CFG …
#define SI3054_GPIO_POLARITY …
#define SI3054_GPIO_STICKY …
#define SI3054_GPIO_WAKEUP …
#define SI3054_GPIO_STATUS …
#define SI3054_GPIO_CONTROL …
#define SI3054_MISC_AFE …
#define SI3054_CHIPID …
#define SI3054_LINE_CFG1 …
#define SI3054_LINE_STATUS …
#define SI3054_DC_TERMINATION …
#define SI3054_LINE_CONFIG …
#define SI3054_CALLPROG_ATT …
#define SI3054_SQ_CONTROL …
#define SI3054_MISC_CONTROL …
#define SI3054_RING_CTRL1 …
#define SI3054_RING_CTRL2 …
#define SI3054_MEI_READY …
#define SI3054_ATAG_MASK …
#define SI3054_DTAG_MASK …
#define SI3054_GPIO_OH …
#define SI3054_GPIO_CID …
#define SI3054_CHIPID_CODEC_REV_MASK …
#define SI3054_CHIPID_DAA_REV_MASK …
#define SI3054_CHIPID_INTERNATIONAL …
#define SI3054_CHIPID_DAA_ID …
#define SI3054_CHIPID_CODEC_ID …
#define GET_REG(codec,reg) …
#define SET_REG(codec,reg,val) …
#define SET_REG_CACHE(codec,reg,val) …
struct si3054_spec { … };
#define PRIVATE_VALUE(reg,mask) …
#define PRIVATE_REG(val) …
#define PRIVATE_MASK(val) …
#define si3054_switch_info …
static int si3054_switch_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *uvalue)
{ … }
static int si3054_switch_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *uvalue)
{ … }
#define SI3054_KCONTROL(kname,reg,mask) …
static const struct snd_kcontrol_new si3054_modem_mixer[] = …;
static int si3054_build_controls(struct hda_codec *codec)
{ … }
static int si3054_pcm_prepare(struct hda_pcm_stream *hinfo,
struct hda_codec *codec,
unsigned int stream_tag,
unsigned int format,
struct snd_pcm_substream *substream)
{ … }
static int si3054_pcm_open(struct hda_pcm_stream *hinfo,
struct hda_codec *codec,
struct snd_pcm_substream *substream)
{ … }
static const struct hda_pcm_stream si3054_pcm = …;
static int si3054_build_pcms(struct hda_codec *codec)
{ … }
static int si3054_init(struct hda_codec *codec)
{ … }
static void si3054_free(struct hda_codec *codec)
{ … }
static const struct hda_codec_ops si3054_patch_ops = …;
static int patch_si3054(struct hda_codec *codec)
{ … }
static const struct hda_device_id snd_hda_id_si3054[] = …;
MODULE_DEVICE_TABLE(hdaudio, snd_hda_id_si3054);
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
static struct hda_codec_driver si3054_driver = …;
module_hda_codec_driver(…) …;