aboutsummaryrefslogtreecommitdiffstats
path: root/sound/isa/opti9xx/opti92x-ad1848.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2009-02-16 17:03:57 -0500
committerTakashi Iwai <tiwai@suse.de>2009-02-16 17:03:57 -0500
commit96cf45cf559be375de29dd45afc50fa8946fb2aa (patch)
tree06242d4256aadc01aee67dfafbb94541e7a17738 /sound/isa/opti9xx/opti92x-ad1848.c
parent4c9f1d3ed7e5f910b66dc4d1456cfac17e58cf0e (diff)
parentb1a0aac05f044e78a589bfd7a9e2334aa640eb45 (diff)
Merge branch 'topic/snd_card_new-err' into topic/cs423x-merge
Diffstat (limited to 'sound/isa/opti9xx/opti92x-ad1848.c')
-rw-r--r--sound/isa/opti9xx/opti92x-ad1848.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/sound/isa/opti9xx/opti92x-ad1848.c b/sound/isa/opti9xx/opti92x-ad1848.c
index d5bc0e03132a..5cd555325b9d 100644
--- a/sound/isa/opti9xx/opti92x-ad1848.c
+++ b/sound/isa/opti9xx/opti92x-ad1848.c
@@ -828,15 +828,18 @@ static int __devinit snd_opti9xx_probe(struct snd_card *card)
828 return snd_card_register(card); 828 return snd_card_register(card);
829} 829}
830 830
831static struct snd_card *snd_opti9xx_card_new(void) 831static int snd_opti9xx_card_new(struct snd_card **cardp)
832{ 832{
833 struct snd_card *card; 833 struct snd_card *card;
834 int err;
834 835
835 card = snd_card_new(index, id, THIS_MODULE, sizeof(struct snd_opti9xx)); 836 err = snd_card_create(index, id, THIS_MODULE,
836 if (! card) 837 sizeof(struct snd_opti9xx), &card);
837 return NULL; 838 if (err < 0)
839 return err;
838 card->private_free = snd_card_opti9xx_free; 840 card->private_free = snd_card_opti9xx_free;
839 return card; 841 *cardp = card;
842 return 0;
840} 843}
841 844
842static int __devinit snd_opti9xx_isa_match(struct device *devptr, 845static int __devinit snd_opti9xx_isa_match(struct device *devptr,
@@ -901,9 +904,9 @@ static int __devinit snd_opti9xx_isa_probe(struct device *devptr,
901 } 904 }
902#endif 905#endif
903 906
904 card = snd_opti9xx_card_new(); 907 error = snd_opti9xx_card_new(&card);
905 if (! card) 908 if (error < 0)
906 return -ENOMEM; 909 return error;
907 910
908 if ((error = snd_card_opti9xx_detect(card, card->private_data)) < 0) { 911 if ((error = snd_card_opti9xx_detect(card, card->private_data)) < 0) {
909 snd_card_free(card); 912 snd_card_free(card);
@@ -948,9 +951,9 @@ static int __devinit snd_opti9xx_pnp_probe(struct pnp_card_link *pcard,
948 return -EBUSY; 951 return -EBUSY;
949 if (! isapnp) 952 if (! isapnp)
950 return -ENODEV; 953 return -ENODEV;
951 card = snd_opti9xx_card_new(); 954 error = snd_opti9xx_card_new(&card);
952 if (! card) 955 if (error < 0)
953 return -ENOMEM; 956 return error;
954 chip = card->private_data; 957 chip = card->private_data;
955 958
956 hw = snd_card_opti9xx_pnp(chip, pcard, pid); 959 hw = snd_card_opti9xx_pnp(chip, pcard, pid);