#include <linux/init.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <sound/core.h>
#include <sound/hda_codec.h>
#include "hda_local.h"
#include "hda_auto_parser.h"
#include "hda_jack.h"
#include "hda_generic.h"
#define CM9825_VERB_SET_HPF_1 …
#define CM9825_VERB_SET_HPF_2 …
#define CM9825_VERB_SET_PLL …
#define CM9825_VERB_SET_NEG …
#define CM9825_VERB_SET_ADCL …
#define CM9825_VERB_SET_DACL …
#define CM9825_VERB_SET_MBIAS …
#define CM9825_VERB_SET_VNEG …
#define CM9825_VERB_SET_D2S …
#define CM9825_VERB_SET_DACTRL …
#define CM9825_VERB_SET_PDNEG …
#define CM9825_VERB_SET_VDO …
#define CM9825_VERB_SET_CDALR …
#define CM9825_VERB_SET_MTCBA …
#define CM9825_VERB_SET_OTP …
#define CM9825_VERB_SET_OCP …
#define CM9825_VERB_SET_GAD …
#define CM9825_VERB_SET_TMOD …
#define CM9825_VERB_SET_SNR …
struct cmi_spec { … };
static const struct hda_verb cm9825_std_d3_verbs[] = …;
static const struct hda_verb cm9825_std_d0_verbs[] = …;
static const struct hda_verb cm9825_hp_present_verbs[] = …;
static const struct hda_verb cm9825_hp_remove_verbs[] = …;
static void cm9825_unsol_hp_delayed(struct work_struct *work)
{ … }
static void hp_callback(struct hda_codec *codec, struct hda_jack_callback *cb)
{ … }
static void cm9825_setup_unsol(struct hda_codec *codec)
{ … }
static int cm9825_init(struct hda_codec *codec)
{ … }
static void cm9825_free(struct hda_codec *codec)
{ … }
static int cm9825_suspend(struct hda_codec *codec)
{ … }
static int cm9825_resume(struct hda_codec *codec)
{ … }
static const struct hda_codec_ops cmi_auto_patch_ops = …;
static int patch_cm9825(struct hda_codec *codec)
{ … }
static int patch_cmi9880(struct hda_codec *codec)
{ … }
static int patch_cmi8888(struct hda_codec *codec)
{ … }
static const struct hda_device_id snd_hda_id_cmedia[] = …;
MODULE_DEVICE_TABLE(hdaudio, snd_hda_id_cmedia);
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
static struct hda_codec_driver cmedia_driver = …;
module_hda_codec_driver(…) …;