/*
* Audio driver for the NeoMagic 256AV and 256ZX chipsets in native
* mode, with AC97 mixer support.
*
* Overall design and parts of this code stolen from vidc_*.c and
* skeleton.c.
*
* Yeah, there are a lot of magic constants in here. You tell ME what
* they are. I just get this stuff psychically, remember?
*
* This driver was written by someone who wishes to remain anonymous.
* It is in the public domain, so share and enjoy. Try to make a profit
* off of it; go on, I dare you.
*
* Changes:
* 11-10-2000 Bartlomiej Zolnierkiewicz <bkz@linux-ide.org>
* Added some __init
* 19-04-2001 Marcus Meissner <mm@caldera.de>
* Ported to 2.4 PCI API.
*/
#include <linux/pci.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/delay.h>
#include <linux/spinlock.h>
#include "sound_config.h"
static int nm256_debug;
static int force_load;
#include "nm256.h"
#include "nm256_coeff.h"
/*
* The size of the playback reserve. When the playback buffer has less
* than NM256_PLAY_WMARK_SIZE bytes to output, we request a new
* buffer.
*/
#define NM256_PLAY_WMARK_SIZE 512
static struct audio_driver nm256_audio_driver;
static int nm256_grabInterrupt (struct nm256_info *card);
static int nm256_releaseInterrupt (struct nm256_info *card);
static irqreturn_t nm256_interrupt (int irq,
|