Update of /cvsroot/alsa/alsa-kernel/pci/ac97
In directory sc8-pr-cvs1:/tmp/cvs-serv29801

Modified Files:
        ac97_codec.c 
Log Message:
fixed snd_ac97_set_rate() to accept surround and LFE sample rates, too.



Index: ac97_codec.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/ac97/ac97_codec.c,v
retrieving revision 1.103
retrieving revision 1.104
diff -u -r1.103 -r1.104
--- ac97_codec.c        28 Aug 2003 15:36:44 -0000      1.103
+++ ac97_codec.c        30 Sep 2003 13:54:33 -0000      1.104
@@ -2067,6 +2067,8 @@
  *
  * The valid registers are AC97_PMC_MIC_ADC_RATE,
  * AC97_PCM_FRONT_DAC_RATE, AC97_PCM_LR_ADC_RATE and AC97_SPDIF.
+ * AC97_PCM_SURR_DAC_RATE and AC97_PCM_LFE_DAC_RATE are accepted
+ * if the codec supports them.
  * The SPDIF register is a pseudo-register to change the rate of SPDIF
  * (only if supported).
  *
@@ -2074,27 +2076,27 @@
  */
 int snd_ac97_set_rate(ac97_t *ac97, int reg, unsigned short rate)
 {
-       unsigned short mask;
        unsigned int tmp;
        
        switch (reg) {
        case AC97_PCM_MIC_ADC_RATE:
-               mask = 0x0000;
                if ((ac97->regs[AC97_EXTENDED_STATUS] & AC97_EA_VRM) == 0)      /* MIC 
VRA */
                        if (rate != 48000)
                                return -EINVAL;
                break;
        case AC97_PCM_FRONT_DAC_RATE:
-               mask = 0x0200;
-               if ((ac97->regs[AC97_EXTENDED_STATUS] & AC97_EA_VRA) == 0)      /* VRA 
*/
-                       if (rate != 48000)
-                               return -EINVAL;
-               break;
        case AC97_PCM_LR_ADC_RATE:
-               mask = 0x0100;
                if ((ac97->regs[AC97_EXTENDED_STATUS] & AC97_EA_VRA) == 0)      /* VRA 
*/
                        if (rate != 48000)
                                return -EINVAL;
+               break;
+       case AC97_PCM_SURR_DAC_RATE:
+               if (! (ac97->ext_id & AC97_SCAP_SURROUND_DAC))
+                       return -EINVAL;
+               break;
+       case AC97_PCM_LFE_DAC_RATE:
+               if (! (ac97->ext_id & AC97_SCAP_CENTER_LFE_DAC))
+                       return -EINVAL;
                break;
        case AC97_SPDIF:
                return set_spdif_rate(ac97, rate);



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog

Reply via email to