#include <linux/init.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <sound/core.h>
#include <linux/mutex.h>
#include <linux/iopoll.h>
#include "patch_cs8409.h"
static int cs8409_parse_auto_config(struct hda_codec *codec)
{ … }
static void cs8409_disable_i2c_clock_worker(struct work_struct *work);
static struct cs8409_spec *cs8409_alloc_spec(struct hda_codec *codec)
{ … }
static inline int cs8409_vendor_coef_get(struct hda_codec *codec, unsigned int idx)
{ … }
static inline void cs8409_vendor_coef_set(struct hda_codec *codec, unsigned int idx,
unsigned int coef)
{ … }
static void cs8409_disable_i2c_clock(struct hda_codec *codec)
{ … }
static void cs8409_disable_i2c_clock_worker(struct work_struct *work)
{ … }
static void cs8409_enable_i2c_clock(struct hda_codec *codec)
{ … }
static int cs8409_i2c_wait_complete(struct hda_codec *codec)
{ … }
static void cs8409_set_i2c_dev_addr(struct hda_codec *codec, unsigned int addr)
{ … }
static int cs8409_i2c_set_page(struct sub_codec *scodec, unsigned int i2c_reg)
{ … }
static int cs8409_i2c_read(struct sub_codec *scodec, unsigned int addr)
{ … }
static int cs8409_i2c_bulk_read(struct sub_codec *scodec, struct cs8409_i2c_param *seq, int count)
{ … }
static int cs8409_i2c_write(struct sub_codec *scodec, unsigned int addr, unsigned int value)
{ … }
static int cs8409_i2c_bulk_write(struct sub_codec *scodec, const struct cs8409_i2c_param *seq,
int count)
{ … }
static int cs8409_init(struct hda_codec *codec)
{ … }
static int cs8409_build_controls(struct hda_codec *codec)
{ … }
static void cs8409_enable_ur(struct hda_codec *codec, int flag)
{ … }
static void cs8409_fix_caps(struct hda_codec *codec, unsigned int nid)
{ … }
static int cs8409_spk_sw_gpio_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int cs8409_spk_sw_gpio_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static const struct snd_kcontrol_new cs8409_spk_sw_ctrl = …;
int cs42l42_volume_info(struct snd_kcontrol *kctrl, struct snd_ctl_elem_info *uinfo)
{ … }
int cs42l42_volume_get(struct snd_kcontrol *kctrl, struct snd_ctl_elem_value *uctrl)
{ … }
static void cs42l42_mute(struct sub_codec *cs42l42, int vol_type,
unsigned int chs, bool mute)
{ … }
int cs42l42_volume_put(struct snd_kcontrol *kctrl, struct snd_ctl_elem_value *uctrl)
{ … }
static void cs42l42_playback_pcm_hook(struct hda_pcm_stream *hinfo,
struct hda_codec *codec,
struct snd_pcm_substream *substream,
int action)
{ … }
static void cs42l42_capture_pcm_hook(struct hda_pcm_stream *hinfo,
struct hda_codec *codec,
struct snd_pcm_substream *substream,
int action)
{ … }
static void cs42l42_enable_jack_detect(struct sub_codec *cs42l42)
{ … }
static void cs42l42_run_jack_detect(struct sub_codec *cs42l42)
{ … }
static int cs42l42_manual_hs_det(struct sub_codec *cs42l42)
{ … }
static int cs42l42_handle_tip_sense(struct sub_codec *cs42l42, unsigned int reg_ts_status)
{ … }
static int cs42l42_jack_unsol_event(struct sub_codec *cs42l42)
{ … }
static void cs42l42_resume(struct sub_codec *cs42l42)
{ … }
static void cs42l42_suspend(struct sub_codec *cs42l42)
{ … }
static void cs8409_free(struct hda_codec *codec)
{ … }
static void cs8409_cs42l42_jack_unsol_event(struct hda_codec *codec, unsigned int res)
{ … }
static int cs8409_cs42l42_suspend(struct hda_codec *codec)
{ … }
static void cs8409_cs42l42_hw_init(struct hda_codec *codec)
{ … }
static const struct hda_codec_ops cs8409_cs42l42_patch_ops = …;
static int cs8409_cs42l42_exec_verb(struct hdac_device *dev, unsigned int cmd, unsigned int flags,
unsigned int *res)
{ … }
void cs8409_cs42l42_fixups(struct hda_codec *codec, const struct hda_fixup *fix, int action)
{ … }
static void dolphin_jack_unsol_event(struct hda_codec *codec, unsigned int res)
{ … }
static void dolphin_hw_init(struct hda_codec *codec)
{ … }
static const struct hda_codec_ops cs8409_dolphin_patch_ops = …;
static int dolphin_exec_verb(struct hdac_device *dev, unsigned int cmd, unsigned int flags,
unsigned int *res)
{ … }
void dolphin_fixups(struct hda_codec *codec, const struct hda_fixup *fix, int action)
{ … }
static int patch_cs8409(struct hda_codec *codec)
{ … }
static const struct hda_device_id snd_hda_id_cs8409[] = …;
MODULE_DEVICE_TABLE(hdaudio, snd_hda_id_cs8409);
static struct hda_codec_driver cs8409_driver = …;
module_hda_codec_driver(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;