Re: I2C Touchscreen OMAP OOPS

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

 



----- Original Message ----- From: "David Lynch Jr." <dhlii@xxxxxxxxxx>
To: "Linux OMAP Mailing List" <linux-omap@xxxxxxxxxxxxxxx>
Cc: <linux-input@xxxxxxxxxxxxxxx>; <linux-i2c@xxxxxxxxxxxxxxx>
Sent: Tuesday, January 04, 2011 12:26 PM
Subject: I2C Touchscreen OMAP OOPS


I am trying to get a vendor provided I2C touchscreen driver working with
android froyo with a 2.6.32 linux kernel for a client. I have fixed alot
of things and I am down to one serious problem remaining.

The driver is oops'ing reading the touchscreen data in omap_i2c_xfer.
I tried to figure out what was going on by printk tracing omap_i2c_xfer,
but the problem goes away - mostly with a few judiciously inserted
printk's

I tried backporting the 2.6.37 i2c-omap code, but that does nto change
behavior.

What is "scheduling while atomic" ? and what am I trying to look for ?
Is the root of this problem in the touchscreen driver ? omap_i2c or
should I be looking elsewhere ?

Looks like your touchscreen driver is trying to do i2c transfer in IRQ context,
hence the error.



root@beagleboard:~# evtest /dev/input/event1
Input driver version is 1.0.0evdev.c(EVIOCGBIT): Suspicious buffer size
511, limiting output to 64 bytes. See
http://userweb.kernel.org/~dtor/eviocgbit-bug.html

Input device ID: bus 0x18 vendor 0xdead product 0x534 version 0x1
Input device name: "sitronix_ts"
Supported events:
 Event type 0 (Sync)
 Event type 1 (Key)
   Event code 330 (Touch)
 Event type 3 (Absolute)
   Event code 0 (X)
     Value      0
     Min        0
     Max      480
   Event code 1 (Y)
     Value      0
     Min        0
     Max      256
Testing ... (interrupt to exit)
BUG: scheduling while atomic: swapper/0/0x00010003
Unable to handle kernel NULL pointer dereference at virtual address
00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: Oops: 80000007 [#1] PREEMPT
last sysfs
file: /sys/devices/platform/mmci-omap-hs.0/mmc_host/mmc0/mmc0:aaaa/block/mmcblk0/size
Modules linked in:
CPU: 0    Not tainted  (2.6.32 #98)
PC is at 0x0
LR is at enqueue_task+0x28/0x34
pc : [<00000000>]    lr : [<c005aaac>]    psr: 20000193
sp : c04dbc30  ip : 00000016  fp : c04dbc44
r10: 00000000  r9 : 00000000  r8 : 00000002
r7 : 00000000  r6 : 00000000  r5 : c04e8cc8  r4 : c04dcfa8
r3 : 00000000  r2 : 00000001  r1 : c04dcfa8  r0 : c04e8cc8
Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c5387d  Table: 8c8c8019  DAC: 00000017

LR: 0xc005aa2c:
aa2c  e8bd8800 e92d4800 e59100c4 e28db004 e3500002 03a0000c 13a00000
e8bd8800
aa4c  e92d48f0 e1c040d0 e1a06002 e1a07003 e0566004 e0c77005 e28db014
e1a021a6
aa6c  e1a031c7 e1822e87 e0944002 e0a55003 e1c040f0 e8bd88f0 e3520000
e92d48d8
aa8c  e1a04001 e28db014 11c165d8 11c168f8 e5943028 e1a01004 e5933004
e12fff33
aaac  e3a03001 e584304c e8bd88d8 e92d4b78 e2525000 e28db01c e1a06000
e1a04001
aacc  0a000010 e1c127d0 e1921003 0a000008 e1c485d8 e2840078 e0582002
e0c93003
aaec  ebffffd6 e3a02000 e3a03000 e1c427f0 ea000004 e59f3030 e2840090
e5932000
ab0c  e3a03000 ebffffcd e5943028 e1a00006 e1a01004 e1a02005 e5933008
e12fff33

SP: 0xc04dbbb0:
bbb0  0000000f 00000010 00000000 30303033 00000031 00000000 00000000
00000000
bbd0  00000000 ffffffff c04dbc1c 00000000 00000000 c0034bf0 c04e8cc8
c04dcfa8
bbf0  00000001 00000000 c04dcfa8 c04e8cc8 00000000 00000000 00000002
00000000
bc10  00000000 c04dbc44 00000016 c04dbc30 c005aaac 00000000 20000193
ffffffff
bc30  ffffffff c04e8cc8 00000000 c04da000 c04dbc54 c005ab70 00000000
c04dcfa8
bc50  c04dbc7c c005e9b8 c044d812 80000193 c05257f0 cf91e010 00000001
cf91e01c
bc70  00000001 00000003 c04dbca4 c005aef0 00000000 00000113 00001004
00000000
bc90  00000039 00000001 0000601f c04e92d4 c04dbcbc c005cf14 00000000
35303135

FP: 0xc04dbbc4:
bbc4  00000000 00000000 00000000 00000000 ffffffff c04dbc1c 00000000
00000000
bbe4  c0034bf0 c04e8cc8 c04dcfa8 00000001 00000000 c04dcfa8 c04e8cc8
00000000
bc04  00000000 00000002 00000000 00000000 c04dbc44 00000016 c04dbc30
c005aaac
bc24  00000000 20000193 ffffffff ffffffff c04e8cc8 00000000 c04da000
c04dbc54
bc44  c005ab70 00000000 c04dcfa8 c04dbc7c c005e9b8 c044d812 80000193
c05257f0
bc64  cf91e010 00000001 cf91e01c 00000001 00000003 c04dbca4 c005aef0
00000000
bc84  00000113 00001004 00000000 00000039 00000001 0000601f c04e92d4
c04dbcbc
bca4  c005cf14 00000000 35303135 63303536 cf91e000 c04dbdec c024626c
cf85bb00

R0: 0xc04e8c48:
8c48  00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
8c68  00000000 00000000 00000000 00000000 000f4240 000f4240 000f4240
004c4b40
8c88  004c4b40 000f4240 0003d090 0003d090 00000001 c04e8c9c c04e8c9c
000f4240
8ca8  000e7ef0 00000001 c04e8cb0 c04e8cb0 cc901b18 c0525278 00000004
00000001
8cc8  00000000 00000000 00000070 00000176 0000018b 0000013b 00000000
00000000
8ce8  00000000 0000268a 00009fd5 00000000 00000000 00000000 00000000
00000000
8d08  00000000 00000000 cd9c987c 00000008 00000000 00000000 c04e8d20
c04e8d20
8d28  00000000 00000000 00000000 00000000 00000000 c04e8cc8 00000000
00000000

R1: 0xc04dcf28:
cf28  c01bf6e4 c037cf08 c01bf70c c037cf10 c01bf748 c037cf18 c01da958
c037cf20
cf48  c01da968 c037cf28 c02a4854 c037cf30 c02a4924 c037cf38 c02a4a84
c037cf40
cf68  c02a4bdc c037cf48 c02a4d00 c037cf50 c02a4dd0 c037cf58 c02a4f40
c037cf60
cf88  c02a50ac c037cf68 c02c74b0 c037cf70 c02c7a84 c037cf78 c02c7aa0
c037cf80
cfa8  00000002 c04da000 00000002 00200000 00000000 ffffffff 00000078
00000078
cfc8  00000078 00000000 c037e5f0 00000000 00000400 00400000 00000000
00000000
cfe8  00000000 c04dcfec c04dcfec 00000000 00000000 00000000 00000000
00000000
d008  00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000

R4: 0xc04dcf28:
cf28  c01bf6e4 c037cf08 c01bf70c c037cf10 c01bf748 c037cf18 c01da958
c037cf20
cf48  c01da968 c037cf28 c02a4854 c037cf30 c02a4924 c037cf38 c02a4a84
c037cf40
cf68  c02a4bdc c037cf48 c02a4d00 c037cf50 c02a4dd0 c037cf58 c02a4f40
c037cf60
cf88  c02a50ac c037cf68 c02c74b0 c037cf70 c02c7a84 c037cf78 c02c7aa0
c037cf80
cfa8  00000002 c04da000 00000002 00200000 00000000 ffffffff 00000078
00000078
cfc8  00000078 00000000 c037e5f0 00000000 00000400 00400000 00000000
00000000
cfe8  00000000 c04dcfec c04dcfec 00000000 00000000 00000000 00000000
00000000
d008  00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000

R5: 0xc04e8c48:
8c48  00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
8c68  00000000 00000000 00000000 00000000 000f4240 000f4240 000f4240
004c4b40
8c88  004c4b40 000f4240 0003d090 0003d090 00000001 c04e8c9c c04e8c9c
000f4240
8ca8  000e7ef0 00000001 c04e8cb0 c04e8cb0 cc901b18 c0525278 00000004
00000001
8cc8  00000000 00000000 00000070 00000176 0000018b 0000013b 00000000
00000000
8ce8  00000000 0000268a 00009fd5 00000000 00000000 00000000 00000000
00000000
8d08  00000000 00000000 cd9c987c 00000008 00000000 00000000 c04e8d20
c04e8d20
8d28  00000000 00000000 00000000 00000000 00000000 c04e8cc8 00000000
00000000
Process swapper (pid: 0, stack limit = 0xc04da2e8)
Stack: (0xc04dbc30 to 0xc04dc000)
bc20:                                     ffffffff c04e8cc8 00000000
c04da000
bc40: c04dbc54 c005ab70 00000000 c04dcfa8 c04dbc7c c005e9b8 c044d812
80000193
bc60: c05257f0 cf91e010 00000001 cf91e01c 00000001 00000003 c04dbca4
c005aef0
bc80: 00000000 00000113 00001004 00000000 00000039 00000001 0000601f
c04e92d4
bca0: c04dbcbc c005cf14 00000000 35303135 63303536 cf91e000 c04dbdec
c024626c
bcc0: cf85bb00 00000000 00000000 00000039 00010004 c04da000 c04e92d4
c008e514
bce0: 00000000 c04ec2f0 00000039 cf85bb00 00010005 c009039c 00000039
c04dbf88
bd00: 00000033 c003406c 20000113 ffffffff fa200000 c0034ac4 c04e930c
c04e9310
bd20: 00000001 c04e9330 00000000 00000039 00000033 00000000 00000003
60000113
bd40: c04e92d4 c04dbdec 00003bc1 c04dbd60 c0062ae4 c0062ae8 20000113
ffffffff
bd60: ffffffff c04da000 00000000 c00985c0 00000041 c0525808 c07a2000
c04da000
bd80: 00000001 ffffffff c04e91a0 c04e8cf8 00000001 c04e91a0 00000001
c04dbf88
bda0: c04da000 c04dd140 c04dd13c c04dbe60 00000000 c04dcfa8 c04dbdec
c037a1dc
bdc0: c044d7e4 c04dbdd4 00000000 c005ba0c c044d7e4 c04dd1a0 00000000
00010003
bde0: c04dcfa8 c04da000 c04dbe1c c037a364 00000000 c04dd020 00010002
ffffb8ed
be00: c0535e40 ffffb86d 00000002 c04dbe60 00000000 c04dcfa8 c04dbe84
c037ada4
be20: cf91e078 c05365b4 c05365b4 ffffb8ed c006b738 c04dcfa8 c0535e40
a0000113
be40: c04da000 00000080 cf91e018 c037aa84 cf91e000 00000001 c04dcfa8
c005ea84
be60: cf91e01c cf91e01c cf91e000 cf91e000 00008601 c04dbedc 00000000
00000002
be80: cf91e078 c0246040 cf91e048 c04dbedc 00000002 cf91e048 00000000
ffffb86d
bea0: c04dbedc 00000002 00000000 00000000 fb058018 c024335c cf884dc0
cf99bdc0
bec0: c04dbef4 00000000 cf99bde8 00000000 00000143 c023ad18 c00412a4
00000038
bee0: c04d0001 c04dbeff 00010038 c008000a c04dbef4 0000009c 32d6627d
1000009c
bf00: 22757cc8 cf9a1ac0 00000000 00000000 00000143 00000000 00000000
00000143
bf20: fb058018 c008e514 00000000 c04f1610 00000143 cf9a1ac0 c04ebbc0
c009039c
bf40: c04e8088 00000001 00000022 c004ca3c c004c944 00000022 00000000
c002b014
bf60: 00000002 00000001 c04da000 0000001f 00000000 c003406c 60000013
ffffffff
bf80: fa200000 c0034ac4 00000000 00000000 c04eacf8 c0046a88 c04da000
c002b018
bfa0: c002b014 c04ddc60 80028d24 411fc083 0000001f 00000000 c04dbf38
c04dbfd0
bfc0: c00462e8 c0036434 60000013 ffffffff c0538b80 c0008918 c0008480
00000000
bfe0: 00000000 c002b018 00000000 10c53c7d c0523fd8 80008034 00000000
00000000
Code: bad PC value
---[ end trace 5f1d6aa71e65dba4 ]---
Kernel panic - not syncing: Fatal exception in interrupt
[<c003b550>] (unwind_backtrace+0x0/0xd0) from [<c037a100>] (panic
+0x54/0x118)
[<c037a100>] (panic+0x54/0x118) from [<c0039380>] (die+0x278/0x2b4)
[<c0039380>] (die+0x278/0x2b4) from [<c003c398>] (__do_kernel_fault
+0x64/0x74)
[<c003c398>] (__do_kernel_fault+0x64/0x74) from [<c003c56c>]
(do_page_fault+0x1c4/0x1d8)
[<c003c56c>] (do_page_fault+0x1c4/0x1d8) from [<c003421c>]
(do_PrefetchAbort+0x34/0x98)
[<c003421c>] (do_PrefetchAbort+0x34/0x98) from [<c0034bf0>] (__pabt_svc
+0x50/0xa0)
Exception stack(0xc04dbbe8 to 0xc04dbc30)
bbe0:                   c04e8cc8 c04dcfa8 00000001 00000000 c04dcfa8
c04e8cc8
bc00: 00000000 00000000 00000002 00000000 00000000 c04dbc44 00000016
c04dbc30
bc20: c005aaac 00000000 20000193 ffffffff
[<c0034bf0>] (__pabt_svc+0x50/0xa0) from [<c005aaac>] (enqueue_task
+0x28/0x34)
[<c005aaac>] (enqueue_task+0x28/0x34) from [<c005ab70>] (activate_task
+0x34/0x44)
[<c005ab70>] (activate_task+0x34/0x44) from [<c005e9b8>] (try_to_wake_up
+0x7c/0x148)
[<c005e9b8>] (try_to_wake_up+0x7c/0x148) from [<c005aef0>]
(__wake_up_common+0x44/0x78)
[<c005aef0>] (__wake_up_common+0x44/0x78) from [<c005cf14>] (complete
+0x4c/0x88)
[<c005cf14>] (complete+0x4c/0x88) from [<c024626c>] (omap_i2c_isr
+0x118/0x4b0)
[<c024626c>] (omap_i2c_isr+0x118/0x4b0) from [<c008e514>]
(handle_IRQ_event+0x34/0xf0)
[<c008e514>] (handle_IRQ_event+0x34/0xf0) from [<c009039c>]
(handle_level_irq+0xcc/0x170)
[<c009039c>] (handle_level_irq+0xcc/0x170) from [<c003406c>] (asm_do_IRQ
+0x6c/0x8c)
[<c003406c>] (asm_do_IRQ+0x6c/0x8c) from [<c0034ac4>] (__irq_svc
+0x44/0xa8)
Exception stack(0xc04dbd18 to 0xc04dbd60)
bd00:                                                       c04e930c
c04e9310
bd20: 00000001 c04e9330 00000000 00000039 00000033 00000000 00000003
60000113
bd40: c04e92d4 c04dbdec 00003bc1 c04dbd60 c0062ae4 c0062ae8 20000113
ffffffff
[<c0034ac4>] (__irq_svc+0x44/0xa8) from [<c0062ae8>] (vprintk
+0x328/0x388)
[<c0062ae8>] (vprintk+0x328/0x388) from [<c037a1dc>] (printk+0x18/0x24)
[<c037a1dc>] (printk+0x18/0x24) from [<c005ba0c>] (__schedule_bug
+0x34/0x60)
[<c005ba0c>] (__schedule_bug+0x34/0x60) from [<c037a364>] (schedule
+0x78/0x344)
[<c037a364>] (schedule+0x78/0x344) from [<c037ada4>] (schedule_timeout
+0x1c8/0x200)
[<c037ada4>] (schedule_timeout+0x1c8/0x200) from [<c037aa84>]
(wait_for_common+0xe8/0x1a8)
[<c037aa84>] (wait_for_common+0xe8/0x1a8) from [<c0246040>]
(omap_i2c_xfer+0x218/0x32c)
[<c0246040>] (omap_i2c_xfer+0x218/0x32c) from [<c024335c>] (i2c_transfer
+0xa8/0xf4)
[<c024335c>] (i2c_transfer+0xa8/0xf4) from [<c023ad18>] (sitronix_ts_isr
+0x74/0x1ac)
[<c023ad18>] (sitronix_ts_isr+0x74/0x1ac) from [<c008e514>]
(handle_IRQ_event+0x34/0xf0)
[<c008e514>] (handle_IRQ_event+0x34/0xf0) from [<c009039c>]
(handle_level_irq+0xcc/0x170)
[<c009039c>] (handle_level_irq+0xcc/0x170) from [<c004ca3c>]
(gpio_irq_handler+0xf8/0x128)
[<c004ca3c>] (gpio_irq_handler+0xf8/0x128) from [<c003406c>] (asm_do_IRQ
+0x6c/0x8c)
[<c003406c>] (asm_do_IRQ+0x6c/0x8c) from [<c0034ac4>] (__irq_svc
+0x44/0xa8)
Exception stack(0xc04dbf88 to 0xc04dbfd0)
bf80:                   00000000 00000000 c04eacf8 c0046a88 c04da000
c002b018
bfa0: c002b014 c04ddc60 80028d24 411fc083 0000001f 00000000 c04dbf38
c04dbfd0
bfc0: c00462e8 c0036434 60000013 ffffffff
[<c0034ac4>] (__irq_svc+0x44/0xa8) from [<c0036434>] (cpu_idle
+0x58/0xc4)
[<c0036434>] (cpu_idle+0x58/0xc4) from [<c0008918>] (start_kernel
+0x25c/0x2bc)
[<c0008918>] (start_kernel+0x25c/0x2bc) from [<80008034>] (0x80008034)
Rebooting in 10 seconds..

--
Dave Lynch                                                  DLA Systems
Software Development:                                    Embedded Linux
717.587.7774           dhlii@xxxxxxxxxx    http://www.dlasys.net
Over 25 years' experience in platforms, languages, and technologies too
numerous to list.

"Any intelligent fool can make things bigger and more complex... It
takes a touch of genius - and a lot of courage to move in the opposite
direction."
Albert Einstein



--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux