[alsa-devel] hdsp rpm support
Hi everyone
I would like to know current state of the RME HDSP RPM support. There was a thread [1] in 2008 on this list about the issue and things looked promising back then. However, I'm still unable to upload the firmware with alsa-driver from git on my Ubuntu 11.04 (32bit) machine with a 2.6.38 kernel. I posted a detailed description of the issue on the alsa-user list here [2].
Is it supposed to work with Cardbus? If not, is there something I can do to help support it?
Any hints appreciated.
Roman
[1] http://mailman.alsa-project.org/pipermail/alsa-devel/2008-May/008128.html
On Wed, Jan 18, 2012 at 10:05:59AM +0100, Roman Haefeli wrote:
I would like to know current state of the RME HDSP RPM support. There was a thread [1] in 2008 on this list about the issue and things looked promising back then. However, I'm still unable to upload the firmware with alsa-driver from git on my Ubuntu 11.04 (32bit) machine with a 2.6.38 kernel. I posted a detailed description of the issue on the alsa-user list here [2].
It seems that the developer of the driver - Adrian Knoth - has two versions: one that works for me, and one that works for another user.
AFAICS, the problem is with the code that identifies the card as an RPM, Multiface or Digiface, and that triggers ths HW into accepting the firmware. Once past this point everything works perfectly, including switching the phone preamps etc.
I've use it with both Cardbus and ExpressCard.
One more user would probably help...
Ciao,
Hi Fons
I'm glad to hear about people having success with this issue.
On Wed, 2012-01-18 at 10:26 +0000, Fons Adriaensen wrote:
On Wed, Jan 18, 2012 at 10:05:59AM +0100, Roman Haefeli wrote:
I would like to know current state of the RME HDSP RPM support. There was a thread [1] in 2008 on this list about the issue and things looked promising back then. However, I'm still unable to upload the firmware with alsa-driver from git on my Ubuntu 11.04 (32bit) machine with a 2.6.38 kernel. I posted a detailed description of the issue on the alsa-user list here [2].
It seems that the developer of the driver - Adrian Knoth - has two versions: one that works for me, and one that works for another user.
AFAICS, the problem is with the code that identifies the card as an RPM, Multiface or Digiface, and that triggers ths HW into accepting the firmware. Once past this point everything works perfectly, including switching the phone preamps etc.
I can confirm this. When I upload the firmware with Windows, I can fully use the card and a recent 'hdspmixer' shows me the correct number of channels. However, the culprit seems to be uploading the firmware.
I've use it with both Cardbus and ExpressCard.
Good to hear.
May I ask kindly for the 'other' version of the driver, which I would be happy to test?
One more user would probably help...
I'm willing to test and report back (as much as I can as a non-dev).
Roman
On 01/18/2012 11:54 AM, Roman Haefeli wrote:
Sorry for the late reply, I was on vacation...
[RME HDSP RPM]
May I ask kindly for the 'other' version of the driver, which I would be happy to test?
As already mentioned by Fons, there are so many differnt versions now that I hardly remember which one is supposed to work. ;)
http://adi.loris.tv/hdsp_20111031.tar.bz2
seems to be a combined archive. It contains two versions of the driver, the first (hdsp.c) is more or less what's in current alsa-driver, the other one (hdsp-test.c) is what turned out to be working for one user, so you would do
mv hdsp-test.c hdsp.c
followed by
make install
Note that this driver uses hdsp.ko as the module name in contrast to snd_hdsp.ko from your tree, so you might need to add
blacklist snd_hdsp
to /etc/modprobe.d/foobar.conf
Please report back.
Final remark: For some devices (digiface, multiface, iirc), the firmware filename was too long. mv /lib/firmware/hdsploader/* /lib/firmware/ did the trick, but iirc, the RPM wasn't affected.
Cheers
Hi Adrian
On Mon, 2012-02-13 at 16:06 +0100, Adrian Knoth wrote:
On 01/18/2012 11:54 AM, Roman Haefeli wrote: Sorry for the late reply, I was on vacation...
No problem at all. I'm glad to get a response.
[RME HDSP RPM]
May I ask kindly for the 'other' version of the driver, which I would be happy to test?
As already mentioned by Fons, there are so many differnt versions now that I hardly remember which one is supposed to work. ;)
http://adi.loris.tv/hdsp_20111031.tar.bz2
seems to be a combined archive. It contains two versions of the driver, the first (hdsp.c) is more or less what's in current alsa-driver, the other one (hdsp-test.c) is what turned out to be working for one user, so you would do
Unfortunately, it seems that none of those versions is working for me. I did as you suggested and inserted the module based on hdsp-test.c. When inserting the cardbus interface (with connected iobox), I get this:
--- Feb 14 23:48:38 yoyo5 kernel: [40573.384092] pcmcia_socket pcmcia_socket0: pccard: CardBus card inserted into slot 0 Feb 14 23:48:38 yoyo5 kernel: [40573.384130] pci 0000:16:00.0: [10ee:3fc5] type 0 class 0x000401 Feb 14 23:48:38 yoyo5 kernel: [40573.384172] pci 0000:16:00.0: reg 10: [mem 0x00000000-0x0000ffff] Feb 14 23:48:38 yoyo5 kernel: [40573.384337] pci 0000:16:00.0: BAR 0: assigned [mem 0x80000000-0x8000ffff] Feb 14 23:48:38 yoyo5 kernel: [40573.384352] pci 0000:16:00.0: BAR 0: set to [mem 0x80000000-0x8000ffff] (PCI address [0x80000000-0x8000ffff]) Feb 14 23:48:38 yoyo5 kernel: [40573.384376] pci 0000:16:00.0: cache line size of 64 is not supported Feb 14 23:48:38 yoyo5 kernel: [40573.384673] hdsp 0000:16:00.0: enabling device (0000 -> 0002) Feb 14 23:48:38 yoyo5 kernel: [40573.384691] hdsp 0000:16:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 Feb 14 23:48:41 yoyo5 kernel: [40576.408074] Hammerfall-DSP: no IO box connected! Feb 14 23:48:41 yoyo5 kernel: [40576.408148] hdsp 0000:16:00.0: PCI INT A disabled Feb 14 23:48:41 yoyo5 kernel: [40576.408173] hdsp: probe of 0000:16:00.0 failed with error -5 ---
It's seems it's not even recognizing that an RPM box is attached.
The other version (hdsp.c from your archive) gives me this, which is similar to what I get with the stock alsa drivers:
--- Feb 14 23:57:52 yoyo5 kernel: [41126.784055] pcmcia_socket pcmcia_socket0: pccard: CardBus card inserted into slot 0 Feb 14 23:57:52 yoyo5 kernel: [41126.784093] pci 0000:16:00.0: [10ee:3fc5] type 0 class 0x000401 Feb 14 23:57:52 yoyo5 kernel: [41126.784134] pci 0000:16:00.0: reg 10: [mem 0x00000000-0x0000ffff] Feb 14 23:57:52 yoyo5 kernel: [41126.784300] pci 0000:16:00.0: BAR 0: assigned [mem 0x80000000-0x8000ffff] Feb 14 23:57:52 yoyo5 kernel: [41126.784315] pci 0000:16:00.0: BAR 0: set to [mem 0x80000000-0x8000ffff] (PCI address [0x80000000-0x8000ffff]) Feb 14 23:57:52 yoyo5 kernel: [41126.784339] pci 0000:16:00.0: cache line size of 64 is not supported Feb 14 23:57:52 yoyo5 kernel: [41126.784639] hdsp 0000:16:00.0: enabling device (0000 -> 0002) Feb 14 23:57:52 yoyo5 kernel: [41126.784658] hdsp 0000:16:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 Feb 14 23:57:54 yoyo5 kernel: [41129.343204] Hammerfall-DSP: wait for FIFO status <= 0 failed after 30 iterations Feb 14 23:57:54 yoyo5 kernel: [41129.346250] Hammerfall-DSP: wait for FIFO status <= 0 failed after 30 iterations Feb 14 23:57:54 yoyo5 kernel: [41129.351601] Hammerfall-DSP: loading firmware Feb 14 23:57:55 yoyo5 kernel: [41129.857764] Hammerfall-DSP: wait for FIFO status <= 0 failed after 5000 iterations Feb 14 23:57:55 yoyo5 kernel: [41129.857767] Hammerfall-DSP: timeout waiting for download preparation Feb 14 23:57:55 yoyo5 kernel: [41129.857769] Hammerfall-DSP: couldn't get firmware from userspace. try using hdsploader Feb 14 23:57:55 yoyo5 kernel: [41129.857771] Hammerfall-DSP: card initialization pending : waiting for firmware ---
_From what I can tell, it finds the correct firmware. If I remove the firmware file, I get different messages. So the problem must be something else.
Final remark: For some devices (digiface, multiface, iirc), the firmware filename was too long. mv /lib/firmware/hdsploader/* /lib/firmware/ did the trick, but iirc, the RPM wasn't affected.
With hdsp-test.c, it doesn't even try to find the firmware, since it doesn't seem to see the attached iobox.
Is there something else I could try?
Roman
Hi Adrian
In the meantime I upgraded my machine to Ubuntu 12.04 which comes with Linux 3.2.0 and alsa 1.0.25. The symptoms are still the same. When I insert the cardbus adapter and load the snd-hdsp module, I get this in dmesg:
May 17 15:16:47 yoyo5 kernel: [ 606.545116] pcmcia_socket pcmcia_socket0: pccard: CardBus card inserted into slot 0 May 17 15:16:47 yoyo5 kernel: [ 606.545151] pci 0000:16:00.0: [10ee:3fc5] type 0 class 0x000401 May 17 15:16:47 yoyo5 kernel: [ 606.545194] pci 0000:16:00.0: reg 10: [mem 0x00000000-0x0000ffff] May 17 15:16:47 yoyo5 kernel: [ 606.545368] pci 0000:16:00.0: BAR 0: assigned [mem 0x80000000-0x8000ffff] May 17 15:16:47 yoyo5 kernel: [ 606.545383] pci 0000:16:00.0: BAR 0: set to [mem 0x80000000-0x8000ffff] (PCI address [0x80000000-0x8000ffff]) May 17 15:16:47 yoyo5 kernel: [ 606.545407] pci 0000:16:00.0: cache line size of 64 is not supported May 17 15:16:47 yoyo5 kernel: [ 606.545723] snd_hdsp 0000:16:00.0: enabling device (0000 -> 0002) May 17 15:16:47 yoyo5 kernel: [ 606.545742] snd_hdsp 0000:16:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 May 17 15:16:50 yoyo5 kernel: [ 609.106261] Hammerfall-DSP: wait for FIFO status <= 0 failed after 30 iterations May 17 15:16:50 yoyo5 kernel: [ 609.109362] Hammerfall-DSP: wait for FIFO status <= 0 failed after 30 iterations May 17 15:16:50 yoyo5 kernel: [ 609.114447] Hammerfall-DSP: loading firmware May 17 15:16:50 yoyo5 kernel: [ 609.625540] Hammerfall-DSP: wait for FIFO status <= 0 failed after 5000 iterations May 17 15:16:50 yoyo5 kernel: [ 609.625543] Hammerfall-DSP: timeout waiting for download preparation May 17 15:16:50 yoyo5 kernel: [ 609.625545] Hammerfall-DSP: couldn't get firmware from userspace. try using hdsploader May 17 15:16:50 yoyo5 kernel: [ 609.625548] Hammerfall-DSP: card initialization pending : waiting for firmware
You said you had so many different versions of the hdsp driver. I'm willing to test them all in order to get it working, but I'd need the sources. Can you give me access to the sources?
Many thanks in advance.
Roman
On Mon, 2012-02-13 at 16:06 +0100, Adrian Knoth wrote:
On 01/18/2012 11:54 AM, Roman Haefeli wrote:
Sorry for the late reply, I was on vacation...
[RME HDSP RPM]
May I ask kindly for the 'other' version of the driver, which I would be happy to test?
As already mentioned by Fons, there are so many differnt versions now that I hardly remember which one is supposed to work. ;)
http://adi.loris.tv/hdsp_20111031.tar.bz2
seems to be a combined archive. It contains two versions of the driver, the first (hdsp.c) is more or less what's in current alsa-driver, the other one (hdsp-test.c) is what turned out to be working for one user, so you would do
mv hdsp-test.c hdsp.c
followed by
make install
Note that this driver uses hdsp.ko as the module name in contrast to snd_hdsp.ko from your tree, so you might need to add
blacklist snd_hdsp
to /etc/modprobe.d/foobar.conf
Please report back.
Final remark: For some devices (digiface, multiface, iirc), the firmware filename was too long. mv /lib/firmware/hdsploader/* /lib/firmware/ did the trick, but iirc, the RPM wasn't affected.
Cheers
On 05/17/12 15:21, Roman Haefeli wrote:
Hi Adrian
Hi!
In the meantime I upgraded my machine to Ubuntu 12.04 which comes with Linux 3.2.0 and alsa 1.0.25. The symptoms are still the same. When I insert the cardbus adapter and load the snd-hdsp module, I get this in dmesg:
JFTR: Karl Grill has recently provided a patch that fixes the RPM detection.
I've tested his patch and will submit it within the next two weeks (I'm currently on vacation).
So you might want to check Takashi's tree in mid January or dig up Karl's patch from this list.
Cheers
On Son, 2012-12-30 at 13:09 +0100, Adrian Knoth wrote:
On 05/17/12 15:21, Roman Haefeli wrote:
Hi Adrian
Hi!
In the meantime I upgraded my machine to Ubuntu 12.04 which comes with Linux 3.2.0 and alsa 1.0.25. The symptoms are still the same. When I insert the cardbus adapter and load the snd-hdsp module, I get this in dmesg:
JFTR: Karl Grill has recently provided a patch that fixes the RPM detection.
I've tested his patch and will submit it within the next two weeks (I'm currently on vacation).
So you might want to check Takashi's tree in mid January or dig up Karl's patch from this list.
I applied your last version of the patch to alsa-driver.git, compiled and installed it. Unfortunately it is still not working for me. This is what I get when inserting the cardbus interface:
an 24 23:33:22 yoyo5 kernel: [ 1451.479269] ALSA hdsp.c:859 Hammerfall-DSP: wait for FIFO status <= 0 failed after 30 iterations Jan 24 23:33:22 yoyo5 kernel: [ 1451.482343] ALSA hdsp.c:859 Hammerfall-DSP: wait for FIFO status <= 0 failed after 30 iterations Jan 24 23:33:22 yoyo5 kernel: [ 1451.484378] ALSA hdsp.c:724 Hammerfall-DSP: loading firmware Jan 24 23:33:22 yoyo5 kernel: [ 1451.994222] ALSA hdsp.c:859 Hammerfall-DSP: wait for FIFO status <= 0 failed after 5000 iterations Jan 24 23:33:22 yoyo5 kernel: [ 1451.994226] ALSA hdsp.c:730 Hammerfall-DSP: timeout waiting for download preparation Jan 24 23:33:22 yoyo5 kernel: [ 1451.994229] ALSA hdsp.c:5517 >Hammerfall-DSP: couldn't get firmware from userspace. try using hdsploader Jan 24 23:33:22 yoyo5 kernel: [ 1451.994232] ALSA hdsp.c:5522 >Hammerfall-DSP: card initialization pending : waiting for firmware
I wonder if this might be related to the fact, that almost a year ago I performed an update of the cardbus firmware (on Windows). Could it be that this firmware version is simply not supported by ALSA?
Hey, many thanks for your efforts. I'm glad to hear that it is now working for some people.
Roman
On Mit, 2012-01-18 at 10:26 +0000, Fons Adriaensen wrote:
On Wed, Jan 18, 2012 at 10:05:59AM +0100, Roman Haefeli wrote:
I would like to know current state of the RME HDSP RPM support. There was a thread [1] in 2008 on this list about the issue and things looked promising back then. However, I'm still unable to upload the firmware with alsa-driver from git on my Ubuntu 11.04 (32bit) machine with a 2.6.38 kernel. I posted a detailed description of the issue on the alsa-user list here [2].
It seems that the developer of the driver - Adrian Knoth - has two versions: one that works for me, and one that works for another user.
AFAICS, the problem is with the code that identifies the card as an RPM, Multiface or Digiface, and that triggers ths HW into accepting the firmware. Once past this point everything works perfectly, including switching the phone preamps etc.
How are you able to switch the phone preamps? Even in the git version of hdspconf, there is no mentioning of the RPM at all. To me it looks there isn't any support at all in hdspconf for HDSP RPM. Do you have some unofficial version of hdspconf that _does_ support the RPM?
OTOH, hdspmixer seems to recognize the card correctly, once the firmware is loaded.
I've use it with both Cardbus and ExpressCard.
One more user would probably help...
I am on Ubuntu 12.04 now, and since I still couldn't make the firmware get loaded in linux, I decided to install Windows XP (again) just for this task.
Roman
On 10/01/12 01:04, Roman Haefeli wrote:
AFAICS, the problem is with the code that identifies the card as an RPM, Multiface or Digiface, and that triggers ths HW into accepting the firmware. Once past this point everything works perfectly, including switching the phone preamps etc.
How are you able to switch the phone preamps? Even in the git version of hdspconf, there is no mentioning of the RPM at all. To me it looks there isn't any support at all in hdspconf for HDSP RPM. Do you have some unofficial version of hdspconf that _does_ support the RPM?
Use alsamixer.
Flo
On Mon, 2012-10-01 at 10:05 +0200, Florian Faber wrote:
On 10/01/12 01:04, Roman Haefeli wrote:
AFAICS, the problem is with the code that identifies the card as an RPM, Multiface or Digiface, and that triggers ths HW into accepting the firmware. Once past this point everything works perfectly, including switching the phone preamps etc.
How are you able to switch the phone preamps? Even in the git version of hdspconf, there is no mentioning of the RPM at all. To me it looks there isn't any support at all in hdspconf for HDSP RPM. Do you have some unofficial version of hdspconf that _does_ support the RPM?
Use alsamixer.
That is great. Thanks for the tip.
The switches for buffer size and sr don't seem to be working. However, I seem to be able to set those from jackd. I don't get all advertised (by RME) sampling rates, though: 32k, 44.1k, 48k work, 88.2k and 96k do not (it silently fails back to 48k).
Roman
Hi all, I finally got my hands on my son's RPM+cardbus, and my results were exactly the same as Roman's (timeout at the beginning of firmware upload). With a bit of experimenting (imitating the windows driver), I am now at stage where the firmware loads, but there are still some quirks (I had to bypass the iobox recognition code, and I have to eject the card and push it back in for it to work - well that is at least better than having to boot into XP and back out). I'll post a patch when these are fixed.
Regards Karl
On Son, 2012-11-18 at 18:30 +0100, Karl Grill wrote:
Hi all, I finally got my hands on my son's RPM+cardbus, and my results were exactly the same as Roman's (timeout at the beginning of firmware upload). With a bit of experimenting (imitating the windows driver), I am now at stage where the firmware loads, but there are still some quirks (I had to bypass the iobox recognition code, and I have to eject the card and push it back in for it to work - well that is at least better than having to boot into XP and back out).
Sounds great to me.
I'll post a patch when these are fixed.
I'll happily test any patches regarding this hardware. Many thanks for your efforts.
Roman
participants (5)
-
Adrian Knoth
-
Florian Faber
-
Fons Adriaensen
-
Karl Grill
-
Roman Haefeli