aboutsummaryrefslogtreecommitdiffstats
path: root/sound/isa/cs423x/cs4236.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/isa/cs423x/cs4236.c')
-rw-r--r--sound/isa/cs423x/cs4236.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/sound/isa/cs423x/cs4236.c b/sound/isa/cs423x/cs4236.c
index db830682804f..f7845986f467 100644
--- a/sound/isa/cs423x/cs4236.c
+++ b/sound/isa/cs423x/cs4236.c
@@ -382,7 +382,7 @@ static void snd_card_cs4236_free(struct snd_card *card)
382 release_and_free_resource(acard->res_sb_port); 382 release_and_free_resource(acard->res_sb_port);
383} 383}
384 384
385static struct snd_card *snd_cs423x_card_new(int dev) 385static int snd_cs423x_card_new(int dev, struct snd_card **cardp)
386{ 386{
387 struct snd_card *card; 387 struct snd_card *card;
388 int err; 388 int err;
@@ -390,9 +390,10 @@ static struct snd_card *snd_cs423x_card_new(int dev)
390 err = snd_card_create(index[dev], id[dev], THIS_MODULE, 390 err = snd_card_create(index[dev], id[dev], THIS_MODULE,
391 sizeof(struct snd_card_cs4236), &card); 391 sizeof(struct snd_card_cs4236), &card);
392 if (err < 0) 392 if (err < 0)
393 return NULL; 393 return err;
394 card->private_free = snd_card_cs4236_free; 394 card->private_free = snd_card_cs4236_free;
395 return card; 395 *cardp = card;
396 return 0;
396} 397}
397 398
398static int __devinit snd_cs423x_probe(struct snd_card *card, int dev) 399static int __devinit snd_cs423x_probe(struct snd_card *card, int dev)
@@ -513,9 +514,9 @@ static int __devinit snd_cs423x_isa_probe(struct device *pdev,
513 struct snd_card *card; 514 struct snd_card *card;
514 int err; 515 int err;
515 516
516 card = snd_cs423x_card_new(dev); 517 err = snd_cs423x_card_new(dev, &card);
517 if (! card) 518 if (err < 0)
518 return -ENOMEM; 519 return err;
519 snd_card_set_dev(card, pdev); 520 snd_card_set_dev(card, pdev);
520 if ((err = snd_cs423x_probe(card, dev)) < 0) { 521 if ((err = snd_cs423x_probe(card, dev)) < 0) {
521 snd_card_free(card); 522 snd_card_free(card);
@@ -595,9 +596,9 @@ static int __devinit snd_cs4232_pnpbios_detect(struct pnp_dev *pdev,
595 if (dev >= SNDRV_CARDS) 596 if (dev >= SNDRV_CARDS)
596 return -ENODEV; 597 return -ENODEV;
597 598
598 card = snd_cs423x_card_new(dev); 599 err = snd_cs423x_card_new(dev, &card);
599 if (! card) 600 if (err < 0)
600 return -ENOMEM; 601 return err;
601 if ((err = snd_card_cs4232_pnp(dev, card->private_data, pdev)) < 0) { 602 if ((err = snd_card_cs4232_pnp(dev, card->private_data, pdev)) < 0) {
602 printk(KERN_ERR "PnP BIOS detection failed for " IDENT "\n"); 603 printk(KERN_ERR "PnP BIOS detection failed for " IDENT "\n");
603 snd_card_free(card); 604 snd_card_free(card);
@@ -657,9 +658,9 @@ static int __devinit snd_cs423x_pnpc_detect(struct pnp_card_link *pcard,
657 if (dev >= SNDRV_CARDS) 658 if (dev >= SNDRV_CARDS)
658 return -ENODEV; 659 return -ENODEV;
659 660
660 card = snd_cs423x_card_new(dev); 661 res = snd_cs423x_card_new(dev, &card);
661 if (! card) 662 if (res < 0)
662 return -ENOMEM; 663 return res;
663 if ((res = snd_card_cs423x_pnpc(dev, card->private_data, pcard, pid)) < 0) { 664 if ((res = snd_card_cs423x_pnpc(dev, card->private_data, pcard, pid)) < 0) {
664 printk(KERN_ERR "isapnp detection failed and probing for " IDENT 665 printk(KERN_ERR "isapnp detection failed and probing for " IDENT
665 " is not supported\n"); 666 " is not supported\n");