]> git.hungrycats.org Git - linux/commitdiff
ALSA CVS update
authorJaroslav Kysela <perex@suse.cz>
Thu, 25 Sep 2003 17:26:24 +0000 (19:26 +0200)
committerJaroslav Kysela <perex@suse.cz>
Thu, 25 Sep 2003 17:26:24 +0000 (19:26 +0200)
D:2003/09/17 13:42:05
C:VIA82xx driver
A:Takashi Iwai <tiwai@suse.de>
F:pci/via82xx.c:1.50->1.51
L:- allow VAR for multi-channel stream.
L:- use 48k only for DXS #3 on VIA8233A.

sound/pci/via82xx.c

index 29d6370a143206072c587186a395169ea34356e4..98e040a4b505d7ac74e0303480624a7872a517f0 100644 (file)
@@ -1042,8 +1042,8 @@ static int snd_via82xx_pcm_open(via82xx_t *chip, viadev_t *viadev, snd_pcm_subst
        ratep = &chip->rates[viadev->direction];
        spin_lock_irqsave(&ratep->lock, flags);
        ratep->used++;
-       if (chip->dxs_fixed && viadev->direction == 0) {
-               /* fixed playback rate */
+       if (chip->dxs_fixed && viadev->reg_offset < 0x40) {
+               /* fixed DXS playback rate */
                runtime->hw.rates = SNDRV_PCM_RATE_48000;
                runtime->hw.rate_min = runtime->hw.rate_max = 48000;
        } else if (! ratep->rate) {
@@ -2071,6 +2071,7 @@ static int __devinit snd_via82xx_probe(struct pci_dev *pci,
                if (chip_type == TYPE_VIA8233A) {
                        if ((err = snd_via8233a_pcm_new(chip)) < 0)
                                goto __error;
+                       chip->dxs_fixed = 1; /* use 48k for DXS #3 */
                } else {
                        if ((err = snd_via8233_pcm_new(chip)) < 0)
                                goto __error;