On Wed, 2009-06-17 at 16:11 -0400, m-kariche...@ti.com wrote: > From: Muralidharan Karicheri <a0868...@gt516km11.gt.design.ti.com> > > Big Thanks to all reviewers who have contributed to this driver > by reviewing and offering valuable comments. > > VPFE Capture driver for DaVinci Media SOCs :- DM355 and DM6446 > > This is the version v3 of the patch series. This is the reworked > version of the driver based on comments received against the last > version (v2) of the patch and is expected to be final version > candidate for merge to upstream kernel > > +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > These patches add support for VPFE (Video Processing Front End) based > video capture on DM355 and DM6446 EVMs. For more details on the hardware > configuration and capabilities, please refer the vpfe_capture.c header. > This patch set consists of following:- > > Patch 1: VPFE Capture bridge driver > Patch 2: CCDC hw device header file > Patch 3: DM355 CCDC hw module > Patch 4: DM644x CCDC hw module > Patch 5: ccdc types used across CCDC modules > Patch 6: Makefile and config files for the driver > Patch 7: DM355 platform and board setup > Patch 8: DM644x platform and board setup > Patch 9: common vpss hw module for video drivers > Patch 10: Remove outdated driver files from davinci git tree > Patch 11: Makefile and config files for the davinci git tree (New > from v2) > > NOTE: > > 1. Patches 10-11 are only for DaVinci GIT tree. Others applies to > DaVinci GIT and v4l-dvb > > 2. Dependent on the TVP514x decoder driver patch for migrating the > driver to sub device model from Vaibhav Hiremath. I am sending the > reworked version of this patch instead of Vaibhav. > > Following tests are performed. > 1) Capture and display video (PAL & NTSC) from tvp5146 decoder. > Displayed using fbdev device driver available on davinci git tree > 2) Tested with driver built statically and dynamically > > Muralidhara Karicheri > > Reviewed by: Hans Verkuil <hverk...@xs4all.nl> > Reviewed by: Laurent Pinchart <laurent.pinch...@skynet.be> > Reviewed by: Alexey Klimov <klimov.li...@gmail.com> > Reviewed by: Kevin Hilman <khil...@deeprootsystems.com> > Reviewed by: David Brownell <davi...@pacbell.net> > > Signed-off-by: Muralidharan Karicheri <m-kariche...@ti.com> > _______________________________________________ > Davinci-linux-open-source mailing list > Davinci-linux-open-source@linux.davincidsp.com > http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
After applying this patch and enabling the driver I get a kernel panic on every boot up on my DM355 EVM from Spectrum Digital. With some experimentation I found that the panic only happens when I enable CONFIG_VIDEO_DM355_CCDC. I have applied all but #6 in this series to the davinci-linux git tree as well as v3 of the TVP514x-Migration-to-sub-device-framework patch (which I believe is the one mentioned in the second note. Does anything obvious that I might be missing jump out at anyone? I've attached the log of the kernel panic. Thanks in advance, ~Scott -- Scott Sweeny Linux Engineer Timesys Corporation
Bytes transferred = 1551820 (17adcc hex) ## Booting image at 80700000 ... Image Name: Linux-2.6.30-davinci1-05987-g3f6 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1551756 Bytes = 1.5 MB Load Address: 80008000 Entry Point: 80008000 Verifying Checksum ... OK OK Starting kernel ... Uncompressing Linux................................................................................................... done, booting the kernel. Linux version 2.6.30-davinci1-05987-g3f69672-dirty (sc...@scotbox) (gcc version 4.3.3 (GCC) ) #10 PREEMPT Fri Jun 19 14:42:58 EDT 2009 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177 CPU: VIVT data cache, VIVT instruction cache Machine: DaVinci DM355 EVM Memory policy: ECC disabled, Data cache writeback DaVinci dm355 variant 0x0 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 29464 Kernel command line: mem=116M console=ttyS0,115200n8 root=/dev/nfs rw ip=dhcp video=davincifb:vid0=720x576x16,2500K:vid1=720x576x16,2500K:osd0=720x576x16,2025K davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=ntsc Unknown boot option `davinci_enc_mngr.ch0_output=COMPOSITE': ignoring Unknown boot option `davinci_enc_mngr.ch0_mode=ntsc': ignoring NR_IRQS:224 PID hash table entries: 512 (order: 9, 2048 bytes) Console: colour dummy device 80x30 Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Memory: 116MB = 116MB total Memory: 114332KB available (2724K code, 298K data, 120K init, 0K highmem) SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 Calibrating delay loop... 107.72 BogoMIPS (lpj=538624) Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok DaVinci: 104 gpio irqs net_namespace: 928 bytes NET: Registered protocol family 16 MUX: initialized INT_EDMA_CC MUX: Setting register INT_EDMA_CC INTMUX (0x00000018) = 0x00000000 -> 0x00000004 bio: create slab <bio-0> at 0 dm355evm_msp 1-0025: firmware v.A5, imager as video-in vpss vpss: dm355_vpss vpss probed vpss vpss: dm355_vpss vpss probe success NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 4096 (order: 3, 32768 bytes) TCP bind hash table entries: 4096 (order: 2, 16384 bytes) TCP: Hash tables configured (established 4096 bind 4096) TCP reno registered NET: Registered protocol family 1 msgmni has been set to 223 io scheduler noop registered io scheduler anticipatory registered (default) DaVinci: Output on NTSC in COMPOSITE format, Enabled windows: Video0 Video1 OSD0 OSD1 Setting Video0 size 720x480, position (0,0) Setting Video1 size 720x480, position (0,0) Setting OSD0 size 720x480, position (0,0) Setting OSD1 size 720x480, position (0,0) DM355 FBDEV Driver Setting Up Clocks for DM420 OSD Console: switching to colour frame buffer device 90x30 fb0: dm_osd0_fb frame buffer device fb1: dm_vid0_fb frame buffer device fb2: dm_osd1_fb frame buffer device fb3: dm_vid1_fb frame buffer device Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled serial8250.0: ttyS0 at MMIO 0x1c20000 (irq = 40) is a 16550A console [ttyS0] enabled serial8250 serial8250.0: unable to register port at index 1 (IO0 MEM1c20400 IRQ41): -22 serial8250 serial8250.0: unable to register port at index 2 (IO0 MEM1e06000 IRQ14): -22 brd: module loaded dm9000 Ethernet Driver, V1.31 eth0 (dm9000): not using net_device_ops yet eth0: dm9000a at c7814000,c7818002 IRQ 65 MAC: 00:0e:99:02:c7:7f (eeprom) console [netcon0] enabled netconsole: network logging started i2c /dev entries driver Linux video capture interface: v2.00 vpfe_init vpfe-capture: vpfe vpss master clock enabled vpfe-capture: vpfe vpss slave clock enabled vpfe-capture vpfe-capture: v4l2 device registered vpfe-capture vpfe-capture: video device registered vpfe-capture vpfe-capture: No Subdevice data vpfe-capture: vpfe vpss master & slave clocks disabled dm644x_ccdc_init vpfe_register_ccdc_device: DM6446 CCDC dm355_ccdc_init vpfe_register_ccdc_device: DM355 CCDC TCP cubic registered NET: Registered protocol family 17 RPC: Registered udp transport module. RPC: Registered tcp transport module. Clocks: disable unused mjcp Clocks: disable unused uart1 Clocks: disable unused uart2 Clocks: disable unused asp0 Clocks: disable unused asp1 Clocks: disable unused mmcsd0 Clocks: disable unused mmcsd1 Clocks: disable unused spi0 Clocks: disable unused spi1 Clocks: disable unused spi2 Clocks: disable unused pwm0 Clocks: disable unused pwm1 Clocks: disable unused pwm2 Clocks: disable unused pwm3 Clocks: disable unused timer1 Clocks: disable unused timer3 Clocks: disable unused rto Clocks: disable unused usb eth0: link down eth0: link up, 100Mbps, half-duplex, lpa 0x40A1 Sending DHCP requests ., OK IP-Config: Got DHCP answer from 10.5.5.1, my address is 10.5.5.28 IP-Config: Complete: device=eth0, addr=10.5.5.28, mask=255.255.255.224, gw=10.5.5.1, host=harvey, domain=scotbox.timesys.com, nis-domain=(none), bootserver=10.5.5.1, rootserver=10.5.5.1, rootpath=/home/scott/timesys/dm355_evm/rfs Looking up port of RPC 100003/2 on 10.5.5.1 Unable to handle kernel paging request at virtual address 00070010 pgd = c0004000 [00070010] *pgd=00000000 Internal error: Oops: 5 [#1] PREEMPT Modules linked in: CPU: 0 Not tainted (2.6.30-davinci1-05987-g3f69672-dirty #10) PC is at __kmalloc+0x74/0xd4 LR is at __kmalloc+0x64/0xd4 pc : [<c008b878>] lr : [<c008b868>] psr: 20000093 sp : c6c1bdc0 ip : 00000018 fp : 00000000 r10: 00000200 r9 : c73c12f0 r8 : c0214d90 r7 : 000080d0 r6 : a0000013 r5 : 00070010 r4 : c02e6534 r3 : 00000000 r2 : c02e6000 r1 : c02e6534 r0 : 00000000 Flags: nzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel Control: 0005317f Table: 80004000 DAC: 00000017 Process swapper (pid: 1, stack limit = 0xc6c1a268) Stack: (0xc6c1bdc0 to 0xc6c1c000) bdc0: c73c12f0 c0302ffc c0302f40 c73c1200 00000009 c6c1be48 c0302ffc c0302f40 bde0: c6cdf000 c0214d90 352e3031 312e352e c0172800 c02fbfa0 0000148a 0000002c be00: c02ed6d4 c02ed6d8 ffffffff ffffeb4a c02ed6d4 c6c1be20 00000011 00000000 be20: c6c1bf90 00000010 00000011 00000010 00000000 c6c1bf90 c6c1bf90 00000000 be40: 00000000 c0221c00 00000011 c6c1bf90 00000010 00000000 00000000 c6c1bde8 be60: c0302f40 00000000 00000002 00000001 00000018 00000000 c6c1be98 c6c1be9c be80: 00000011 000186a3 00000002 c022212c 00000002 c02b3961 00000005 00000000 bea0: 000186a3 00000002 00000011 00000000 00000000 00000000 00000000 00000000 bec0: c0302db4 c6c1be9c c6c1beac 00000000 c0021838 00000002 00000001 00000011 bee0: 00000000 c0014f84 c009ffac c0033224 c6c09000 00000000 00000000 c6c1bf5c bf00: 00000000 c6c1bf10 c009dd74 c0033224 00000000 c6c1bf20 00000000 c6c1bf28 bf20: 00000000 c02e66f0 c0408100 c008b228 c6c03200 c00a50c8 fffffffe 00000000 bf40: c6805980 00000000 00000000 c00995b8 00000000 c6c03200 c6801080 93825d88 bf60: 0000000c c6c09001 00000000 00000000 00000000 00000001 c02ef270 c0291508 bf80: c02ef288 5c2d2f7c c0020840 c0026660 6f000002 0105050a c002083c 00000000 bfa0: 00000000 c0303dc4 c002083c 00000000 00000000 00000000 00000000 c0008f34 bfc0: c0020840 c0303dc4 c002083c c0009180 c0303db8 c001f54c 00000000 c0303db8 bfe0: c001f54c c0008408 00000000 00000000 00000000 c003dc70 00210000 ffffffff [<c008b878>] (__kmalloc+0x74/0xd4) from [<c0214d90>] (rpc_create+0x1c8/0x400) [<c0214d90>] (rpc_create+0x1c8/0x400) from [<c0221c00>] (rpcb_create+0x80/0x8c) [<c0221c00>] (rpcb_create+0x80/0x8c) from [<c022212c>] (rpcb_getport_sync+0xa4/0x100) [<c022212c>] (rpcb_getport_sync+0xa4/0x100) from [<c0014f84>] (nfs_root_data+0x17c/0x394) [<c0014f84>] (nfs_root_data+0x17c/0x394) from [<c0008f34>] (mount_root+0x1c/0x104) [<c0008f34>] (mount_root+0x1c/0x104) from [<c0009180>] (prepare_namespace+0x164/0x1c8) [<c0009180>] (prepare_namespace+0x164/0x1c8) from [<c0008408>] (kernel_init+0xbc/0xec) [<c0008408>] (kernel_init+0xbc/0xec) from [<c003dc70>] (do_exit+0x0/0x634) [<c003dc70>] (do_exit+0x0/0x634) from [<c6c18000>] (0xc6c18000) Code: e5945080 e594a090 e3550000 1594308c (17953103) ---[ end trace e83bec807421afa2 ]--- Kernel panic - not syncing: Attempted to kill init! [<c002b690>] (unwind_backtrace+0x0/0xdc) from [<c022ba04>] (panic+0x3c/0x120) [<c022ba04>] (panic+0x3c/0x120) from [<c003dcd4>] (do_exit+0x64/0x634) [<c003dcd4>] (do_exit+0x64/0x634) from [<c002a638>] (die+0x164/0x184) [<c002a638>] (die+0x164/0x184) from [<c002c5a4>] (__do_kernel_fault+0x68/0x80) [<c002c5a4>] (__do_kernel_fault+0x68/0x80) from [<c002c7d0>] (do_page_fault+0x214/0x234) [<c002c7d0>] (do_page_fault+0x214/0x234) from [<c002623c>] (do_DataAbort+0x30/0x90) [<c002623c>] (do_DataAbort+0x30/0x90) from [<c0026a0c>] (__dabt_svc+0x4c/0x60) Exception stack(0xc6c1bd78 to 0xc6c1bdc0) bd60: 00000000 c02e6534 bd80: c02e6000 00000000 c02e6534 00070010 a0000013 000080d0 c0214d90 c73c12f0 bda0: 00000200 00000000 00000018 c6c1bdc0 c008b868 c008b878 20000093 ffffffff [<c0026a0c>] (__dabt_svc+0x4c/0x60) from [<c008b868>] (__kmalloc+0x64/0xd4) [<c008b868>] (__kmalloc+0x64/0xd4) from [<c0214d90>] (rpc_create+0x1c8/0x400) [<c0214d90>] (rpc_create+0x1c8/0x400) from [<c0221c00>] (rpcb_create+0x80/0x8c) [<c0221c00>] (rpcb_create+0x80/0x8c) from [<c022212c>] (rpcb_getport_sync+0xa4/0x100) [<c022212c>] (rpcb_getport_sync+0xa4/0x100) from [<c0014f84>] (nfs_root_data+0x17c/0x394) [<c0014f84>] (nfs_root_data+0x17c/0x394) from [<c0008f34>] (mount_root+0x1c/0x104) [<c0008f34>] (mount_root+0x1c/0x104) from [<c0009180>] (prepare_namespace+0x164/0x1c8) [<c0009180>] (prepare_namespace+0x164/0x1c8) from [<c0008408>] (kernel_init+0xbc/0xec) [<c0008408>] (kernel_init+0xbc/0xec) from [<c003dc70>] (do_exit+0x0/0x634) [<c003dc70>] (do_exit+0x0/0x634) from [<c6c18000>] (0xc6c18000)
_______________________________________________ Davinci-linux-open-source mailing list Davinci-linux-open-source@linux.davincidsp.com http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source