Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#7252 closed defect (fixed)

lockup during boot after loading OmniVision ov7670 sensor driver

Reported by: erikg Owned by: erikg
Priority: blocker Milestone:
Component: kernel Version: olpc-3
Keywords: camera driver olpc3-17:- olpc3-19:- joyride-2081:+ Cc: corbet, dsd
Blocked By: Blocking:
Deployments affected: Action Needed: never set
Verified: no

Description

Occasionally (I had to boot ~five times to get it to reoccur) when booting olpc3-17, I catch the following error and the machine locks up with its camera led on:

[    2.295445] Linux video capture interface: v2.00
[    2.307292] Marvell M88ALP01 'CAFE' Camera Controller version 2
[    2.310716] PCI: Enabling device 0000:00:0c.2 (0000 -> 0002)
[    2.369965] i2c-adapter i2c-0: SMBus Quick command not supported, can't probe for chips
[    2.370307] olpc-dcon: No DCON found on SMBus
[    2.433960] OmniVision ov7670 sensor driver, at your service

... lockup. We are so served.

Attachments (4)

omnivision_crash.log (919 bytes) - added by erikg 6 years ago.
partial kernel boot log leading to crash
fail.log (6.8 KB) - added by erikg 6 years ago.
a log of what happens when boot fails
success.log (10.6 KB) - added by erikg 6 years ago.
a log of what happens on boot when the bug does not arise
0001-Revert-V4L-DVB-6027-Get-rid-of-an-ill-behaved-ms.patch (2.7 KB) - added by erikg 6 years ago.
patch to revert olpc-2.6 commit 6d77444aca298b43a880

Download all attachments as: .zip

Change History (15)

Changed 6 years ago by erikg

partial kernel boot log leading to crash

comment:1 Changed 6 years ago by cjb

  • Cc corbet added
  • Version olpc-3 deleted

Jon, any idea why ov7670 might be hanging at boot sometimes after a merge with 2.6.25?

We'll try and see if kgdb has anything to say about this tomorrow.

Changed 6 years ago by erikg

a log of what happens when boot fails

Changed 6 years ago by erikg

a log of what happens on boot when the bug does not arise

comment:2 Changed 6 years ago by dsd

  • Cc dsd added
  • Version set to olpc-3

comment:3 follow-up: Changed 6 years ago by erikg

I haven't seen this problem since upgrading to olpc3-19. I've rebooted about 15 times. Any ideas why it might have disappeared?

The only change which may have had an effect was that in an attempt to use kgdb I removed the serial console configuration stanza from the kernel's boot command line.

comment:4 in reply to: ↑ 3 Changed 6 years ago by erikg

Replying to erikg:

The only change which may have had an effect was that in an attempt to use kgdb I removed the serial console configuration stanza from the kernel's boot command line.

This is incorrect. I also changed the kernel. Will update shortly with the details after I check if reverting the kernel to the prior version reintroduces the problem.

comment:5 Changed 6 years ago by dsd

  • Keywords olpc3-17:- olpc3-19:? added

comment:6 Changed 6 years ago by dsd

  • Keywords olpc3-19:- added; olpc3-19:? removed

just reproduced this on olpc3-19

comment:7 Changed 6 years ago by erikg

Myself and dsd have traced it the lockup thus far:

in drivers/media/video/ov7670.c:
ov7670_attach
--> ov7670_detect
  --> ov7670_init
    --> ov7670_write_array

The hang occurs somewhere inside/below ov7670_write_array.

comment:8 Changed 6 years ago by erikg

Reverting http://dev.laptop.org/git?p=olpc-2.6;a=commit;h=6d77444aca298b43a88086be446f943cd0442ef7 appears to resolve the issue. It does so at a greatly increased startup cost for the ov7670 driver (~3s consumed), so we are seeking a better solution.

Changed 6 years ago by erikg

patch to revert olpc-2.6 commit 6d77444aca298b43a880

comment:9 Changed 6 years ago by dsd

The patch has never been shipped in an XO build, so hopefully reverting it should be no issue. But let's give Jon some time to dig into it first, because it is obviously desirable to include it if it can be fixed. (or maybe we can schedule it for post-8.2.0)

Once the patch has been reverted, the cafe_ccic/ov7760 code is very nearly returned to the state of the 2.6.22 update1 builds (only functional change: one mdelay-->msleep conversion)

comment:10 Changed 6 years ago by dsd

  • Action Needed set to never set
  • Keywords joyride-2081:+ added
  • Resolution set to fixed
  • Status changed from new to closed

fixed in joyride-2081

comment:11 Changed 6 years ago by gregorio

  • Milestone Never Assigned deleted

Milestone Never Assigned deleted

Note: See TracTickets for help on using tickets.