aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/au88x0
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci/au88x0')
-rw-r--r--sound/pci/au88x0/au88x0.c13
-rw-r--r--sound/pci/au88x0/au88x0.h1
-rw-r--r--sound/pci/au88x0/au88x0_pcm.c1
3 files changed, 9 insertions, 6 deletions
diff --git a/sound/pci/au88x0/au88x0.c b/sound/pci/au88x0/au88x0.c
index 762bb108c51c..f13ad536b2d5 100644
--- a/sound/pci/au88x0/au88x0.c
+++ b/sound/pci/au88x0/au88x0.c
@@ -268,8 +268,14 @@ snd_vortex_probe(struct pci_dev *pci, const struct pci_device_id *pci_id)
268 card->shortname, chip->io, chip->irq); 268 card->shortname, chip->io, chip->irq);
269 269
270 // (4) Alloc components. 270 // (4) Alloc components.
271 err = snd_vortex_mixer(chip);
272 if (err < 0) {
273 snd_card_free(card);
274 return err;
275 }
271 // ADB pcm. 276 // ADB pcm.
272 if ((err = snd_vortex_new_pcm(chip, VORTEX_PCM_ADB, NR_ADB)) < 0) { 277 err = snd_vortex_new_pcm(chip, VORTEX_PCM_ADB, NR_PCM);
278 if (err < 0) {
273 snd_card_free(card); 279 snd_card_free(card);
274 return err; 280 return err;
275 } 281 }
@@ -299,11 +305,6 @@ snd_vortex_probe(struct pci_dev *pci, const struct pci_device_id *pci_id)
299 return err; 305 return err;
300 } 306 }
301#endif 307#endif
302 // snd_ac97_mixer and Vortex mixer.
303 if ((err = snd_vortex_mixer(chip)) < 0) {
304 snd_card_free(card);
305 return err;
306 }
307 if ((err = snd_vortex_midi(chip)) < 0) { 308 if ((err = snd_vortex_midi(chip)) < 0) {
308 snd_card_free(card); 309 snd_card_free(card);
309 return err; 310 return err;
diff --git a/sound/pci/au88x0/au88x0.h b/sound/pci/au88x0/au88x0.h
index 02f6e08f7592..bb938153a964 100644
--- a/sound/pci/au88x0/au88x0.h
+++ b/sound/pci/au88x0/au88x0.h
@@ -105,6 +105,7 @@
105#define MIX_SPDIF(x) (vortex->mixspdif[x]) 105#define MIX_SPDIF(x) (vortex->mixspdif[x])
106 106
107#define NR_WTPB 0x20 /* WT channels per each bank. */ 107#define NR_WTPB 0x20 /* WT channels per each bank. */
108#define NR_PCM 0x10
108 109
109/* Structs */ 110/* Structs */
110typedef struct { 111typedef struct {
diff --git a/sound/pci/au88x0/au88x0_pcm.c b/sound/pci/au88x0/au88x0_pcm.c
index 0488633ea874..0ef2f9712208 100644
--- a/sound/pci/au88x0/au88x0_pcm.c
+++ b/sound/pci/au88x0/au88x0_pcm.c
@@ -168,6 +168,7 @@ static int snd_vortex_pcm_open(struct snd_pcm_substream *substream)
168 runtime->hw = snd_vortex_playback_hw_adb; 168 runtime->hw = snd_vortex_playback_hw_adb;
169#ifdef CHIP_AU8830 169#ifdef CHIP_AU8830
170 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK && 170 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK &&
171 VORTEX_IS_QUAD(vortex) &&
171 VORTEX_PCM_TYPE(substream->pcm) == VORTEX_PCM_ADB) { 172 VORTEX_PCM_TYPE(substream->pcm) == VORTEX_PCM_ADB) {
172 runtime->hw.channels_max = 4; 173 runtime->hw.channels_max = 4;
173 snd_pcm_hw_constraint_list(runtime, 0, 174 snd_pcm_hw_constraint_list(runtime, 0,