Debugging LCD and encountering NULL pointer in omap_vout_probe

Any ideas on debugging this crash in omap_vout_probe? This is a 3.0.4 kernel with PM patches applied from Kevin’s tree.

Built using: https://gitorious.org/beagleboard-validation/linux/commits/ulcd-20110907

Texas Instruments X-Loader 1.5.1 (Aug 26 2011 - 21:46:42)
Beagle xM
Reading boot sector
Loading u-boot.bin from mmc

U-Boot 2011.06-00573-gd9205c3 (Sep 06 2011 - 18:57:15)

OMAP3630/3730-GP ES2.1, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz
OMAP3 Beagle board + LPDDR/NAND
I2C: ready
DRAM: 512 MiB
NAND: 0 MiB
MMC: OMAP SD/MMC: 0
*** Warning - readenv() failed, using default environment

In: serial
Out: serial
Err: serial
Beagle xM Rev C
No EEPROM on expansion board
Die ID #497c00029ff80000015f26ad0f01a02e
Net: Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot: 0
OMAP3 beagleboard.org # version

U-Boot 2011.06-00573-gd9205c3 (Sep 06 2011 - 18:57:15)
arm-angstrom-linux-gnueabi-gcc (GCC) 4.5.4 20110722 (prerelease)
GNU ld (GNU Binutils) 2.20.1.20100303
OMAP3 beagleboard.org # boot
The user button is currently NOT pressed.
SD/MMC found on device 0
reading uEnv.txt

606 bytes read
Loaded environment from uEnv.txt
Importing environment from mmc …
Running uenvcmd …
Setting bus to 1
Setting bus to 0
Loading file “/boot/uImage” from mmc device 0:2 (xxa2)
3364936 bytes read
Booting from mmc …

Booting kernel from Legacy Image at 80200000 …

Image Name: Linux-3.0.4+
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3364872 Bytes = 3.2 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum … OK
Loading Kernel Image … OK
OK

Starting kernel …

Uncompressing Linux… done, booting the kernel.
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 3.0.4+ (jkridner@D620) (gcc version 4.5.4 20110722 (prerelease) (GCC) ) #2 Tue Sep 6 19:27:55 EDT 2011
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f
[ 0.000000] CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine: OMAP3 Beagle Board
[ 0.000000] Beagle expansionboard: none
[ 0.000000] Reserving 16777216 bytes SDRAM for VRAM
[ 0.000000] Memory policy: ECC disabled, Data cache writeback
[ 0.000000] OMAP3630 ES1.2 (l2cache iva sgx neon isp 192mhz_clk )
[ 0.000000] SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x10000
[ 0.000000] Clocking rate (Crystal/Core/MPU): 26.0/332/600 MHz
[ 0.000000] Reprogramming SDRC clock to 332000000 Hz
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 118528
[ 0.000000] Kernel command line: console=tty0 console=ttyO2,115200n8 mem=99M@0x80000000 mem=384M@0x88000000 mpurate=auto buddy=none camera=none vram=16M omapfb.mode=dvi:800x480MR-24@60 omapfb.vram=0:8M,1:4M,2:4M omapfb.debug=y omapfbt
[ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] allocated 2097152 bytes of page_cgroup
[ 0.000000] please try ‘cgroup_disable=memory’ option if you don’t want memory cgroups
[ 0.000000] Memory: 99MB 368MB = 467MB total
[ 0.000000] Memory: 464924k/464924k available, 29668k reserved, 0K highmem
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] DMA : 0xffc00000 - 0xffe00000 ( 2 MB)
[ 0.000000] vmalloc : 0xe0800000 - 0xf8000000 ( 376 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)
[ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)
[ 0.000000] .init : 0xc0008000 - 0xc003d000 ( 212 kB)
[ 0.000000] .text : 0xc003d000 - 0xc063d130 (6145 kB)
[ 0.000000] .data : 0xc063e000 - 0xc0689600 ( 302 kB)
[ 0.000000] .bss : 0xc0689624 - 0xc06c2af0 ( 230 kB)
[ 0.000000] NR_IRQS:410
[ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts
[ 0.000000] Total of 96 interrupts on 1 active controller
[ 0.000000] OMAP clockevent source: GPTIMER1 at 32768 Hz
[ 0.000000] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 131071999ms
[ 0.000000] Console: colour dummy device 80x30
[ 0.000000] console [tty0] enabled
[ 0.000701] Calibrating delay loop… 597.64 BogoMIPS (lpj=2334720)
[ 0.039154] pid_max: default: 32768 minimum: 301
[ 0.039337] Mount-cache hash table entries: 512
[ 0.039703] Initializing cgroup subsys cpuacct
[ 0.039733] Initializing cgroup subsys memory
[ 0.039794] Initializing cgroup subsys devices
[ 0.039825] Initializing cgroup subsys freezer
[ 0.039855] Initializing cgroup subsys blkio
[ 0.039886] Initializing cgroup subsys perf_event
[ 0.039978] CPU: Testing write buffer coherency: ok
[ 0.040740] devtmpfs: initialized
[ 0.042114] omap_hwmod: gpt12_fck: missing clockdomain for gpt12_fck.
[ 0.044250] print_constraints: dummy:
[ 0.044494] NET: Registered protocol family 16
[ 0.044677] GPMC revision 5.0
[ 0.045989] OMAP GPIO hardware version 2.5
[ 0.046173] OMAP GPIO hardware version 2.5
[ 0.046386] OMAP GPIO hardware version 2.5
[ 0.046569] OMAP GPIO hardware version 2.5
[ 0.046752] OMAP GPIO hardware version 2.5
[ 0.047058] OMAP GPIO hardware version 2.5
[ 0.047546] omap_mux_init: Add partition: #1: core, flags: 0
[ 0.048767] OMAP3 Beagle Rev: xM C
[ 0.053070] Found NAND on CS0
[ 0.053100] Registering NAND on CS0
[ 0.053436] Unable to get DVI reset GPIO
[ 0.053497] hw-breakpoint: debug architecture 0x4 unsupported.
[ 0.055541] omap_device: omap-mcbsp.2: alias fck already exists
[ 0.055725] omap_device: omap-mcbsp.3: alias fck already exists
[ 0.056671] OMAP DMA hardware revision 5.0
[ 0.065063] bio: create slab at 0
[ 0.066162] SCSI subsystem initialized
[ 0.067321] usbcore: registered new interface driver usbfs
[ 0.067474] usbcore: registered new interface driver hub
[ 0.067657] usbcore: registered new device driver usb
[ 0.068359] omap_i2c omap_i2c.1: bus 1 rev4.0 at 2600 kHz
[ 0.070953] twl4030: PIH (irq 7) chaining IRQs 368…375
[ 0.071014] twl4030: power (irq 373) chaining IRQs 376…383
[ 0.071472] twl4030: gpio (irq 368) chaining IRQs 384…401
[ 0.074554] print_constraints: VUSB1V5: 1500 mV normal standby
[ 0.074981] print_constraints: VUSB1V8: 1800 mV normal standby
[ 0.075378] print_constraints: VUSB3V1: 3100 mV normal standby
[ 0.077117] twl4030_usb twl4030_usb: Initialized TWL4030 USB module
[ 0.077789] print_constraints: VMMC1: 1850 <–> 3150 mV at 3000 mV normal standby
[ 0.078277] print_constraints: VDAC: 1800 mV normal standby
[ 0.078704] print_constraints: VDVI: 1800 mV normal standby
[ 0.079193] print_constraints: VSIM: 1800 <–> 3000 mV at 1800 mV normal standby
[ 0.093872] omap_i2c omap_i2c.3: bus 3 rev4.0 at 100 kHz
[ 0.094573] Advanced Linux Sound Architecture Driver Version 1.0.24.
[ 0.095214] Bluetooth: Core ver 2.16
[ 0.095275] NET: Registered protocol family 31
[ 0.095306] Bluetooth: HCI device and connection manager initialized
[ 0.095336] Bluetooth: HCI socket layer initialized
[ 0.095367] Bluetooth: L2CAP socket layer initialized
[ 0.095550] Bluetooth: SCO socket layer initialized
[ 0.095825] Switching to clocksource 32k_counter
[ 0.101837] Switched to NOHz mode on CPU #0
[ 0.106628] musb-hdrc: version 6.0, musb-dma, otg (peripheral+host)
[ 0.109710] musb-hdrc musb-hdrc: USB OTG mode controller at fa0ab000 using DMA, IRQ 92
[ 0.110321] NET: Registered protocol family 2
[ 0.110534] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.110931] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[ 0.111297] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.111511] TCP: Hash tables configured (established 16384 bind 16384)
[ 0.111541] TCP reno registered
[ 0.111572] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.111663] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.112060] NET: Registered protocol family 1
[ 0.112884] RPC: Registered named UNIX socket transport module.
[ 0.112945] RPC: Registered udp transport module.
[ 0.112976] RPC: Registered tcp transport module.
[ 0.112976] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.114135] omap-iommu omap-iommu.0: isp registered
[ 0.127838] VFS: Disk quotas dquot_6.5.2
[ 0.127929] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.128509] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.128875] nfs4filelayout_init: NFSv4 File Layout Driver Registering…
[ 0.128906] JFFS2 version 2.2. (NAND) (SUMMARY) � 2001-2006 Red Hat, Inc.
[ 0.129577] msgmni has been set to 908
[ 0.131011] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[ 0.131195] io scheduler noop registered
[ 0.131225] io scheduler deadline registered
[ 0.131286] io scheduler cfq registered (default)
[ 0.189788] OMAP DSS rev 2.0
[ 0.191925] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 0.193145] omap_uart.0: ttyO0 at MMIO 0x4806a000 (irq = 72) is a OMAP UART0
[ 0.193450] omap_uart.1: ttyO1 at MMIO 0x4806c000 (irq = 73) is a OMAP UART1
[ 0.193725] omap_uart.2: ttyO2 at MMIO 0x49020000 (irq = 74) is a OMAP UART2
[ 0.941345] console [ttyO2] enabled
[ 0.945312] omap_uart.3: ttyO3 at MMIO 0x49042000 (irq = 80) is a OMAP UART3
[ 0.960327] brd: module loaded
[ 0.967254] loop: module loaded
[ 0.971984] omap2-nand driver initializing
[ 0.976715] No NAND device found.
[ 0.980499] No NAND device found.
[ 0.984954] usbcore: registered new interface driver catc
[ 0.990692] catc: v2.8:CATC EL1210A NetMate USB Ethernet driver
[ 0.997009] usbcore: registered new interface driver kaweth
[ 1.002929] pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver
[ 1.011077] usbcore: registered new interface driver pegasus
[ 1.017028] rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver
[ 1.024383] usbcore: registered new interface driver rtl8150
[ 1.030426] usbcore: registered new interface driver asix
[ 1.036193] usbcore: registered new interface driver cdc_ether
[ 1.042419] usbcore: registered new interface driver dm9601
[ 1.048370] usbcore: registered new interface driver smsc95xx
[ 1.054504] usbcore: registered new interface driver gl620a
[ 1.060455] usbcore: registered new interface driver net1080
[ 1.066497] usbcore: registered new interface driver plusb
[ 1.072326] usbcore: registered new interface driver rndis_host
[ 1.078643] usbcore: registered new interface driver cdc_subset
[ 1.084960] usbcore: registered new interface driver zaurus
[ 1.090911] usbcore: registered new interface driver MOSCHIP usb-ethernet driver
[ 1.099060] ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver
[ 1.106079] _regulator_get: ehci-omap.0 supply hsusb0 not found, using dummy regulator
[ 1.114501] _regulator_get: ehci-omap.0 supply hsusb1 not found, using dummy regulator
[ 3.135040] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller
[ 3.141448] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1
[ 3.149414] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800
[ 3.166320] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00
[ 3.172454] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 3.179626] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 3.187255] usb usb1: Product: OMAP-EHCI Host Controller
[ 3.192871] usb usb1: Manufacturer: Linux 3.0.4+ ehci_hcd
[ 3.198547] usb usb1: SerialNumber: ehci-omap.0
[ 3.203948] hub 1-0:1.0: USB hub found
[ 3.207946] hub 1-0:1.0: 3 ports detected
[ 3.236663] Initializing USB Mass Storage driver…
[ 3.241943] usbcore: registered new interface driver usb-storage
[ 3.248321] USB Mass Storage support registered.
[ 3.253692] mousedev: PS/2 mouse device common for all mice
[ 3.260070] input: gpio-keys as /devices/platform/gpio-keys/input/input0
[ 3.268524] input: twl4030_pwrbutton as /devices/platform/omap/omap_i2c.1/i2c-1/1-0049/twl4030_pwrbutton/input/input1
[ 3.280242] i2c /dev entries driver
[ 3.284393] Linux media interface: v0.10
[ 3.288604] Linux video capture interface: v2.00
[ 3.293701] vpfe_init
[ 3.296691] OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec
[ 3.303131] Bluetooth: HCI UART driver ver 2.2
[ 3.307830] Bluetooth: HCI H4 protocol initialized
[ 3.312866] Bluetooth: HCI BCSP protocol initialized
[ 3.318115] Bluetooth: HCILL protocol initialized
[ 3.323089] Bluetooth: HCIATH3K protocol initialized
[ 3.328308] Bluetooth: Generic Bluetooth USB driver ver 0.6
[ 3.334381] usbcore: registered new interface driver btusb
[ 3.340270] cpuidle: using governor ladder
[ 3.344573] cpuidle: using governor menu
[ 3.351043] omap_hsmmc: probe of omap_hsmmc.1 failed with error -16
[ 3.360168] usbcore: registered new interface driver usbhid
[ 3.366088] usbhid: USB HID core driver
[ 3.370635] usbcore: registered new interface driver snd-usb-audio
[ 3.378021] OMAP3 Beagle/Devkit8000 SoC init
[ 3.462554] asoc: twl4030-hifi <-> omap-mcbsp-dai.1 mapping ok
[ 3.472076] ALSA device list:
[ 3.475219] #0: omap3beagle
[ 3.478332] oprofile: hardware counters not available
[ 3.483673] oprofile: using timer interrupt.
[ 3.488677] TCP cubic registered
[ 3.492126] NET: Registered protocol family 17
[ 3.496887] hub 1-0:1.0: unable to enumerate USB device on port 2
[ 3.503387] NET: Registered protocol family 15
[ 3.508117] lib80211: common routines for IEEE802.11 drivers
[ 3.514190] Registering the dns_resolver key type
[ 3.519256] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[ 3.528411] ThumbEE CPU extension supported.
[ 3.537292] omap_voltage_get_voltdata: Unable to match the current voltage with the voltagetable for vdd_mpu_iva
[ 3.553222] sr_init: No PMIC hook to init smartreflex
[ 3.558807] smartreflex smartreflex.0: omap_sr_probe: SmartReflex driver initialized
[ 3.567199] smartreflex smartreflex.1: omap_sr_probe: SmartReflex driver initialized
[ 3.575500] SmartReflex Class3 initialized
[ 3.584259] clock: disabling unused clocks to save power
[ 3.590789] registered taskstats version 1
[ 3.595855] omapfb omapfb: no driver for display
[ 3.600830] omapfb omapfb: failed to setup omapfb
[ 3.606445] regulator_init_complete: VDVI: incomplete constraints, leaving on
[ 3.614288] regulator_init_complete: VDAC: incomplete constraints, leaving on
[ 3.622558] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[ 3.629730] omapdss DPI: Could not find exact pixel clock. Requested 23500 kHz, got 24000 kHz
[ 3.669006] omap_vout omap_vout: : registered and initialized video device 0
[ 3.676513] Unable to handle kernel NULL pointer dereference at virtual address 0000005c
[ 3.685058] pgd = c0004000
[ 3.687896] [0000005c] *pgd=00000000
[ 3.691680] Internal error: Oops: 5 [#1]
[ 3.695831] Modules linked in:
[ 3.699066] CPU: 0 Not tainted (3.0.4+ #2)
[ 3.703735] PC is at omap_vout_probe+0x6b8/0x7e0
[ 3.708618] LR is at omap_vout_probe+0x684/0x7e0
[ 3.713470] pc : [] lr : [] psr: 80000013
[ 3.713500] sp : de82bec0 ip : 00000000 fp : 00000004
[ 3.725585] r10: dea87bc8 r9 : dea87bc4 r8 : 00000186
[ 3.731109] r7 : 00000184 r6 : dea87bc0 r5 : 00000000 r4 : 00000002
[ 3.737976] r3 : 00000000 r2 : de82be7c r1 : c05bb360 r0 : c0651f40
[ 3.744842] Flags: Nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
[ 3.752532] Control: 10c5387d Table: 80004019 DAC: 00000015
[ 3.758605] Process swapper (pid: 1, stack limit = 0xde82a2f0)
[ 3.764739] Stack: (0xde82bec0 to 0xde82c000)
[ 3.769317] bec0: 00000000 de819a40 00000030 dea87bc0 deb10c00 00000003 00000003 dea87bdc
[ 3.777954] bee0: dea87bc0 00000001 deb10c00 dea87bc0 de879878 00000004 c064580c c06457d8
[ 3.786560] bf00: c064580c c067be4c c067be4c 00000000 00000000 00000000 00000000 c02a79b4
[ 3.795196] bf20: c02a79a0 c02a6944 00000000 c06457d8 c064580c c067be4c 00000000 c02a6a60
[ 3.803802] bf40: c067be4c de82bf50 c02a6a00 c02a5bf4 de8076b8 de8736f0 c067be4c c067be4c
[ 3.812408] bf60: dea86440 c0671618 00000000 c02a6264 c058901c c0589021 0000005f c067be4c
[ 3.821044] bf80: c0031924 c0042cd4 c00290d8 00000000 00000000 c02a6f6c 00000000 c0031914
[ 3.829650] bfa0: c0031924 c0042cd4 c00290d8 00000000 00000000 c00290e4 de82a000 c003d45c
[ 3.838287] bfc0: c00290d8 c05ce3b4 c0689640 00000000 c0031914 c0031924 c0042cd4 00000013
[ 3.846893] bfe0: 00000000 c000894c 00000000 00000000 c00088c4 c0042cd4 01100800 00000008
[ 3.855529] [] (omap_vout_probe+0x6b8/0x7e0) from [] (platform_drv_probe+0x14/0x18)
[ 3.865447] [] (platform_drv_probe+0x14/0x18) from [] (driver_probe_device+0xc8/0x184)
[ 3.875610] [] (driver_probe_device+0xc8/0x184) from [] (__driver_attach+0x60/0x84)
[ 3.885528] [] (__driver_attach+0x60/0x84) from [] (bus_for_each_dev+0x4c/0x78)
[ 3.895050] [] (bus_for_each_dev+0x4c/0x78) from [] (bus_add_driver+0x98/0x210)
[ 3.904602] [] (bus_add_driver+0x98/0x210) from [] (driver_register+0xa0/0x120)
[ 3.914154] [] (driver_register+0xa0/0x120) from [] (omap_vout_init+0xc/0x2c)
[ 3.923492] [] (omap_vout_init+0xc/0x2c) from [] (do_one_initcall+0x90/0x160)
[ 3.932861] [] (do_one_initcall+0x90/0x160) from [] (kernel_init+0x88/0x130)
[ 3.942138] [] (kernel_init+0x88/0x130) from [] (kernel_thread_exit+0x0/0x8)
[ 3.951416] Code: e3e05012 ea000016 e59a0094 e5903200 (e593c05c)
[ 3.957885] —[ end trace cbb5c332507f77c9 ]—
[ 3.962890] Kernel panic - not syncing: Attempted to kill init!

Jason Kridner wrote:

Any ideas on debugging this crash in omap_vout_probe? This is a 3.0.4 kernel with PM patches applied from Kevin's tree.

it crashed where in omap_vout_probe?

Jason Kridner wrote:

Any ideas on debugging this crash in omap_vout_probe? This is a 3.0.4 kernel with PM patches applied from Kevin’s tree.

I tried against the latest copy of the mainline I could get (commit 9e79e3e9dd9672b37ac9412e9a926714306551fe) to see what that would do (without applying any of my patches) and got a linker error in the same function in question.

CC drivers/media/video/omap/omap_vout.o
drivers/media/video/omap/omap_vout.c: In function ‘omap_vout_probe’:
drivers/media/video/omap/omap_vout.c:2202:15: error: ‘struct omap_dss_driver’ has no member named ‘set_update_mode’
drivers/media/video/omap/omap_vout.c:2203:12: error: ‘struct omap_dss_driver’ has no member named ‘set_update_mode’
drivers/media/video/omap/omap_vout.c:2204:8: error: ‘OMAP_DSS_UPDATE_MANUAL’ undeclared (first use in this function)
drivers/media/video/omap/omap_vout.c:2204:8: note: each undeclared identifier is reported only once for each function it appears in
drivers/media/video/omap/omap_vout.c:2206:15: error: ‘struct omap_dss_driver’ has no member named ‘set_update_mode’
drivers/media/video/omap/omap_vout.c:2207:12: error: ‘struct omap_dss_driver’ has no member named ‘set_update_mode’
drivers/media/video/omap/omap_vout.c:2208:8: error: ‘OMAP_DSS_UPDATE_AUTO’ undeclared (first use in this function)
make[4]: *** [drivers/media/video/omap/omap_vout.o] Error 1
make[3]: *** [drivers/media/video/omap] Error 2
make[2]: *** [drivers/media/video] Error 2
make[1]: *** [drivers/media] Error 2
make: *** [drivers] Error 2

http://paste.ubuntu.com/685168/

it crashed where in omap_vout_probe?

At offset 0x6b8, per the paste below…

Built using: https://gitorious.org/beagleboard-validation/linux/commits/ulcd-20110907

[ 3.676513] Unable to handle kernel NULL pointer dereference at virtual address 0000005c

[ 3.685058] pgd = c0004000
[ 3.687896] [0000005c] *pgd=00000000
[ 3.691680] Internal error: Oops: 5 [#1]
[ 3.695831] Modules linked in:
[ 3.699066] CPU: 0 Not tainted (3.0.4+ #2)
[ 3.703735] PC is at omap_vout_probe+0x6b8/0x7e0
[ 3.708618] LR is at omap_vout_probe+0x684/0x7e0

.
.
.

Jason Kridner wrote:

Any ideas on debugging this crash in omap_vout_probe? This is a 3.0.4
kernel with PM patches applied from Kevin's tree.

it crashed where in omap_vout_probe?

Hi Jason,

This crash in omap_vout_probe looks familiar to me. Especially this
part in your log suggests that it was the same issue (ie: a
omap_dss_device driver that was run time loaded):

[ 3.595855] omapfb omapfb: no driver for display
[ 3.600830] omapfb omapfb: failed to setup omapfb

In my case, I got past the panic with the following patch:

diff --git a/drivers/media/video/omap/omap_vout.c
b/drivers/media/video/omap/omap_vout.c
index 2aee372..36d69db 100644
--- a/drivers/media/video/omap/omap_vout.c
+++ b/drivers/media/video/omap/omap_vout.c
@@ -2574,24 +2591,32 @@ static int __init omap_vout_probe(struct
platform_device *pdev)
+ printk(KERN_INFO "%s:%d\n", __func__, __LINE__);
       for (i = 0; i < vid_dev->num_displays; i++) {
               struct omap_dss_device *display = vid_dev->displays[i];

- if (display->driver->update)
+ printk(KERN_INFO "%s:%d\n", __func__, __LINE__);
+ if ((display->driver) && (display->driver->update)) {
+ printk(KERN_INFO "%s:%d\n", __func__, __LINE__);
                       display->driver->update(display, 0, 0,
                                       display->panel.timings.x_res,
                                       display->panel.timings.y_res);
+ }
+ printk(KERN_INFO "%s:%d\n", __func__, __LINE__);
       }
+ printk(KERN_INFO "%s:%d\n", __func__, __LINE__);
       return 0;

and that'll get you to console but you won't have an enabled display.
You may want to see
http://www.spinics.net/lists/linux-omap/msg56158.html for more
details.

Hope that helps,
jaya

Jason Kridner wrote: