{
        struct snd_card *card;
        struct snd_opl3sa2 *chip;
 +      int err;
  
 -      card = snd_card_new(index[dev], id[dev], THIS_MODULE, sizeof(struct snd_opl3sa2));
 -      if (card == NULL)
 -              return NULL;
 +      err = snd_card_create(index[dev], id[dev], THIS_MODULE,
 +                            sizeof(struct snd_opl3sa2), &card);
 +      if (err < 0)
 +              return err;
        strcpy(card->driver, "OPL3SA2");
-       strcpy(card->shortname, "Yamaha OPL3-SA2");
+       strcpy(card->shortname, "Yamaha OPL3-SA");
        chip = card->private_data;
        spin_lock_init(&chip->reg_lock);
        chip->irq = -1;