#include <linux/init.h>
#include <linux/pnp.h>
#include <linux/err.h>
#include <linux/platform_device.h>
#include <linux/module.h>
#include <sound/core.h>
#include <sound/mpu401.h>
#include <sound/initval.h>
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
static int index[SNDRV_CARDS] = …;
static char *id[SNDRV_CARDS] = …;
static bool enable[SNDRV_CARDS] = …;
#ifdef CONFIG_PNP
static bool pnp[SNDRV_CARDS] = …;
#endif
static long port[SNDRV_CARDS] = …;
static int irq[SNDRV_CARDS] = …;
static bool uart_enter[SNDRV_CARDS] = …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
#ifdef CONFIG_PNP
module_param_array(…);
MODULE_PARM_DESC(…) …;
#endif
module_param_hw_array(port, long, ioport, NULL, 0444);
MODULE_PARM_DESC(…) …;
module_param_hw_array(irq, int, irq, NULL, 0444);
MODULE_PARM_DESC(…) …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
static struct platform_device *platform_devices[SNDRV_CARDS];
static int pnp_registered;
static unsigned int snd_mpu401_devices;
static int snd_mpu401_create(struct device *devptr, int dev,
struct snd_card **rcard)
{ … }
static int snd_mpu401_probe(struct platform_device *devptr)
{ … }
#define SND_MPU401_DRIVER …
static struct platform_driver snd_mpu401_driver = …;
#ifdef CONFIG_PNP
#define IO_EXTENT …
static const struct pnp_device_id snd_mpu401_pnpids[] = …;
MODULE_DEVICE_TABLE(pnp, snd_mpu401_pnpids);
static int snd_mpu401_pnp(int dev, struct pnp_dev *device,
const struct pnp_device_id *id)
{ … }
static int snd_mpu401_pnp_probe(struct pnp_dev *pnp_dev,
const struct pnp_device_id *id)
{ … }
static struct pnp_driver snd_mpu401_pnp_driver = …;
#else
static struct pnp_driver snd_mpu401_pnp_driver;
#endif
static void snd_mpu401_unregister_all(void)
{ … }
static int __init alsa_card_mpu401_init(void)
{ … }
static void __exit alsa_card_mpu401_exit(void)
{ … }
module_init(…) …
module_exit(…)