[ALSA] hdsp: make Multiface II work again
authorAndreas Degert <ad@papyrus-gmbh.de>
Wed, 16 Jan 2008 14:59:48 +0000 (15:59 +0100)
committerJaroslav Kysela <perex@perex.cz>
Thu, 31 Jan 2008 16:30:01 +0000 (17:30 +0100)
This device has io_type == 1 (Multiface) and firmware_rev > 0xa
(fixes regression from changeset 5326)

Signed-off-by: Andreas Degert <ad@papyrus-gmbh.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
sound/pci/rme9652/hdsp.c

index 763e4c917ec69ae12a7ef74d2273fa2bad05ca69..c2bd4384316a8ad4ccf509dce009b62c241da335 100644 (file)
@@ -607,7 +607,10 @@ static int hdsp_playback_to_output_key (struct hdsp *hdsp, int in, int out)
        case Multiface:
        case Digiface:
        default:
-               return (64 * out) + (32 + (in));
+               if (hdsp->firmware_rev == 0xa)
+                       return (64 * out) + (32 + (in));
+               else
+                       return (52 * out) + (26 + (in));
        case H9632:
                return (32 * out) + (16 + (in));
        case H9652:
@@ -621,7 +624,10 @@ static int hdsp_input_to_output_key (struct hdsp *hdsp, int in, int out)
        case Multiface:
        case Digiface:
        default:
-               return (64 * out) + in;
+               if (hdsp->firmware_rev == 0xa)
+                       return (64 * out) + in;
+               else
+                       return (52 * out) + in;
        case H9632:
                return (32 * out) + in;
        case H9652: