UCB1400 Touchscreen kernel crash at boot
Patrick <[email protected]>
| Newsgroups | gmane.linux.ports.arm.general |
|---|---|
| Message-ID | <[email protected]> |
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