Update of /cvsroot/alsa/alsa-kernel/pci
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14145
Modified Files:
via82xx.c
Log Message:
restrict the PCM sample rates to 32, 44.1 and 48kHz when the SPDIF
switch is on.
Index: via82xx.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/via82xx.c,v
retrieving revision 1.91
retrieving revision 1.92
diff -u -r1.91 -r1.92
--- via82xx.c 6 Mar 2004 16:51:30 -0000 1.91
+++ via82xx.c 8 Mar 2004 10:37:06 -0000 1.92
@@ -382,6 +382,7 @@
struct via_rate_lock rates[2]; /* playback and capture */
unsigned int dxs_fixed: 1; /* DXS channel accepts only 48kHz */
unsigned int no_vra: 1; /* no need to set VRA on DXS channels */
+ unsigned int spdif_on: 1; /* only spdif rates work to external DACs */
snd_rawmidi_t *rmidi;
@@ -1062,6 +1063,7 @@
{48000, SNDRV_PCM_RATE_48000},
};
int i;
+ u8 val;
runtime->hw = snd_via82xx_hw;
@@ -1069,7 +1071,11 @@
ratep = &chip->rates[viadev->direction];
spin_lock_irqsave(&ratep->lock, flags);
ratep->used++;
- if (chip->dxs_fixed && viadev->reg_offset < 0x40) {
+ if (chip->spdif_on) {
+ runtime->hw.rates =
SNDRV_PCM_RATE_32000|SNDRV_PCM_RATE_44100|SNDRV_PCM_RATE_48000;
+ runtime->hw.rate_min = 32000;
+ runtime->hw.rate_max = 48000;
+ } else 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;
@@ -1429,6 +1435,8 @@
spin_lock_irqsave(&chip->reg_lock, flags);
oval = inb(port);
val = oval & ~VIA_REG_CAPTURE_CHANNEL_MIC;
+ /* save the spdif flag for rate filtering */
+ chip->spdif_on = ucontrol->value.integer.value[0] ? 1 : 0;
if (ucontrol->value.enumerated.item[0])
val |= VIA_REG_CAPTURE_CHANNEL_MIC;
if (val != oval)
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog