#include <linux/io.h>
#include <linux/delay.h>
#include <linux/init.h>
#include <linux/time.h>
#include <linux/wait.h>
#include <linux/pnp.h>
#include <linux/module.h>
#include <sound/core.h>
#include <sound/initval.h>
#include <sound/wss.h>
#include <sound/mpu401.h>
#include <sound/opl3.h>
#define PFX …
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
static int index[SNDRV_CARDS] = …;
static char *id[SNDRV_CARDS] = …;
static bool enable[SNDRV_CARDS] = …;
static long port[SNDRV_CARDS] = …;
static long wss_port[SNDRV_CARDS] = …;
static long mpu_port[SNDRV_CARDS] = …;
static long fm_port[SNDRV_CARDS] = …;
static int irq[SNDRV_CARDS] = …;
static int mpu_irq[SNDRV_CARDS] = …;
static int dma1[SNDRV_CARDS] = …;
static int dma2[SNDRV_CARDS] = …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
struct snd_card_azt2320 { … };
static const struct pnp_card_device_id snd_azt2320_pnpids[] = …;
MODULE_DEVICE_TABLE(pnp_card, snd_azt2320_pnpids);
#define DRIVER_NAME …
static int snd_card_azt2320_pnp(int dev, struct snd_card_azt2320 *acard,
struct pnp_card_link *card,
const struct pnp_card_device_id *id)
{ … }
static int snd_card_azt2320_command(unsigned long port, unsigned char val)
{ … }
static int snd_card_azt2320_enable_wss(unsigned long port)
{ … }
static int snd_card_azt2320_probe(int dev,
struct pnp_card_link *pcard,
const struct pnp_card_device_id *pid)
{ … }
static unsigned int azt2320_devices;
static int snd_azt2320_pnp_detect(struct pnp_card_link *card,
const struct pnp_card_device_id *id)
{ … }
#ifdef CONFIG_PM
static int snd_azt2320_pnp_suspend(struct pnp_card_link *pcard, pm_message_t state)
{ … }
static int snd_azt2320_pnp_resume(struct pnp_card_link *pcard)
{ … }
#endif
static struct pnp_card_driver azt2320_pnpc_driver = …;
static int __init alsa_card_azt2320_init(void)
{ … }
static void __exit alsa_card_azt2320_exit(void)
{ … }
module_init(…) …
module_exit(…)