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

From: Adrian Knoth <adi@email-addr-hidden>
Date: Fri Jul 29 2011 - 01:43:02 EEST

On 07/28/11 23:56, Adrian Knoth 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;
>>> }
>>>
>>> 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.

Nope, it was correct. I got confused by bytes-vs-4byte-offsets to the
iobase.

So, control2Reg is right, the logic is right, too.

Only HDSP_VERSION_BIT seems wrong here, try

   HDSP_VERSION_BIT | HDSP_S_LOAD

instead. Or change

#define HDSP_VERSION_BIT 0x100

to

#define HDSP_VERSION_BIT (0x100 | HDSP_S_LOAD)

Still pure guesswork.

> I blindly wrote a patch:
>
> http://adi.loris.tv/hdsp_test.tar.bz2

Forget it, it was stupid. Removed from the web.

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:02 2011

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