ALSA: hdspm - AES32: Ignore float/int format bit
authorAdrian Knoth <adi@drcomp.erfurt.thur.de>
Fri, 5 Jul 2013 09:28:13 +0000 (11:28 +0200)
committerTakashi Iwai <tiwai@suse.de>
Fri, 5 Jul 2013 12:52:31 +0000 (14:52 +0200)
As mentioned in the comment, the AES32 cards must not set the format
bit, since it is used to indicate the preferred sync setting instead.

We hence simply skip the corresponding part in the hw_params function.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/rme9652/hdspm.c

index c0143cf83cf35ba871c3a3474c15d75bb1390aea..a9f4c7c4b6f45206f19423bfbe3b80c1aa09908a 100644 (file)
@@ -5566,6 +5566,16 @@ static int snd_hdspm_hw_params(struct snd_pcm_substream *substream,
           */
 
 
+       /*  For AES cards, the float format bit is the same as the
+        *  preferred sync reference. Since we don't want to break
+        *  sync settings, we have to skip the remaining part of this
+        *  function.
+        */
+       if (hdspm->io_type == AES32) {
+               return 0;
+       }
+
+
        /* Switch to native float format if requested */
        if (SNDRV_PCM_FORMAT_FLOAT_LE == params_format(params)) {
                if (!(hdspm->control_register & HDSPe_FLOAT_FORMAT))