diff options
-rw-r--r-- | sound/isa/sb/sb16_main.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sound/isa/sb/sb16_main.c b/sound/isa/sb/sb16_main.c index 37e6ce7b0b13..981d65d122b6 100644 --- a/sound/isa/sb/sb16_main.c +++ b/sound/isa/sb/sb16_main.c | |||
@@ -879,10 +879,14 @@ int snd_sb16dsp_pcm(struct snd_sb *chip, int device) | |||
879 | snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_sb16_playback_ops); | 879 | snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_sb16_playback_ops); |
880 | snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_sb16_capture_ops); | 880 | snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_sb16_capture_ops); |
881 | 881 | ||
882 | if (chip->dma16 >= 0 && chip->dma8 != chip->dma16) | 882 | if (chip->dma16 >= 0 && chip->dma8 != chip->dma16) { |
883 | snd_ctl_add(card, snd_ctl_new1(&snd_sb16_dma_control, chip)); | 883 | err = snd_ctl_add(card, snd_ctl_new1( |
884 | else | 884 | &snd_sb16_dma_control, chip)); |
885 | if (err) | ||
886 | return err; | ||
887 | } else { | ||
885 | pcm->info_flags = SNDRV_PCM_INFO_HALF_DUPLEX; | 888 | pcm->info_flags = SNDRV_PCM_INFO_HALF_DUPLEX; |
889 | } | ||
886 | 890 | ||
887 | snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, | 891 | snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, |
888 | snd_dma_isa_data(), | 892 | snd_dma_isa_data(), |