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

Fons Adriaensen fons at linuxaudio.org
Thu Jul 28 21:41:09 UTC 2011


On Thu, Jul 28, 2011 at 10:31:07PM +0200, Adrian Knoth wrote:
 
> 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?

I have an RPM wich I'd like to use as a signal generator for measurments
etc. (it has those nice balanced line outs). But I never managed to make
it work, despite trying 1000 variations on the code you quoted. It hangs
in one of the hdsp_fifo_wait(), I don't remember which one.

Ciao,

-- 
FA




More information about the Linux-audio-dev mailing list