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@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; } }