UCB1400 Touchscreen kernel crash at boot

Patrick kpa_info at yahoo.fr
Thu Nov 19 05:15:37 EST 2009


Hello,

I have migrated from 2.6.26 to 2.6.28 kernel on a ARM PXA320 platform. I have a touchscreen that use UCB1400.

On the 2.6.26 kernel the touchscreen was working well. On the 2.6.28 I have the following crash at boot:

mice: PS/2 mouse device common for all mice
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: Oops: 805 [#1] PREEMPT
Modules linked in:
CPU: 0    Not tainted  (2.6.28-recoms #9)
PC is at ucb1400_ts_probe+0x20/0x428
LR is at input_allocate_device+0x58/0x94
pc : [<c023d544>]    lr : [<c02322d0>]    psr: a0000013
sp : c7817d38  ip : c7817d20  fp : c7817d5c
r10: c041f100  r9 : 00000000  r8 : 00000001
r7 : 00000000  r6 : c040bc28  r5 : c0425220  r4 : c040bc30
r3 : c78aa7a8  r2 : c78aa7b0  r1 : c03d8180  r0 : c78aa000
Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 0400397f  Table: a0004018  DAC: 00000035
Process swapper (pid: 1, stack limit = 0xc7816270)
Stack: (0xc7817d38 to 0xc7818000)
7d20:                                                       c00e219c c00e1fcc
7d40: c040bc30 c0425220 c0425220 c0425220 c7817d6c c7817d60 c01c07dc c023d530
7d60: c7817d8c c7817d70 c01bf8a8 c01c07c8 c0061ec8 c040bc30 c0425220 c040bcdc
7d80: c7817dac c7817d90 c01bf9c8 c01bf7c0 c7817dac 00000000 c7817db0 c01bf95c
7da0: c7817dd4 c7817db0 c01bee48 c01bf968 c78034d8 c040bc78 00000000 c0425220
7dc0: c7a7b3e0 c001cd18 c7817de4 c7817dd8 c01bf6c8 c01bee08 c7817e14 c7817de8
7de0: c01bf2e4 c01bf6b4 c03a9518 c0425220 c0425220 c0023f04 00000000 c001cd18
7e00: 00000001 00000000 c7817e3c c7817e18 c01bfcac c01bf248 c042cb84 c0023f04
7e20: 00000000 c001cd18 00000001 00000000 c7817e4c c7817e40 c01c0b78 c01bfc20
7e40: c7817e5c c7817e50 c001cd2c c01c0b0c c7817fdc c7817e60 c002d300 c001cd24
7e60: 000000d0 c042ca08 00000000 c7812cc0 00000000 c7802160 c7817ee4 c7817e88
7e80: c0079548 c0079018 c7817edc 00000000 c7800de0 00000179 c7817eec 00000000
7ea0: c7800de0 0000017a c7817ed4 c7817eb8 c0098228 c0189b88 c78035a4 0000017a
7ec0: c78035a0 00000000 c7817f34 c7817ed8 c018050c c0098210 c7817f04 c7817f54
7ee0: 00000000 00000000 000000d0 c7811e30 00000000 c7816000 c7817f2c c7817f08
7f00: c0180768 c0040df0 c0435cb8 c7816000 c78378a0 c7836180 c0435cb8 00000000
7f20: 00000000 00000000 c7817f44 c7817f38 c0180548 c0180340 c7817f74 c7817f48
7f40: c00dac68 c0040df0 c7836180 c03ac908 c0410894 0000017a c78378a0 c7817f9e
7f60: 000000bf c0435cb8 c7817f94 c7817f78 c00dade8 c00daac8 c7817f00 c7836180
7f80: c00daee8 c0410894 c7817fc4 c7817f98 c0071b1c c00dad74 c01bddd8 39311530
7fa0: 00000031 00000000 000000c0 c04108d0 00000000 00000000 c7817fdc c00241c0
7fc0: c0023f04 00000000 00000000 00000000 c7817ff4 c7817fe0 c0008740 c002d2ac
7fe0: 00000000 00000000 00000000 c7817ff8 c004ad5c c00086dc 00000000 00000000
Backtrace:
[<c023d524>] (ucb1400_ts_probe+0x0/0x428) from [<c01c07dc>] (platform_drv_probe+0x20/0x24)
 r7:c0425220 r6:c0425220 r5:c0425220 r4:c040bc30
[<c01c07bc>] (platform_drv_probe+0x0/0x24) from [<c01bf8a8>] (driver_probe_device+0xf4/0x1a8)
[<c01bf7b4>] (driver_probe_device+0x0/0x1a8) from [<c01bf9c8>] (__driver_attach+0x6c/0x90)
 r6:c040bcdc r5:c0425220 r4:c040bc30
[<c01bf95c>] (__driver_attach+0x0/0x90) from [<c01bee48>] (bus_for_each_dev+0x4c/0x84)
 r6:c01bf95c r5:c7817db0 r4:00000000
[<c01bedfc>] (bus_for_each_dev+0x0/0x84) from [<c01bf6c8>] (driver_attach+0x20/0x28)
 r7:c001cd18 r6:c7a7b3e0 r5:c0425220 r4:00000000
[<c01bf6a8>] (driver_attach+0x0/0x28) from [<c01bf2e4>] (bus_add_driver+0xa8/0x218)
[<c01bf23c>] (bus_add_driver+0x0/0x218) from [<c01bfcac>] (driver_register+0x98/0x11c)
[<c01bfc14>] (driver_register+0x0/0x11c) from [<c01c0b78>] (platform_driver_register+0x78/0x94)
[<c01c0b00>] (platform_driver_register+0x0/0x94) from [<c001cd2c>] (ucb1400_ts_init+0x14/0x1c)
[<c001cd18>] (ucb1400_ts_init+0x0/0x1c) from [<c002d300>] (do_one_initcall+0x60/0x194)
[<c002d2a0>] (do_one_initcall+0x0/0x194) from [<c0008740>] (kernel_init+0x70/0xdc)
 r8:00000000 r7:00000000 r6:00000000 r5:c0023f04 r4:c00241c0
[<c00086d0>] (kernel_init+0x0/0xdc) from [<c004ad5c>] (do_exit+0x0/0x7a8)
 r5:00000000 r4:00000000
Code: e59070cc e1a06000 ebffd34d e3500000 (e5870000)
---[ end trace c943999c78a8047e ]---
Kernel panic - not syncing: Attempted to kill init!



I have made a quick investigation and I have found that dev->dev.platform_data in ucb1400_ts_probe function is NULL. So I think that somewhere a memory alloc is missing. Should I allocate memory for platform_data in the ucb1400_ts_probe ?

Do you have any idea where is the bug ? Any idea is welcome !

Thanks in advance

Patrick


      



More information about the linux-arm mailing list