#include <asm/io.h>
#include <asm/dma.h>
-MODULE_AUTHOR("Massimo Piccioni <dafastidio@libero.it>");
-MODULE_DESCRIPTION("lowlevel code for Analog Devices AD1816A chip");
-MODULE_LICENSE("GPL");
-
static inline int snd_ad1816a_busy_wait(struct snd_ad1816a *chip)
{
int timeout;
}
-static void snd_ad1816a_init(struct snd_ad1816a *chip)
+static void __devinit snd_ad1816a_init(struct snd_ad1816a *chip)
{
unsigned long flags;
spin_unlock_irqrestore(&chip->lock, flags);
}
-static int snd_ad1816a_probe(struct snd_ad1816a *chip)
+static int __devinit snd_ad1816a_probe(struct snd_ad1816a *chip)
{
unsigned long flags;
return snd_ad1816a_free(chip);
}
-static const char *snd_ad1816a_chip_id(struct snd_ad1816a *chip)
+static const char __devinit *snd_ad1816a_chip_id(struct snd_ad1816a *chip)
{
switch (chip->hardware) {
case AD1816A_HW_AD1816A: return "AD1816A";
}
}
-int snd_ad1816a_create(struct snd_card *card,
- unsigned long port, int irq, int dma1, int dma2,
- struct snd_ad1816a **rchip)
+int __devinit snd_ad1816a_create(struct snd_card *card,
+ unsigned long port, int irq, int dma1, int dma2,
+ struct snd_ad1816a **rchip)
{
static struct snd_device_ops ops = {
.dev_free = snd_ad1816a_dev_free,
.pointer = snd_ad1816a_capture_pointer,
};
-int snd_ad1816a_pcm(struct snd_ad1816a *chip, int device, struct snd_pcm **rpcm)
+int __devinit snd_ad1816a_pcm(struct snd_ad1816a *chip, int device, struct snd_pcm **rpcm)
{
int error;
struct snd_pcm *pcm;
}
#if 0 /* not used now */
-static void snd_ad1816a_timer_free(struct snd_timer *timer)
-{
- struct snd_ad1816a *chip = timer->private_data;
- chip->timer = NULL;
-}
-
-int snd_ad1816a_timer(struct snd_ad1816a *chip, int device, struct snd_timer **rtimer)
+int __devinit snd_ad1816a_timer(struct snd_ad1816a *chip, int device, struct snd_timer **rtimer)
{
struct snd_timer *timer;
struct snd_timer_id tid;
return error;
strcpy(timer->name, snd_ad1816a_chip_id(chip));
timer->private_data = chip;
- timer->private_free = snd_ad1816a_timer_free;
chip->timer = timer;
timer->hw = snd_ad1816a_timer_table;
if (rtimer)
return change;
}
-static struct snd_kcontrol_new snd_ad1816a_controls[] = {
+static struct snd_kcontrol_new snd_ad1816a_controls[] __devinitdata = {
AD1816A_DOUBLE("Master Playback Switch", AD1816A_MASTER_ATT, 15, 7, 1, 1),
AD1816A_DOUBLE("Master Playback Volume", AD1816A_MASTER_ATT, 8, 0, 31, 1),
AD1816A_DOUBLE("PCM Playback Switch", AD1816A_VOICE_ATT, 15, 7, 1, 1),
AD1816A_SINGLE("3D Control - Level", AD1816A_3D_PHAT_CTRL, 0, 15, 0),
};
-int snd_ad1816a_mixer(struct snd_ad1816a *chip)
+int __devinit snd_ad1816a_mixer(struct snd_ad1816a *chip)
{
struct snd_card *card;
unsigned int idx;
}
return 0;
}
-
-EXPORT_SYMBOL(snd_ad1816a_create);
-EXPORT_SYMBOL(snd_ad1816a_pcm);
-EXPORT_SYMBOL(snd_ad1816a_mixer);
-
-static int __init alsa_ad1816a_init(void)
-{
- return 0;
-}
-
-static void __exit alsa_ad1816a_exit(void)
-{
-}
-
-module_init(alsa_ad1816a_init)
-module_exit(alsa_ad1816a_exit)