[alsa-devel] rme hdsp pcmcia (and probably pci) broken

Takashi Iwai tiwai at suse.de
Tue Nov 27 14:55:35 CET 2007


At Mon, 26 Nov 2007 17:45:03 -0800,
Fernando Lopez-Lezcano wrote:
> 
> Hi, anyone has a pcmcia rme card running? And working? With a reasonably
> recent alsa? (this probably applies also for the regular pci rme cards,
> I've had reports on the Planet CCRMA list about problems that sound
> similar to this one). 
> 
> My test setup is on fc7 running:
> 
>   alsa-lib 1.0.15
>   alsa-tools 1.0.15
>   alsa-firmware 1.0.15
> 
> After a sequence of reboots this is what I get:
> 
> 2.6.22.1-1.rt5.1 + alsa driver modules from
> svn 20070702.165519
> --> OK
> 
> 2.6.22.5-1.rt9.2 + alsa driver modules from
> hg20070830
> --> OK
> 
> 2.6.22.6-1.rt9.5 + alsa driver modules from
> hg20070830
> --> OK
> 
> 2.6.22.10-1.rt9.1 + alsa driver modules from
> hg20071012
> --> BROKEN

The only significant change in hdsp.c during this is the patch below.
Could you try to revert?


Takashi

# HG changeset patch
# User tiwai
# Date 1188556434 -7200
# Node ID d2e58f75d204bc01677c7f97e08ec067f8026dbc
# Parent  56d4c7f294f63f63b93d9d1fbfda5570149500f8
hdsp - Add support for latset RME9632 revisions

added support for the latest revision of the 9632 (and hopefully a few
following ones). The DSP matrix was not working because of wrong
identification of the card in this part of the code.

Signed-off-by: Remy Bruno <remy.bruno at trinnov.com>

diff -r 56d4c7f294f6 -r d2e58f75d204 pci/rme9652/hdsp.c
--- a/pci/rme9652/hdsp.c	Fri Aug 31 12:21:08 2007 +0200
+++ b/pci/rme9652/hdsp.c	Fri Aug 31 12:33:54 2007 +0200
@@ -606,28 +606,28 @@ static void snd_hdsp_9652_enable_mixer (
 
 static int hdsp_playback_to_output_key (struct hdsp *hdsp, int in, int out)
 {
-	switch (hdsp->firmware_rev) {
-	case 0xa:
+	switch (hdsp->io_type) {
+	case Multiface:
+	case Digiface:
+	default:
 		return (64 * out) + (32 + (in));
-	case 0x96:
-	case 0x97:
-	case 0x98:
+	case H9632:
 		return (32 * out) + (16 + (in));
-	default:
+	case H9652:
 		return (52 * out) + (26 + (in));
 	}
 }
 
 static int hdsp_input_to_output_key (struct hdsp *hdsp, int in, int out)
 {
-	switch (hdsp->firmware_rev) {
-	case 0xa:
+	switch (hdsp->io_type) {
+	case Multiface:
+	case Digiface:
+	default:
 		return (64 * out) + in;
-	case 0x96:
-	case 0x97:
-	case 0x98:
+	case H9632:
 		return (32 * out) + in;
-	default:
+	case H9652:
 		return (52 * out) + in;
 	}
 }


More information about the Alsa-devel mailing list