hi all
i m trying to modify the rr kernel to support aptina vga sensor i have succeeded to insert it as a module but
i think the problem is coming when try to modify the "board-leopard-dm365.c"
as i m giving value to .platform_data=&mt9v113_pdata
here is the stucture which ive modifiedn in "board-leopard-dm365.c"
static struct i2c_board_info i2c_info[] = {#if defined(CONFIG_VIDEO_MT9V113) || defined(CONFIG_VIDEO_MT9V113_MODULE) { I2C_BOARD_INFO("mt9v113", MT9V113_I2C_ADDR), .platform_data =&mt9v113_pdata,
}, #endif { I2C_BOARD_INFO("tlv320aic3x", 0x18), }, { I2C_BOARD_INFO("ths7303", 0x2c), }};
i ve attached three files to the system
1.mt9v113.c in <kernel>drivers/media/video
2.mt9v113_regs.h in same location
3.mt9v113.h in <kernel>include/media
pls tell me the right step if i m missing something
this is the kernel loading in leopard board
## Booting kernel from Legacy Image at 82000000 ... Image Name: "RR Linux Kernel" Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 4445856 Bytes = 4.2 MB Load Address: 80008000 Entry Point: 80008000 Verifying Checksum ... OK Loading Kernel Image ... OK OK Starting kernel ... Linux version 2.6.32-rc2-ridgerun (dm365@dm365-desktop) (gcc version 4.2.4) #271CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177 CPU: VIVT data cache, VIVT instruction cache Machine: DM365 Leopard Memory policy: ECC disabled, Data cache writeback DaVinci dm365_rev1.2 variant 0x8 Built 1 zonelists in Zone order, mobility grouping off. Total pages: 13716 Kernel command line: davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0)PID hash table entries: 256 (order: -2, 1024 bytes) Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) Memory: 54MB = 54MB total Memory: 50100KB available (3996K code, 387K data, 148K init, 0K highmem) SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 Hierarchical RCU implementation. NR_IRQS:245 Console: colour dummy device 80x30 Calibrating delay loop... 147.86 BogoMIPS (lpj=739328) Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok DaVinci: 8 gpio irqs NET: Registered protocol family 16 davinci_serial_init:97: failed to get UART2 clock bio: create slab <bio-0> at 0 DM365 IPIPE initialized in Single Shot mode SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb vpss vpss: dm365_vpss vpss probed vpss vpss: dm365_vpss vpss probe success dm365_afew_hw_init ch0 default output "COMPOSITE", mode "720P-60" Invalid id... Setmode failed, reset to encoder default... VPBE Encoder Initialized cfg80211: Using static regulatory domain info cfg80211: Regulatory domain: US (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp) (2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm) (5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm) (5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm) (5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm) (5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm) (5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm) cfg80211: Calling CRDA for country: US LogicPD encoder initialized Leopard DVI encoder initialized Switching to clocksource timer0_1 musb_hdrc: version 6.0, cppi-dma, host, debug=0 musb_hdrc: USB Host mode controller at fec64000 using DMA, IRQ 12 musb_hdrc musb_hdrc: MUSB HDRC host driver musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1 usb usb1: configuration #1 chosen from 1 choice hub 1-0:1.0: USB hub found hub 1-0:1.0: 1 port detected NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 2048 (order: 2, 16384 bytes) TCP bind hash table entries: 2048 (order: 1, 8192 bytes) TCP: Hash tables configured (established 2048 bind 2048) TCP reno registered NET: Registered protocol family 1 RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. JFFS2 version 2.2. (NAND) �© 2001-2006 Red Hat, Inc. msgmni has been set to 97 alg: No test for stdrng (krng) io scheduler noop registered io scheduler anticipatory registered (default) davincifb davincifb.0: dm_osd0_fb: 720x480x16@0,0 with framebuffer size 675KB davincifb davincifb.0: dm_osd1_fb: 720x480x4@0,0 with framebuffer size 675KB davinci_interrupt 368: VBUS error workaround (delay coming) DM365 IPIPEIF probed imp serializer initialized davinci_previewer initialized davinci_resizer initialized Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled serial8250.0: ttyS0 at MMIO 0x1c20000 (irq = 40) is a 16550A console [ttyS0] enabled brd: module loaded console [netcon0] enabled netconsole: network logging started Initializing USB Mass Storage driver... usbcore: registered new interface driver usb-storage USB Mass Storage support registered. usbcore: registered new interface driver usbtest i2c /dev entries driver Linux video capture interface: v2.00 ths7303 1-002c: chip found @ 0x58 (DaVinci I2C adapter) Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = c0004000 [00000000] *pgd=00000000 Internal error: Oops: 5 [#1] PREEMPT Modules linked in: CPU: 0 Not tainted (2.6.32-rc2-ridgerun #27) PC is at strcpy+0x10/0x24 LR is at mt9v113_probe+0x90/0x130 pc : [<c017a064>] lr : [<c0227a78>] psr: a0000013 sp : c2029e48 ip : c2029e58 fp : c2029e54 r10: 00000000 r9 : 00000001 r8 : c04392c0 r7 : c2023a20 r6 : c043b2ac r5 : c2023a00 r4 : c043b2f8 r3 : c043950c r2 : c043b8c4 r1 : 00000000 r0 : c043b8c4 Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel Control: 0005317f Table: 80004000 DAC: 00000017 Process swapper (pid: 1, stack limit = 0xc2028270) Stack: (0xc2029e48 to 0xc202a000) 9e40: c2029e7c c2029e58 c0227a78 c017a064 c2029e7c c2029e68 9e60: c02279e8 c2023a20 c2023a00 c043b268 c2029e9c c2029e80 c02116e8 c02279f8 9e80: c00e9f2c c2023a20 c2023a54 c043b268 c2029ebc c2029ea0 c01be8ac c0211658 9ea0: c2023a20 c2023a54 c043b268 c043b268 c2029edc c2029ec0 c01be9cc c01be80c 9ec0: c2029edc 00000000 c2029ee0 c01be960 c2029f04 c2029ee0 c01bdcb4 c01be970 9ee0: c205d0b8 c2054c30 c043b244 c043b268 c23c4b40 00000000 c2029f14 c2029f08 9f00: c01be708 c01bdc6c c2029f44 c2029f18 c01be280 c01be6f8 c03e06fc c043b244 9f20: c043b244 c043b268 c04392c0 00000000 00000000 c001cac4 c2029f6c c2029f48 9f40: c01bedc4 c01be1ec c043b244 c0025040 c04392c0 00000000 00000000 c001cac4 9f60: c2029f8c c2029f70 c02102bc c01bed24 00000000 c0024f84 c0025040 c04456ac 9f80: c2029f9c c2029f90 c001cadc c0210250 c2029fdc c2029fa0 c002d340 c001cad4 9fa0: 00000000 00000000 000000f5 c041df40 00000000 c0024f84 c0025040 00000000 9fc0: 00000000 00000000 00000000 00000000 c2029ff4 c2029fe0 c0008798 c002d2f0 9fe0: 00000000 00000000 00000000 c2029ff8 c0045738 c000870c e59f004c e1a01005 Backtrace: [<c017a054>] (strcpy+0x0/0x24) from [<c0227a78>] (mt9v113_probe+0x90/0x130) [<c02279e8>] (mt9v113_probe+0x0/0x130) from [<c02116e8>] (i2c_device_probe+0xa0) r7:c043b268 r6:c2023a00 r5:c2023a20 r4:c02279e8 [<c0211648>] (i2c_device_probe+0x0/0xc4) from [<c01be8ac>] (driver_probe_device) r6:c043b268 r5:c2023a54 r4:c2023a20 [<c01be7fc>] (driver_probe_device+0x0/0x164) from [<c01be9cc>] (__driver_attach) r7:c043b268 r6:c043b268 r5:c2023a54 r4:c2023a20 [<c01be960>] (__driver_attach+0x0/0x90) from [<c01bdcb4>] (bus_for_each_dev+0x5) r6:c01be960 r5:c2029ee0 r4:00000000 [<c01bdc5c>] (bus_for_each_dev+0x0/0x8c) from [<c01be708>] (driver_attach+0x20/) r7:00000000 r6:c23c4b40 r5:c043b268 r4:c043b244 [<c01be6e8>] (driver_attach+0x0/0x28) from [<c01be280>] (bus_add_driver+0xa4/0x)[<c01be1dc>] (bus_add_driver+0x0/0x228) from [<c01bedc4>] (driver_register+0xb0)[<c01bed14>] (driver_register+0x0/0x13c) from [<c02102bc>] (i2c_register_driver)[<c0210240>] (i2c_register_driver+0x0/0xa0) from [<c001cadc>] (mt9v113_init+0x1) r6:c04456ac r5:c0025040 r4:c0024f84 [<c001cac4>] (mt9v113_init+0x0/0x20) from [<c002d340>] (do_one_initcall+0x60/0x)[<c002d2e0>] (do_one_initcall+0x0/0x1ac) from [<c0008798>] (kernel_init+0x9c/0x)[<c00086fc>] (kernel_init+0x0/0x110) from [<c0045738>] (do_exit+0x0/0x654) r5:00000000 r4:00000000 Code: e1a0c00d e92dd800 e24cb004 e1a02000 (e4d13001) ---[ end trace 2fb026f5e56724ab ]--- Kernel panic - not syncing: Attempted to kill init! Backtrace: [<c0031730>] (dump_backtrace+0x0/0x110) from [<c0031874>] (dump_stack+0x18/0x1c) r6:0000000b r5:c0445e24 r4:c041d6f8 [<c003185c>] (dump_stack+0x0/0x1c) from [<c00424f8>] (panic+0x54/0x134) [<c00424a4>] (panic+0x0/0x134) from [<c004579c>] (do_exit+0x64/0x654) r3:c041d6f8 r2:c2028000 r1:00000001 r0:c03adbcc [<c0045738>] (do_exit+0x0/0x654) from [<c00319f4>] (die+0x15c/0x17c) [<c0031898>] (die+0x0/0x17c) from [<c0033640>] (__do_kernel_fault+0x6c/0x7c) [<c00335d4>] (__do_kernel_fault+0x0/0x7c) from [<c003381c>] (do_page_fault+0x1c) r7:00000000 r6:00000000 r5:c2024000 r4:ffffffff [<c0033650>] (do_page_fault+0x0/0x1e4) from [<c00338d4>] (do_translation_fault+)[<c00338b8>] (do_translation_fault+0x0/0x84) from [<c002d27c>] (do_DataAbort+0x) r4:ffffffff [<c002d23c>] (do_DataAbort+0x0/0xa4) from [<c002da2c>] (__dabt_svc+0x4c/0x60) Exception stack(0xc2029e00 to 0xc2029e48) 9e00: c043b8c4 00000000 c043b8c4 c043950c c043b2f8 c2023a00 c043b2ac c2023a20 9e20: c04392c0 00000001 00000000 c2029e54 c2029e58 c2029e48 c0227a78 c017a064 9e40: a0000013 ffffffff r8:c04392c0 r7:c2023a20 r6:c043b2ac r5:c2029e34 r4:ffffffff [<c017a054>] (strcpy+0x0/0x24) from [<c0227a78>] (mt9v113_probe+0x90/0x130) [<c02279e8>] (mt9v113_probe+0x0/0x130) from [<c02116e8>] (i2c_device_probe+0xa0) r7:c043b268 r6:c2023a00 r5:c2023a20 r4:c02279e8 [<c0211648>] (i2c_device_probe+0x0/0xc4) from [<c01be8ac>] (driver_probe_device) r6:c043b268 r5:c2023a54 r4:c2023a20 [<c01be7fc>] (driver_probe_device+0x0/0x164) davinci_interrupt 368: VBUS error workaround (delay coming) from [<c01be9cc>] (__driver_attach+0x6c/0x90) r7:c043b268 r6:c043b268 r5:c2023a54 r4:c2023a20 [<c01be960>] (__driver_attach+0x0/0x90) from [<c01bdcb4>] (bus_for_each_dev+0x5) r6:c01be960 r5:c2029ee0 r4:00000000 [<c01bdc5c>] (bus_for_each_dev+0x0/0x8c) from [<c01be708>] (driver_attach+0x20/) r7:00000000 r6:c23c4b40 r5:c043b268 r4:c043b244 [<c01be6e8>] (driver_attach+0x0/0x28) from [<c01be280>] (bus_add_driver+0xa4/0x)[<c01be1dc>] (bus_add_driver+0x0/0x228) from [<c01bedc4>] (driver_register+0xb0)[<c01bed14>] (driver_register+0x0/0x13c) from [<c02102bc>] (i2c_register_driver)[<c0210240>] (i2c_register_driver+0x0/0xa0) from [<c001cadc>] (mt9v113_init+0x1) r6:c04456ac r5:c0025040 r4:c0024f84 [<c001cac4>] (mt9v113_init+0x0/0x20) from [<c002d340>] (do_one_initcall+0x60/0x)[<c002d2e0>] (do_one_initcall+0x0/0x1ac) from [<c0008798>] (kernel_init+0x9c/0x)[<c00086fc>] (kernel_init+0x0/0x110) from [<c0045738>] (do_exit+0x0/0x654) r5:00000000 r4:00000000 davinci_interrupt 368: VBUS error workaround (delay coming) davinci_interrupt 368: VBUS error workaround (delay coming) i thhink error is coming becoz kernel is enable to handle address given in ".platform_data=&mt9v113_pdata"
<kernel>=home/dm365/work/leo/kernel/linux-2.6.32
waiting for reply
kailash
I am facing the same problem.
where did you initialize mt9v113_pdata?
If it is only declared then you know where your NULL-pointer comes from.
If you initialized it, would you tell me how you did it?