[LAD] [RME - hdsp] Multiface/Digiface/RPM detection

From: Adrian Knoth <adi@email-addr-hidden>
Date: Thu Jul 28 2011 - 23:31:07 EEST

Hi!

I've recently added support for the RME RPM to hdspmixer. Unfortunately,
I don't have one, it's been done blindly with user feedback.

This very user now reports that he needs to upload the device firmware
from windows. I've checked hdsploader, and of course, it needs patching.
I'll take care in a second.

More surprisingly, though, the kernel wasn't able to upload the firmware
itself, because it fails to detect the RPM and hence tries to upload a
multiface firmware.

After reading the kernel source, I think the code in hdsp.c is wrong:

                if (hdsp_fifo_wait(hdsp, 0, HDSP_SHORT_WAIT)) {
                        hdsp_write(hdsp, HDSP_control2Reg, HDSP_VERSION_BIT);
                        hdsp_write(hdsp, HDSP_control2Reg, HDSP_S_LOAD);
                        if (hdsp_fifo_wait(hdsp, 0, HDSP_SHORT_WAIT))
                                hdsp->io_type = RPM;
                        else
                                hdsp->io_type = Multiface;
                } else {
                        hdsp->io_type = Digiface;
                }

Who here owns a Digiface and can confirm or deny that the kernel
correctly detects it as Digiface? Same for Multiface, though I guess
since it's more or less the default, users wouldn't notice it.

What's wrong with the code above? I think all occurrences of
HDSP_control2Reg in hdsp_check_for_iobox need to be changed to
HDSP_controlRegister and the second hdsp_fifo_wait needs to be inverted.

But this is pure guesswork. If I come up with a patch, who here has a
RPM, Digiface or Multiface to test it?

TIA
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Fri Jul 29 00:15:02 2011

This archive was generated by hypermail 2.1.8 : Fri Jul 29 2011 - 00:15:03 EEST