ASoC: sb16: Simplify snd_sb16dsp_pcm()
[firefly-linux-kernel-4.4.55.git] / sound / isa / sb / sb16_main.c
index 72b10f4f3e707385f980342820df5a226823e3f7..63d11b7b9fe845e43016b9071db3c10f51bbd0c0 100644 (file)
@@ -860,19 +860,18 @@ static struct snd_pcm_ops snd_sb16_capture_ops = {
        .pointer =      snd_sb16_capture_pointer,
 };
 
-int snd_sb16dsp_pcm(struct snd_sb * chip, int device, struct snd_pcm ** rpcm)
+int snd_sb16dsp_pcm(struct snd_sb *chip, int device)
 {
        struct snd_card *card = chip->card;
        struct snd_pcm *pcm;
        int err;
 
-       if (rpcm)
-               *rpcm = NULL;
        if ((err = snd_pcm_new(card, "SB16 DSP", device, 1, 1, &pcm)) < 0)
                return err;
        sprintf(pcm->name, "DSP v%i.%i", chip->version >> 8, chip->version & 0xff);
        pcm->info_flags = SNDRV_PCM_INFO_JOINT_DUPLEX;
        pcm->private_data = chip;
+       chip->pcm = pcm;
 
        snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_sb16_playback_ops);
        snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_sb16_capture_ops);
@@ -885,9 +884,6 @@ int snd_sb16dsp_pcm(struct snd_sb * chip, int device, struct snd_pcm ** rpcm)
        snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV,
                                              snd_dma_isa_data(),
                                              64*1024, 128*1024);
-
-       if (rpcm)
-               *rpcm = pcm;
        return 0;
 }