diff options
Diffstat (limited to 'sound/ppc/snd_ps3.c')
| -rw-r--r-- | sound/ppc/snd_ps3.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sound/ppc/snd_ps3.c b/sound/ppc/snd_ps3.c index 8c7dcbe0118..58f292a87f9 100644 --- a/sound/ppc/snd_ps3.c +++ b/sound/ppc/snd_ps3.c @@ -933,8 +933,10 @@ static int snd_ps3_driver_probe(struct ps3_system_bus_device *dev) int i, ret; u64 lpar_addr, lpar_size; - BUG_ON(!firmware_has_feature(FW_FEATURE_PS3_LV1)); - BUG_ON(dev->match_id != PS3_MATCH_ID_SOUND); + if (WARN_ON(!firmware_has_feature(FW_FEATURE_PS3_LV1))) + return -ENODEV; + if (WARN_ON(dev->match_id != PS3_MATCH_ID_SOUND)) + return -ENODEV; the_card.ps3_dev = dev; @@ -982,7 +984,8 @@ static int snd_ps3_driver_probe(struct ps3_system_bus_device *dev) } /* create card instance */ - ret = snd_card_create(index, id, THIS_MODULE, 0, &the_card.card); + ret = snd_card_new(&dev->core, index, id, THIS_MODULE, + 0, &the_card.card); if (ret < 0) goto clean_irq; @@ -1050,7 +1053,6 @@ static int snd_ps3_driver_probe(struct ps3_system_bus_device *dev) snd_ps3_init_avsetting(&the_card); /* register the card */ - snd_card_set_dev(the_card.card, &dev->core); ret = snd_card_register(the_card.card); if (ret < 0) goto clean_dma_map; |
