Re: ti_am33x_adc sampling bugs

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

 




On March 31, 2014 10:03:12 PM GMT+01:00, Rob Mosher <nyt@xxxxxxxxxxxxxxxxxxx> wrote:
>I'm not quite aware of what's in mainline or not, this list was CC'd by
>
Sure. I just thought I would save anyone else who was going to look the effort!
>Zubair Lutfullah who authored the patches in question.  Hopefully he
>can 
>provide more insight or a possible fix.
Indeed.
>
>0019-iio-ti_am335x_adc-Add-continuous-sampling-and-trigge.patch
>Subject: [PATCH 19/21] iio: ti_am335x_adc: Add continuous sampling and
>  trigger support
>
>Previously the driver had only one-shot reading functionality.
>This patch adds triggered buffer support to the driver.
>A buffer of samples can now be read via /dev/iio.
>
>
>On 3/31/2014 4:59 PM, Jonathan Cameron wrote:
>>
>>
>> On March 31, 2014 5:47:54 PM GMT+01:00, Rob Mosher
><nyt@xxxxxxxxxxxxxxxxxxx> wrote:
>>> I believe the AIN files came from
>>> 0020-iio-ti_am335x_adc-Add-IIO-map-interface.patch.
>>
>> Ouch that is an 'unusual' patch... No more recent patches in mainline
>appear related to what you are seeing unfortunately.
>>
>>
>>
>>> The bug is the
>>> same
>>> reading from in_voltageX_raw files.
>>>
>>> On 3/31/2014 12:14 PM, Jonathan Cameron wrote:
>>>>
>>>>
>>>> On March 31, 2014 9:17:53 AM GMT+01:00, Rob Mosher
>>> <nyt@xxxxxxxxxxxxxxxxxxx> wrote:
>>>>> The following patches were removed and behavior returned to
>normal.
>>>>>
>>>>> 0019-iio-ti_am335x_adc-Add-continuous-sampling-and-trigge.patch
>>>>> 0020-iio-ti_am335x_adc-Add-IIO-map-interface.patch
>>>>>
>>>>> Once 19 was re-applied, the bug returned.
>>>>>
>>>>> It would appear that patch19 is the problem.  On an unrelated
>note,
>>> the
>>>>>
>>>>> continuous sampling patch seems to still be missing the mode file
>to
>>>>> tell it to sample continuously or oneshot in the sysfs directory
>as
>>>>> referenced at
>>>>>
>http://processors.wiki.ti.com/index.php/AM335x_ADC_Driver%27s_Guide.
>>>> Someone should update that wiki page.
>>>> Such an attribute was not and will not be
>>>>    part of the mainline kernel ABI. Drivers can play fast and loose
>in
>>> staging but to move
>>>>    out the ABI must conform to existing definitions or be proposed
>>> reviewed and accepted.
>>>>
>>>> I am somewhat confused. Where did the AIN sysfs attributes come
>from?
>>>>
>>>>> Maybe this should be moved to the beta kernel until stable?
>>>>
>>>>>
>>>>> Cheers.
>>>>>
>>>>> On 3/31/2014 12:04 AM, Rob Mosher wrote:
>>>>>> (sorry for the duplicate, got bounces due to HTML encoding)
>>>>>>
>>>>>> The specified patch is already included.  The system was running
>>> the
>>>>>> latest kernel from Robert Nelson's repo.  Any suggestions?  I'll
>>> try
>>>>>> removing some of the patches to see if it fixes this behavior.  I
>>>>> have a
>>>>>> feeling I know which one is doing it.
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>> output from running patch.sh with source pulled from
>>>>>> https://github.com/beagleboard/kernel/tree/3.8
>>>>>>
>>>>>>
>>>>>
>>>
>/home/bbuild/comp/kernel/patches/adc/0017-IIO-ADC-ti_adc-Fix-1st-sample-read.patch:
>>>>>> applied
>>>>>>
>>>>>> Just in case, I built and installed the kernel and the same
>>> behavior
>>>>>> persisted.
>>>>>>
>>>>>> root@rbone:/# uname -a
>>>>>> Linux rbone 3.8.13-00737-g7dfad77 #1 SMP Sun Mar 30 22:11:44 EDT
>>> 2014
>>>>>> armv7l GNU/Linux
>>>>>>
>>>>>> gpio30 is connected to AIN4 using a voltage divider
>>>>>>
>>>>>> root@rbone:/# cd /sys/class/gpio/
>>>>>> root@rbone:/sys/class/gpio# echo 30 > export
>>>>>> root@rbone:/sys/class/gpio# echo BB-ADC >
>>>>> /sys/devices/bone_capemgr.9/slots
>>>>>> root@rbone:/sys/class/gpio# cd /sys/devices/ocp.3/helper.11/
>>>>>> root@rbone:/sys/devices/ocp.3/helper.11# echo out >
>>>>>> /sys/class/gpio/gpio30/direction
>>>>>>
>>>>>> root@rbone:/sys/devices/ocp.3/helper.11# echo 1 >
>>>>>> /sys/class/gpio/gpio30/value
>>>>>> root@rbone:/sys/devices/ocp.3/helper.11# cat AIN4
>>>>>> 1460
>>>>>>
>>>>>> root@rbone:/sys/devices/ocp.3/helper.11# echo 0 >
>>>>>> /sys/class/gpio/gpio30/value
>>>>>> root@rbone:/sys/devices/ocp.3/helper.11# cat AIN4
>>>>>> 0
>>>>>>
>>>>>> root@rbone:/sys/devices/ocp.3/helper.11# grep . AIN[0-3] AIN[5-7]
>>>>>> AIN0:1550
>>>>>> AIN1:1213
>>>>>> AIN2:1485
>>>>>> AIN3:795
>>>>>> AIN5:513
>>>>>> AIN6:744
>>>>>> AIN7:1698
>>>>>>
>>>>>> root@rbone:/sys/devices/ocp.3/helper.11# echo 1 >
>>>>>> /sys/class/gpio/gpio30/value
>>>>>> root@rbone:/sys/devices/ocp.3/helper.11# cat AIN4
>>>>>> 0
>>>>>> root@rbone:/sys/devices/ocp.3/helper.11# cat AIN4
>>>>>> 0
>>>>>> root@rbone:/sys/devices/ocp.3/helper.11# cat AIN4
>>>>>> 0
>>>>>> root@rbone:/sys/devices/ocp.3/helper.11# cat AIN4
>>>>>> 0
>>>>>> root@rbone:/sys/devices/ocp.3/helper.11# cat AIN4
>>>>>> 0
>>>>>> root@rbone:/sys/devices/ocp.3/helper.11# cat AIN4
>>>>>> 0
>>>>>> root@rbone:/sys/devices/ocp.3/helper.11# cat AIN4
>>>>>> 1460
>>>>>>
>>>>>> On 3/30/2014 9:16 AM, Zubair Lutfullah wrote:
>>>>>>>
>>>>>
>>>
>https://github.com/beagleboard/kernel/blob/3.8/patches/adc/0017-IIO-ADC-ti_adc-Fix-1st-sample-read.patch
>>>>>>>
>>>>>>> IIRC, this patch fixes this issue
>>>>>>>
>>>>>>> Can you compile the kernel from the sources and check?
>>>>>>> https://github.com/beagleboard/kernel/tree/3.8
>>>>>>>
>>>>>>> Regards
>>>>>>> ZubairLK
>>>>>>>
>>>>>>> On Sun, Mar 30, 2014 at 7:04 AM, Rob Mosher
>>> <nyt@xxxxxxxxxxxxxxxxxxx
>>>>>>> <mailto:nyt@xxxxxxxxxxxxxxxxxxx>> wrote:
>>>>>>>
>>>>>>>       Just a note, the same behavior persists with BB-ADC dtb
>and
>>>>>>>       reading from in_voltage4_raw
>>>>>>>
>>>>>>>
>>>>>>>       On 3/30/2014 12:30 AM, Rob Mosher wrote:
>>>>>>>
>>>>>>>           Hello fine developers,
>>>>>>>
>>>>>>>           It seems I've stumbled upon a problem while developing
>a
>>>>> full
>>>>>>>           featured Ruby gem for the Beaglebone.
>>>>>>>
>>>>>>>           It seems a patch included in the beaglebone kernel
>causes
>>>>> some
>>>>>>>           issues while reading analog inputs.  Apparently the
>>> samples
>>>>>>>           get backlogged by the number of adc pins in use.  I'm
>not
>>>>> sure
>>>>>>>           which patch exactly as there are a number that affect
>adc
>>>>>>>           buffering and I'm not currently setup for kernel
>>> building,
>>>>>>>           however the below output should detail the problem.
>>>>>>>
>>>>>>>           Using the official Debian image.
>>>>>>>           Linux rbone 3.8.13-bone43 #1 SMP Wed Mar 26 14:21:39
>UTC
>>>>> 2014
>>>>>>>           armv7l GNU/Linux
>>>>>>>
>>>>>>>           Distributor ID: Debian
>>>>>>>           Description:    Debian GNU/Linux 7.4 (wheezy)
>>>>>>>           Release:        7.4
>>>>>>>           Codename:       wheezy
>>>>>>>
>>>>>>>           root@rbone:~# echo cape-bone-iio >
>>>>>>>           /sys/devices/bone_capemgr.9/slots
>>>>>>>
>>>>>>>           This is the normal and expected behavior.
>>>>>>>
>>>>>>>           1.8v applied to AIN4
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           1798
>>>>>>>
>>>>>>>           0v applied to AIN4
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           0
>>>>>>>
>>>>>>>           1.8v applied to AIN4
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           1798
>>>>>>>
>>>>>>>           0v applied to AIN4
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           0
>>>>>>>
>>>>>>>           So far working as intended....  Now reading from the
>>> other
>>>>> pins.
>>>>>>>
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# grep .
>AIN[0-3]
>>>>> AIN[5-7]
>>>>>>>           AIN0:1563
>>>>>>>           AIN1:1221
>>>>>>>           AIN2:1487
>>>>>>>           AIN3:789
>>>>>>>           AIN5:514
>>>>>>>           AIN6:743
>>>>>>>           AIN7:1698
>>>>>>>
>>>>>>>           Now applying 1.8v to AIN4
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           0
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           0
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           0
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           0
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           0
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           0
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           1798
>>>>>>>
>>>>>>>           Now applying 0v to AIN4
>>>>>>>
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           1460
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           1798
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           1798
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           1460
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           1460
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           1460
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           0
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>           And another example, showing relation to the number of
>>> pins
>>>>> in
>>>>>>>           use.
>>>>>>>
>>>>>>>           1.8v to AIN4
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           1460
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# grep .
>AIN[0-3]
>>>>>>>           AIN0:1697
>>>>>>>           AIN1:1298
>>>>>>>           AIN2:1524
>>>>>>>           AIN3:816
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           1798
>>>>>>>
>>>>>>>           0v to AIN4
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           1798
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           1460
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           1460
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           1460
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           0
>>>>>>>
>>>>>>>           1.8v to AIN4
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           0
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           0
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           0
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           0
>>>>>>>           root@rbone:/sys/devices/ocp.3/helper.12# cat AIN4
>>>>>>>           1798
>>>>>>>
>>>>>>>           --         Rob Mosher
>>>>>>>           Senior Network and Software Engineer
>>>>>>>           Hurricane Electric / AS6939
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>> --
>>>>> To unsubscribe from this list: send the line "unsubscribe
>linux-iio"
>>> in
>>>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>>
>>

-- 
Sent from my Android phone with K-9 Mail. Please excuse my brevity.
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux