#include "cx23885.h"
#include "cx23885-reg.h"
#include <linux/module.h>
#include <linux/init.h>
#include <linux/device.h>
#include <linux/interrupt.h>
#include <linux/vmalloc.h>
#include <linux/dma-mapping.h>
#include <linux/pci.h>
#include <asm/delay.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
#include <sound/control.h>
#include <sound/initval.h>
#include <sound/tlv.h>
#define AUDIO_SRAM_CHANNEL …
#define dprintk(level, fmt, arg...) …
static unsigned int disable_analog_audio;
module_param(disable_analog_audio, int, 0644);
MODULE_PARM_DESC(…) …;
static unsigned int audio_debug;
module_param(audio_debug, int, 0644);
MODULE_PARM_DESC(…) …;
#define AUD_INT_DN_RISCI1 …
#define AUD_INT_UP_RISCI1 …
#define AUD_INT_RDS_DN_RISCI1 …
#define AUD_INT_DN_RISCI2 …
#define AUD_INT_UP_RISCI2 …
#define AUD_INT_RDS_DN_RISCI2 …
#define AUD_INT_DN_SYNC …
#define AUD_INT_UP_SYNC …
#define AUD_INT_RDS_DN_SYNC …
#define AUD_INT_OPC_ERR …
#define AUD_INT_BER_IRQ …
#define AUD_INT_MCHG_IRQ …
#define GP_COUNT_CONTROL_RESET …
static int cx23885_alsa_dma_init(struct cx23885_audio_dev *chip,
unsigned long nr_pages)
{ … }
static int cx23885_alsa_dma_map(struct cx23885_audio_dev *dev)
{ … }
static int cx23885_alsa_dma_unmap(struct cx23885_audio_dev *dev)
{ … }
static int cx23885_alsa_dma_free(struct cx23885_audio_buffer *buf)
{ … }
static int cx23885_start_audio_dma(struct cx23885_audio_dev *chip)
{ … }
static int cx23885_stop_audio_dma(struct cx23885_audio_dev *chip)
{ … }
int cx23885_audio_irq(struct cx23885_dev *dev, u32 status, u32 mask)
{ … }
static int dsp_buffer_free(struct cx23885_audio_dev *chip)
{ … }
#define DEFAULT_FIFO_SIZE …
static const struct snd_pcm_hardware snd_cx23885_digital_hw = …;
static int snd_cx23885_pcm_open(struct snd_pcm_substream *substream)
{ … }
static int snd_cx23885_close(struct snd_pcm_substream *substream)
{ … }
static int snd_cx23885_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *hw_params)
{ … }
static int snd_cx23885_hw_free(struct snd_pcm_substream *substream)
{ … }
static int snd_cx23885_prepare(struct snd_pcm_substream *substream)
{ … }
static int snd_cx23885_card_trigger(struct snd_pcm_substream *substream,
int cmd)
{ … }
static snd_pcm_uframes_t snd_cx23885_pointer(
struct snd_pcm_substream *substream)
{ … }
static struct page *snd_cx23885_page(struct snd_pcm_substream *substream,
unsigned long offset)
{ … }
static const struct snd_pcm_ops snd_cx23885_pcm_ops = …;
static int snd_cx23885_pcm(struct cx23885_audio_dev *chip, int device,
char *name)
{ … }
struct cx23885_audio_dev *cx23885_audio_register(struct cx23885_dev *dev)
{ … }
void cx23885_audio_unregister(struct cx23885_dev *dev)
{ … }