#include <linux/io.h>
#include <asm/dma.h>
#include <linux/init.h>
#include <linux/time.h>
#include <linux/module.h>
#include <sound/core.h>
#include <sound/sb.h>
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
#define SB8_CLOCK …
#define SB8_DEN(v) …
#define SB8_RATE(v) …
static const struct snd_ratnum clock = …;
static const struct snd_pcm_hw_constraint_ratnums hw_constraints_clock = …;
static const struct snd_ratnum stereo_clocks[] = …;
static int snd_sb8_hw_constraint_rate_channels(struct snd_pcm_hw_params *params,
struct snd_pcm_hw_rule *rule)
{ … }
static int snd_sb8_hw_constraint_channels_rate(struct snd_pcm_hw_params *params,
struct snd_pcm_hw_rule *rule)
{ … }
static int snd_sb8_playback_prepare(struct snd_pcm_substream *substream)
{ … }
static int snd_sb8_playback_trigger(struct snd_pcm_substream *substream,
int cmd)
{ … }
static int snd_sb8_capture_prepare(struct snd_pcm_substream *substream)
{ … }
static int snd_sb8_capture_trigger(struct snd_pcm_substream *substream,
int cmd)
{ … }
irqreturn_t snd_sb8dsp_interrupt(struct snd_sb *chip)
{ … }
static snd_pcm_uframes_t snd_sb8_playback_pointer(struct snd_pcm_substream *substream)
{ … }
static snd_pcm_uframes_t snd_sb8_capture_pointer(struct snd_pcm_substream *substream)
{ … }
static const struct snd_pcm_hardware snd_sb8_playback = …;
static const struct snd_pcm_hardware snd_sb8_capture = …;
static int snd_sb8_open(struct snd_pcm_substream *substream)
{ … }
static int snd_sb8_close(struct snd_pcm_substream *substream)
{ … }
static const struct snd_pcm_ops snd_sb8_playback_ops = …;
static const struct snd_pcm_ops snd_sb8_capture_ops = …;
int snd_sb8dsp_pcm(struct snd_sb *chip, int device)
{ … }
EXPORT_SYMBOL(…);
EXPORT_SYMBOL(…);
EXPORT_SYMBOL(…);
EXPORT_SYMBOL(…);