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 _______________________________________________ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/listinfo/linux-audio-dev