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

From: Adrian Knoth <adi@email-addr-hidden>
Date: Fri Jul 29 2011 - 00:56:27 EEST

On Thu, Jul 28, 2011 at 09:41:09PM +0000, Fons Adriaensen wrote:

> > 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.

I blindly wrote a patch:

   http://adi.loris.tv/hdsp_test.tar.bz2

Does it work? If you like and if it's possible to get remote access to
your machine, I'm happy to give it a whirl and start hacking.

I'm somewhat surprised to see so many "wrong" constants in hdsp.c, like
HDSP_fifoData being 368. I have no idea why it is there, I always
thought the fifo write register is 92. (that's what I've changed in the
hdsp_test.tar.bz2, too)

There are even more occurrences of control2Reg in hdsp.c which I would
change to controlRegister, especially in
snd_hdsp_load_firmware_from_cache. But it cannot be totally wrong,
because I guess it must be working for some users...

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

This archive was generated by hypermail 2.1.8 : Fri Jul 29 2011 - 04:15:02 EEST