#include <linux/sched.h>
#include <linux/delay.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/iommu.h>
#include <linux/pci.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
#include <linux/mutex.h>
#include <sound/core.h>
#include <sound/emu10k1.h>
#include <linux/firmware.h>
#include "p16v.h"
#include "tina2.h"
#include "p17v.h"
#define HANA_FILENAME …
#define DOCK_FILENAME …
#define EMU1010B_FILENAME …
#define MICRO_DOCK_FILENAME …
#define EMU0404_FILENAME …
#define EMU1010_NOTEBOOK_FILENAME …
MODULE_FIRMWARE(…);
MODULE_FIRMWARE(…);
MODULE_FIRMWARE(…);
MODULE_FIRMWARE(…);
MODULE_FIRMWARE(…);
MODULE_FIRMWARE(…);
void snd_emu10k1_voice_init(struct snd_emu10k1 *emu, int ch)
{ … }
static const unsigned int spi_dac_init[] = …;
static const unsigned int i2c_adc_init[][2] = …;
static int snd_emu10k1_init(struct snd_emu10k1 *emu, int enable_ir)
{ … }
static void snd_emu10k1_audio_enable(struct snd_emu10k1 *emu)
{ … }
int snd_emu10k1_done(struct snd_emu10k1 *emu)
{ … }
#define HOOKN_BIT …
#define HANDN_BIT …
#define PULSEN_BIT …
#define EC_GDI1 …
#define EC_GDI0 …
#define EC_NUM_CONTROL_BITS …
#define EC_AC3_DATA_SELN …
#define EC_EE_DATA_SEL …
#define EC_EE_CNTRL_SELN …
#define EC_EECLK …
#define EC_EECS …
#define EC_EESDO …
#define EC_TRIM_CSN …
#define EC_TRIM_SCLK …
#define EC_TRIM_SDATA …
#define EC_TRIM_MUTEN …
#define EC_ADCCAL …
#define EC_ADCRSTN …
#define EC_DACCAL …
#define EC_DACMUTEN …
#define EC_LEDN …
#define EC_SPDIF0_SEL_SHIFT …
#define EC_SPDIF1_SEL_SHIFT …
#define EC_SPDIF0_SEL_MASK …
#define EC_SPDIF1_SEL_MASK …
#define EC_SPDIF0_SELECT(_x) …
#define EC_SPDIF1_SELECT(_x) …
#define EC_CURRENT_PROM_VERSION …
#define EC_EEPROM_SIZE …
#define EC_PROM_VERSION_ADDR …
#define EC_BOARDREV0_ADDR …
#define EC_BOARDREV1_ADDR …
#define EC_LAST_PROMFILE_ADDR …
#define EC_SERIALNUM_ADDR …
#define EC_CHECKSUM_ADDR …
#define EC_RAW_RUN_MODE …
#define EC_DEFAULT_ADC_GAIN …
#define EC_DEFAULT_SPDIF0_SEL …
#define EC_DEFAULT_SPDIF1_SEL …
static void snd_emu10k1_ecard_write(struct snd_emu10k1 *emu, unsigned int value)
{ … }
static void snd_emu10k1_ecard_setadcgain(struct snd_emu10k1 *emu,
unsigned short gain)
{ … }
static int snd_emu10k1_ecard_init(struct snd_emu10k1 *emu)
{ … }
static int snd_emu10k1_cardbus_init(struct snd_emu10k1 *emu)
{ … }
static const char * const firmware_names[5][2] = …;
static int snd_emu1010_load_firmware(struct snd_emu10k1 *emu, int dock,
const struct firmware **fw)
{ … }
static void snd_emu1010_load_dock_firmware(struct snd_emu10k1 *emu)
{ … }
static void emu1010_dock_event(struct snd_emu10k1 *emu)
{ … }
static void emu1010_clock_event(struct snd_emu10k1 *emu)
{ … }
static void emu1010_work(struct work_struct *work)
{ … }
static void emu1010_interrupt(struct snd_emu10k1 *emu)
{ … }
static int snd_emu10k1_emu1010_init(struct snd_emu10k1 *emu)
{ … }
#ifdef CONFIG_PM_SLEEP
static int alloc_pm_buffer(struct snd_emu10k1 *emu);
static void free_pm_buffer(struct snd_emu10k1 *emu);
#endif
static void snd_emu10k1_free(struct snd_card *card)
{ … }
static const struct snd_emu_chip_details emu_chip_details[] = …;
static void snd_emu10k1_detect_iommu(struct snd_emu10k1 *emu)
{ … }
int snd_emu10k1_create(struct snd_card *card,
struct pci_dev *pci,
unsigned short extin_mask,
unsigned short extout_mask,
long max_cache_bytes,
int enable_ir,
uint subsystem)
{ … }
#ifdef CONFIG_PM_SLEEP
static const unsigned char saved_regs[] = …;
static const unsigned char saved_regs_audigy[] = …;
static int alloc_pm_buffer(struct snd_emu10k1 *emu)
{ … }
static void free_pm_buffer(struct snd_emu10k1 *emu)
{ … }
void snd_emu10k1_suspend_regs(struct snd_emu10k1 *emu)
{ … }
void snd_emu10k1_resume_init(struct snd_emu10k1 *emu)
{ … }
void snd_emu10k1_resume_regs(struct snd_emu10k1 *emu)
{ … }
#endif