Commit c86b6b45 authored by Ondrej Zary's avatar Ondrej Zary Committed by Takashi Iwai

ALSA: snd-ad1816a: remove useless struct snd_card_ad1816a

struct snd_card_ad1816a is only set but the values are never used then.
Removing it allows struct snd_card's private_data to be used for
struct snd_ad1816a, simplifying the code.
Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 1c868452
...@@ -165,7 +165,7 @@ struct snd_ad1816a { ...@@ -165,7 +165,7 @@ struct snd_ad1816a {
extern int snd_ad1816a_create(struct snd_card *card, unsigned long port, extern int snd_ad1816a_create(struct snd_card *card, unsigned long port,
int irq, int dma1, int dma2, int irq, int dma1, int dma2,
struct snd_ad1816a **chip); struct snd_ad1816a *chip);
extern int snd_ad1816a_pcm(struct snd_ad1816a *chip, int device, struct snd_pcm **rpcm); extern int snd_ad1816a_pcm(struct snd_ad1816a *chip, int device, struct snd_pcm **rpcm);
extern int snd_ad1816a_mixer(struct snd_ad1816a *chip); extern int snd_ad1816a_mixer(struct snd_ad1816a *chip);
......
...@@ -63,11 +63,6 @@ MODULE_PARM_DESC(enable, "Enable ad1816a based soundcard."); ...@@ -63,11 +63,6 @@ MODULE_PARM_DESC(enable, "Enable ad1816a based soundcard.");
module_param_array(clockfreq, int, NULL, 0444); module_param_array(clockfreq, int, NULL, 0444);
MODULE_PARM_DESC(clockfreq, "Clock frequency for ad1816a driver (default = 0)."); MODULE_PARM_DESC(clockfreq, "Clock frequency for ad1816a driver (default = 0).");
struct snd_card_ad1816a {
struct pnp_dev *dev;
struct pnp_dev *devmpu;
};
static struct pnp_card_device_id snd_ad1816a_pnpids[] = { static struct pnp_card_device_id snd_ad1816a_pnpids[] = {
/* Analog Devices AD1815 */ /* Analog Devices AD1815 */
{ .id = "ADS7150", .devs = { { .id = "ADS7150" }, { .id = "ADS7151" } } }, { .id = "ADS7150", .devs = { { .id = "ADS7150" }, { .id = "ADS7151" } } },
...@@ -99,25 +94,16 @@ MODULE_DEVICE_TABLE(pnp_card, snd_ad1816a_pnpids); ...@@ -99,25 +94,16 @@ MODULE_DEVICE_TABLE(pnp_card, snd_ad1816a_pnpids);
#define DRIVER_NAME "snd-card-ad1816a" #define DRIVER_NAME "snd-card-ad1816a"
static int __devinit snd_card_ad1816a_pnp(int dev, struct snd_card_ad1816a *acard, static int __devinit snd_card_ad1816a_pnp(int dev, struct pnp_card_link *card,
struct pnp_card_link *card,
const struct pnp_card_device_id *id) const struct pnp_card_device_id *id)
{ {
struct pnp_dev *pdev; struct pnp_dev *pdev;
int err; int err;
acard->dev = pnp_request_card_device(card, id->devs[0].id, NULL); pdev = pnp_request_card_device(card, id->devs[0].id, NULL);
if (acard->dev == NULL) if (pdev == NULL)
return -EBUSY; return -EBUSY;
acard->devmpu = pnp_request_card_device(card, id->devs[1].id, NULL);
if (acard->devmpu == NULL) {
mpu_port[dev] = -1;
snd_printk(KERN_WARNING PFX "MPU401 device busy, skipping.\n");
}
pdev = acard->dev;
err = pnp_activate_dev(pdev); err = pnp_activate_dev(pdev);
if (err < 0) { if (err < 0) {
printk(KERN_ERR PFX "AUDIO PnP configure failure\n"); printk(KERN_ERR PFX "AUDIO PnP configure failure\n");
...@@ -130,16 +116,17 @@ static int __devinit snd_card_ad1816a_pnp(int dev, struct snd_card_ad1816a *acar ...@@ -130,16 +116,17 @@ static int __devinit snd_card_ad1816a_pnp(int dev, struct snd_card_ad1816a *acar
dma2[dev] = pnp_dma(pdev, 1); dma2[dev] = pnp_dma(pdev, 1);
irq[dev] = pnp_irq(pdev, 0); irq[dev] = pnp_irq(pdev, 0);
if (acard->devmpu == NULL) pdev = pnp_request_card_device(card, id->devs[1].id, NULL);
if (pdev == NULL) {
mpu_port[dev] = -1;
snd_printk(KERN_WARNING PFX "MPU401 device busy, skipping.\n");
return 0; return 0;
}
pdev = acard->devmpu;
err = pnp_activate_dev(pdev); err = pnp_activate_dev(pdev);
if (err < 0) { if (err < 0) {
printk(KERN_ERR PFX "MPU401 PnP configure failure\n"); printk(KERN_ERR PFX "MPU401 PnP configure failure\n");
mpu_port[dev] = -1; mpu_port[dev] = -1;
acard->devmpu = NULL;
} else { } else {
mpu_port[dev] = pnp_port_start(pdev, 0); mpu_port[dev] = pnp_port_start(pdev, 0);
mpu_irq[dev] = pnp_irq(pdev, 0); mpu_irq[dev] = pnp_irq(pdev, 0);
...@@ -153,18 +140,17 @@ static int __devinit snd_card_ad1816a_probe(int dev, struct pnp_card_link *pcard ...@@ -153,18 +140,17 @@ static int __devinit snd_card_ad1816a_probe(int dev, struct pnp_card_link *pcard
{ {
int error; int error;
struct snd_card *card; struct snd_card *card;
struct snd_card_ad1816a *acard;
struct snd_ad1816a *chip; struct snd_ad1816a *chip;
struct snd_opl3 *opl3; struct snd_opl3 *opl3;
struct snd_timer *timer; struct snd_timer *timer;
error = snd_card_create(index[dev], id[dev], THIS_MODULE, error = snd_card_create(index[dev], id[dev], THIS_MODULE,
sizeof(struct snd_card_ad1816a), &card); sizeof(struct snd_ad1816a), &card);
if (error < 0) if (error < 0)
return error; return error;
acard = card->private_data; chip = card->private_data;
if ((error = snd_card_ad1816a_pnp(dev, acard, pcard, pid))) { if ((error = snd_card_ad1816a_pnp(dev, pcard, pid))) {
snd_card_free(card); snd_card_free(card);
return error; return error;
} }
...@@ -174,7 +160,7 @@ static int __devinit snd_card_ad1816a_probe(int dev, struct pnp_card_link *pcard ...@@ -174,7 +160,7 @@ static int __devinit snd_card_ad1816a_probe(int dev, struct pnp_card_link *pcard
irq[dev], irq[dev],
dma1[dev], dma1[dev],
dma2[dev], dma2[dev],
&chip)) < 0) { chip)) < 0) {
snd_card_free(card); snd_card_free(card);
return error; return error;
} }
......
...@@ -548,7 +548,6 @@ static int snd_ad1816a_free(struct snd_ad1816a *chip) ...@@ -548,7 +548,6 @@ static int snd_ad1816a_free(struct snd_ad1816a *chip)
snd_dma_disable(chip->dma2); snd_dma_disable(chip->dma2);
free_dma(chip->dma2); free_dma(chip->dma2);
} }
kfree(chip);
return 0; return 0;
} }
...@@ -573,19 +572,13 @@ static const char __devinit *snd_ad1816a_chip_id(struct snd_ad1816a *chip) ...@@ -573,19 +572,13 @@ static const char __devinit *snd_ad1816a_chip_id(struct snd_ad1816a *chip)
int __devinit snd_ad1816a_create(struct snd_card *card, int __devinit snd_ad1816a_create(struct snd_card *card,
unsigned long port, int irq, int dma1, int dma2, unsigned long port, int irq, int dma1, int dma2,
struct snd_ad1816a **rchip) struct snd_ad1816a *chip)
{ {
static struct snd_device_ops ops = { static struct snd_device_ops ops = {
.dev_free = snd_ad1816a_dev_free, .dev_free = snd_ad1816a_dev_free,
}; };
int error; int error;
struct snd_ad1816a *chip;
*rchip = NULL;
chip = kzalloc(sizeof(*chip), GFP_KERNEL);
if (chip == NULL)
return -ENOMEM;
chip->irq = -1; chip->irq = -1;
chip->dma1 = -1; chip->dma1 = -1;
chip->dma2 = -1; chip->dma2 = -1;
...@@ -631,7 +624,6 @@ int __devinit snd_ad1816a_create(struct snd_card *card, ...@@ -631,7 +624,6 @@ int __devinit snd_ad1816a_create(struct snd_card *card,
return error; return error;
} }
*rchip = chip;
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment