#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/dma-mapping.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/slab.h>
#include <linux/pci.h>
#include <sound/core.h>
#include <sound/control.h>
#include <sound/pcm.h>
#include <sound/initval.h>
#include "lola.h"
static int index[SNDRV_CARDS] = …;
static char *id[SNDRV_CARDS] = …;
static bool enable[SNDRV_CARDS] = …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
static int granularity[SNDRV_CARDS] = …;
static int sample_rate_min[SNDRV_CARDS] = …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
#ifdef CONFIG_SND_DEBUG_VERBOSE
static int debug;
module_param(debug, int, 0644);
#define verbose_debug(fmt, args...) …
#else
#define verbose_debug …
#endif
static int corb_send_verb(struct lola *chip, unsigned int nid,
unsigned int verb, unsigned int data,
unsigned int extdata)
{ … }
static void lola_queue_unsol_event(struct lola *chip, unsigned int res,
unsigned int res_ex)
{ … }
static void lola_update_rirb(struct lola *chip)
{ … }
static int rirb_get_response(struct lola *chip, unsigned int *val,
unsigned int *extval)
{ … }
int lola_codec_write(struct lola *chip, unsigned int nid, unsigned int verb,
unsigned int data, unsigned int extdata)
{ … }
int lola_codec_read(struct lola *chip, unsigned int nid, unsigned int verb,
unsigned int data, unsigned int extdata,
unsigned int *val, unsigned int *extval)
{ … }
int lola_codec_flush(struct lola *chip)
{ … }
static irqreturn_t lola_interrupt(int irq, void *dev_id)
{ … }
static int reset_controller(struct lola *chip)
{ … }
static void lola_irq_enable(struct lola *chip)
{ … }
static void lola_irq_disable(struct lola *chip)
{ … }
static int setup_corb_rirb(struct lola *chip)
{ … }
static void stop_corb_rirb(struct lola *chip)
{ … }
static void lola_reset_setups(struct lola *chip)
{ … }
static int lola_parse_tree(struct lola *chip)
{ … }
static void lola_stop_hw(struct lola *chip)
{ … }
static void lola_free(struct snd_card *card)
{ … }
static int lola_create(struct snd_card *card, struct pci_dev *pci, int dev)
{ … }
static int __lola_probe(struct pci_dev *pci,
const struct pci_device_id *pci_id)
{ … }
static int lola_probe(struct pci_dev *pci,
const struct pci_device_id *pci_id)
{ … }
static const struct pci_device_id lola_ids[] = …;
MODULE_DEVICE_TABLE(pci, lola_ids);
static struct pci_driver lola_driver = …;
module_pci_driver(…) …;