RE: [PATCH] staging: comedi: das1800: fix analog input number of channels

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Friday, April 08, 2016 3:16 AM, Ian Abbott wrote:
> On 07/04/16 18:45, Hartley Sweeten wrote:

<snip>

> The channel mapping is a bit warped as far as comedi is concerned.
>
> Each EXP-1800 is jumper configured for what board input channel will
> be used to return the 16 channels on the EXP-1800. The hi bits of the
> QRAM are output to the EXP-1800 boards to select the channel as the
> MUX4-7 pins on the connector.

<snip>

>> It's not entirely clear that's the case, as that table appears in the 
>> section called "When using DAS Boards with ASO Software" and refres to 
>> the channels as "software (logical) channels".
>>
>> The section called "When using DriverLINX Software (DAS or KPCI Boards)" 
>> says, "The channel numbers assigned to the EXP are different under ASO 
>> than they are under DriverLINX."  Figure C-2 shows the channel mapping 
>> under the DriverLINX software.  It shows channels 0 to 15 as the onboard 
>> channels, channels 16 to 31 as the EXP-1800 channels connected to 
>> onboard channel 0, channels 32 to 63 as the EXP-1800 channels connected 
>> to onboard channel 1, ..., channels 256 to 271 as the EXP-1800 channels 
>> connected to onboard channel 15.
>>
>> The DriverLINX mapping has up to 272 channels, but of course, there are 
>> only 256 QRAM positions, so this doesn't really give a clue to the 
>> actual mapping of channels to QRAM positions when EXP-1800 boards are 
>> connected.

So the software layers are somehow manipulating the user's channel (0 to 255
with the ASO software or 0 to 271 with the DriverLINX software) to the QRAM
channel value to correctly set the MUX4-7 bits that go to the EXP-1800 boards.

Regardless, the channel mapping isn't very clear.


<snip>

> I'd say it's better to leave the channel mapping as is, in case someone 
> already figured it out.  Presumably, they could try reading each of the 
> 256 channels to see which ones are actually connected.

Fair enough.

I'll redo this patch and leave the number of channels at 64 or 256 based
on the board type. I'll probably add a comment mentioning the issue with
the channel mapping when EXP-1800 boards are used. Since this patch is
no longer fixing a "bug" I'll add it to the cleanup series.

>> There is also the issue with the gain when using an EXP-1800 board.
>> For now I think limiting the channels to 16 is the best option.

> The external gain multiplier bit (GEXT) should be easy to support.  For 
> the EXP-1800, the external gain multiplier will be 1 or 50, depending on 
> the state of this bit.  I suppose other external boards might interpret 
> the GEXT bit differently, but I'm not aware of any.

I thought I saw a comment that one of the board types can only use an
external gain of 1. But now I can't find it.

>> Also, the driver doesn't state that the EXP-1800 boards are supported.
>> I'm not sure the author (Frank Mori Hess) actually thought about or
>> tested it when he originally wrote the driver.
>
> I don't know if Frank tried an EXP-1800 either, but I just added him to 
> the Cc list.  (It may be so long ago that he can't remember either!)

Great. Maybe Frank can add some input.

I'll rebase the bug fix comments and repost them as a v2 series.

Then I'll rebase the cleanup series to apply after the bug fixes.

Thanks,
Hartley

_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel



[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux