Ticket #1277 (closed defect: fixed)
no data from 2nd accellerometer
| Reported by: | mickey@… | Owned by: | openmoko-kernel@… |
|---|---|---|---|
| Priority: | high | Milestone: | |
| Component: | Core System | Version: | unspecified |
| Severity: | normal | Keywords: | |
| Cc: | buglog@… | Blocked By: | |
| Blocking: | Estimated Completion (week): | ||
| HasPatchForReview: | PatchReviewResult: | ||
| Reproducible: |
Description
Trying to get data from the 2nd accellerometer. /dev/input/event3 is spitting
out data, /dev/input/event4 is quiet. cat /proc/interrupts show that only one
accellerometer is generating irqs, the 2nd one seems stuck at a (random, but
fixed) number < 600.
Change History
comment:2 Changed 5 years ago by stefan@…
From mickeyl:
neod opens all device nodes by default, so we should see interrupts from both
accelerometers.
comment:3 Changed 5 years ago by andy@…
Hum, something's up somewhere because lsof -n shows neod has them open alright
on a device here, but the interrupt count does not increase :-(
root@fic-gta02:~# lsof -n | grep event | grep neod
neod 1432 root 5r CHR 13,64
1455 /dev/input/event0
neod 1432 root 6r CHR 13,65
1764 /dev/input/event1
neod 1432 root 7r CHR 13,66
1797 /dev/input/event2
neod 1432 root 8r CHR 13,67
1818 /dev/input/event3
neod 1432 root 9r CHR 13,68
1597 /dev/input/event4
root@fic-gta02:~# cat /proc/interrupts | grep lis
16: 2 s3c-ext0 lis302dl
60: 1049047 s3c-ext lis302dl
root@fic-gta02:~# cat /proc/interrupts | grep lis
16: 2 s3c-ext0 lis302dl
60: 1049047 s3c-ext lis302dl
comment:4 Changed 5 years ago by tony@…
Maybe it hardware defects, willie found that 2008/1 DM1 test pass criteria was
not complete, some defect accelerometer might pass DM1 test. And that time we
don't have Accerelometer driver in kernel space.
comment:5 Changed 5 years ago by andy@…
So far I wasn't able to reproduce this running
cat /dev/input/event<2,3> > /dev/null
in two ssh shells and watching /proc/interrupts, even up past 500K interrupts.
Hexdumping them at the same time didn't disrupt the steady increase in
interrupt counts on both either.
This is running with init=/bin/sh so neod does not run.
I looked at neod sources and the opening of the event things doesn't look
insane, and I confirmed before it does hold them open.
Can you confirm that if you stop neod and do the same say
cat /dev/input/event2 > /dev/null &
that you still see problems via /proc/interrupts? Or does it seem to need
neod to make the symptom?

Hi Mickey -
I believe you want event2 and event3, not 4:
# cat /proc/bus/input/devices
I: Bus=0019 Vendor=0001 Product=0001 Version=0100
N: Name="Neo1973 Buttons"
P: Phys=neo1973kbd/input0
S: Sysfs=/devices/platform/neo1973-button.0/input/input0
U: Uniq=
H: Handlers=kbd event0
B: EV=23
B: KEY=200 0 800000 0 0 0
B: SW=4
I: Bus=0013 Vendor=dead Product=beef Version=0101
N: Name="s3c2410 TouchScreen?"
P: Phys=
S: Sysfs=/devices/virtual/input/input1
U: Uniq=
H: Handlers=event1
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=1000003
I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="lis302-1 (top)"
P: Phys=
S: Sysfs=/devices/virtual/input/input2
U: Uniq=
H: Handlers=event2
B: EV=5
B: REL=7
I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="lis302-2 (bottom)"
P: Phys=
S: Sysfs=/devices/virtual/input/input3
U: Uniq=
H: Handlers=event3
B: EV=5
B: REL=7
I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="GTA02 PMU events"
P: Phys=FIXME
S: Sysfs=/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/input/input4
U: Uniq=
H: Handlers=kbd event4
B: EV=400003
B: KEY=10 0 0 0 1000 0 0 0 100000 0 0 0
The accelerometers are done so they only create interrupts when you have
their /dev/input node open, so it makes sense one of their interrupt counts
does not go up if you had the wrong node open.