Hi
On my 138 board, I using TW9910, but when it run, cann't load TW9910 Driver:
Unable to handle kernel paging request at virtual address 68008013
I add log in tw9910.c, find that it down here:
static int tw9910_probe(struct i2c_client *client,
const struct i2c_device_id *did)
{
struct tw9910_priv *priv;
struct tw9910_video_info *info;
struct soc_camera_device *icd = client->dev.platform_data;
struct i2c_adapter *adapter =
to_i2c_adapter(client->dev.parent);
struct soc_camera_link *icl;
int ret;
if (!icd) {
dev_err(&client->dev, "TW9910: missing soc-camera data!\n");
return -EINVAL;
}
icl = to_soc_camera_link(icd);
if (!icl || !icl->priv) ----DOWN HERE
return -EINVAL;
info = icl->priv;
if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) {
dev_err(&client->dev,
"I2C-Adapter doesn't support "
"I2C_FUNC_SMBUS_BYTE_DATA\n");
return -EIO;
}
priv = kzalloc(sizeof(*priv), GFP_KERNEL);
if (!priv)
return -ENOMEM;
priv->info = info;
v4l2_i2c_subdev_init(&priv->subdev, client, &tw9910_subdev_ops);
icd->ops = &tw9910_ops;
icd->iface = icl->bus_id;
ret = tw9910_video_probe(icd, client);
if (ret) {
icd->ops = NULL;
i2c_set_clientdata(client, NULL);
kfree(priv);
}
return ret;
}
the soc_camera_link object is not valid!
All log is:
Uncompressing Linux... done, booting the kernel.
Linux version 2.6.33-rc4 (root@ubuntu) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #5 PREEMPT Fri Mar 21 17:21:57 HKT 2014
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: DaVinci DA850/OMAP-L138/AM18xx EVM
Memory policy: ECC disabled, Data cache writeback
DaVinci da850/omap-l138/am18xx variant 0x1
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
Kernel command line: console=tty2,115200n8 noinitrd rw rootfstype=ext3 root=/dev/mmcblk0p2 rootwait mem=64M
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: 64MB = 64MB total
Memory: 60492KB available (3916K code, 310K data, 144K 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... 149.50 BogoMIPS (lpj=747520)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
DaVinci: 144 gpio irqs
NET: Registered protocol family 16
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
i2c-gpio i2c-gpio.1: using pins 20 (SDA) and 21 (SCL)
vpif vpif: vpif probe success
Switching to clocksource timer0_1
musb_hdrc: version 6.0, cppi4.1-dma, host, debug=0
Waiting for USB PHY clock good...
musb_hdrc: USB Host mode controller at fee00000 using DMA, IRQ 58
musb_hdrc musb_hdrc: MUSB HDRC host driver
musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1
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
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
EMAC: MII PHY configured, RMII PHY will not be functional
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
msgmni has been set to 118
io scheduler noop registered (default)
da8xx_lcdc da8xx_lcdc.0: GLCD: Found Sharp_LK043T1DG01 panel
Console: switching to colour frame buffer device 60x34
Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x1c42000 (irq = 25) is a 16550A
serial8250.0: ttyS1 at MMIO 0x1d0c000 (irq = 53) is a 16550A
serial8250.0: ttyS2 at MMIO 0x1d0d000 (irq = 61) is a 16550A
console [ttyS2] enabled
brd: module loaded
spi_davinci spi_davinci.1: DaVinci SPI driver in EDMA mode
Using RX channel = 18 , TX channel = 19 and event queue = 1
m25p80 spi1.0: non-JEDEC variant of m25p64
m25p80 spi1.0: m25p64 (8192 Kbytes)
Creating 4 MTD partitions on "m25p80":
0x000000000000-0x000000040000 : "U-Boot"
0x000000040000-0x000000050000 : "U-Boot Environment"
0x000000050000-0x0000007f0000 : "Linux"
0x0000007f0000-0x000000800000 : "MAC Address"
spi_davinci spi_davinci.1: Controller at 0xfef0e000
console [netcon0] enabled
netconsole: network logging started
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
ohci ohci.0: DA8xx OHCI
ohci ohci.0: new USB bus registered, assigned bus number 2
ohci ohci.0: irq 59, io mem 0x01e25000
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
omap_rtc omap_rtc: rtc core: registered omap_rtc as rtc0
omap_rtc: RTC power up reset detected
i2c /dev entries driver
Linux video capture interface: v2.00
Unable to handle kernel paging request at virtual address 68008013
pgd = c0004000
[68008013] *pgd=00000000
Internal error: Oops: 1 [#1] PREEMPT
last sysfs file:
Modules linked in:
CPU: 0 Not tainted (2.6.33-rc4 #5)
PC is at tw9910_probe+0x5c/0x2c0
LR is at release_console_sem+0x1f8/0x210
pc : [<c0224e88>] lr : [<c00415a8>] psr: 20000013
sp : c3823cf0 ip : c3823c30 fp : c3823d1c
r10: c041c244 r9 : 00000000 r8 : c3854230
r7 : 68007fff r6 : c04082f0 r5 : c38ea300 r4 : c0224e2c
r3 : 00000000 r2 : 00000001 r1 : 000012a8 r0 : 00000013
Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 0005317f Table: c0004000 DAC: 00000017
Process swapper (pid: 1, stack limit = 0xc3822270)
Stack: (0xc3823cf0 to 0xc3824000)
3ce0: 00000000 00000000 c0224e2c c38ea300
3d00: c0422a00 00000000 00000000 c041c244 c3823d34 c3823d20 c020a2f0 c0224e3c
3d20: c0422a00 c38ea320 c3823d54 c3823d38 c01b5ccc c020a26c c0422a00 c38ea320
3d40: c38ea320 00000000 c3823d6c c3823d58 c01b5e50 c01b5c2c 00000000 c01b5e0c
3d60: c3823d94 c3823d70 c01b5184 c01b5e1c c384d048 c39f70f4 c03c6d34 c38ea320
3d80: c38ea354 c3854200 c3823dac c3823d98 c01b5ed8 c01b5144 c38ea320 c38ea320
3da0: c3823dbc c3823db0 c01b4ff0 c01b5e90 c3823e04 c3823dc0 c01b39a4 c01b4fd4
3dc0: c38ea328 c3854230 c3823dec c3823dd8 c01725c8 c0172510 c38ea320 c38ea320
3de0: c38ea300 c3854200 c38ea304 00000000 00000002 00000000 c3823e1c c3823e08
3e00: c01b3b20 c01b3694 c38ea320 c38ea300 c3823e44 c3823e20 c020b5f8 c01b3b14
3e20: c3854200 00000000 c3854200 00000000 c0408058 c04473c8 c3823e64 c3823e48
3e40: c0221f88 c020b554 c38fba60 00000000 c0408054 c04473c8 c3823eac c3823e68
3e60: c001d80c c0221f1c 00000000 00000001 00000000 c0405298 c0407c10 c3854200
3e80: c3823e9c c04052a0 c04052a0 c0422c78 c39e6360 c04171c0 00000000 00000000
3ea0: c3823ebc c3823eb0 c01b6ca8 c001d490 c3823edc c3823ec0 c01b5ccc c01b6c98
3ec0: c04052a0 c04052d4 c0422c78 c39e6360 c3823efc c3823ee0 c01b5de8 c01b5c2c
3ee0: 00000000 c01b5d80 c0422c78 c39e6360 c3823f24 c3823f00 c01b548c c01b5d90
3f00: c3804638 c383aab0 c0172bcc c002440c c0422c78 c0422c78 c3823f34 c3823f28
3f20: c01b5b30 c01b544c c3823f64 c3823f38 c01b4d64 c01b5b20 c03a2d02 00000000
3f40: c002440c 00000000 c0422c78 00000001 00000000 00000000 c3823f8c c3823f68
3f60: c01b6104 c01b4cd0 c002440c 00000000 c001d464 00000001 00000000 00000000
3f80: c3823f9c c3823f90 c01b7114 c01b6064 c3823fac c3823fa0 c001d478 c01b70d8
3fa0: c3823fdc c3823fb0 c002c3a4 c001d474 00000000 00000000 c3823fdc c3823fc8
3fc0: c002440c 00000000 00000000 00000000 c3823ff4 c3823fe0 c0008480 c002c350
3fe0: 00000000 00000000 00000000 c3823ff8 c0044470 c00083e8 dfff6bff 7fffabef
Backtrace:
[<c0224e2c>] (tw9910_probe+0x0/0x2c0) from [<c020a2f0>] (i2c_device_probe+0x94/0xac)
[<c020a25c>] (i2c_device_probe+0x0/0xac) from [<c01b5ccc>] (driver_probe_device+0xb0/0x164)
r5:c38ea320 r4:c0422a00
[<c01b5c1c>] (driver_probe_device+0x0/0x164) from [<c01b5e50>] (__device_attach+0x44/0x48)
r7:00000000 r6:c38ea320 r5:c38ea320 r4:c0422a00
[<c01b5e0c>] (__device_attach+0x0/0x48) from [<c01b5184>] (bus_for_each_drv+0x50/0x90)
r5:c01b5e0c r4:00000000
[<c01b5134>] (bus_for_each_drv+0x0/0x90) from [<c01b5ed8>] (device_attach+0x58/0x70)
r6:c3854200 r5:c38ea354 r4:c38ea320
[<c01b5e80>] (device_attach+0x0/0x70) from [<c01b4ff0>] (bus_probe_device+0x2c/0x4c)
r5:c38ea320 r4:c38ea320
[<c01b4fc4>] (bus_probe_device+0x0/0x4c) from [<c01b39a4>] (device_add+0x320/0x480)
[<c01b3684>] (device_add+0x0/0x480) from [<c01b3b20>] (device_register+0x1c/0x20)
[<c01b3b04>] (device_register+0x0/0x20) from [<c020b5f8>] (i2c_new_device+0xb4/0x110)
r5:c38ea300 r4:c38ea320
[<c020b544>] (i2c_new_device+0x0/0x110) from [<c0221f88>] (v4l2_i2c_new_subdev_board+0x7c/0x1d4)
r7:c04473c8 r6:c0408058 r5:00000000 r4:c3854200
[<c0221f0c>] (v4l2_i2c_new_subdev_board+0x0/0x1d4) from [<c001d80c>] (vpif_probe+0x38c/0x524)
r7:c04473c8 r6:c0408054 r5:00000000 r4:c38fba60
[<c001d480>] (vpif_probe+0x0/0x524) from [<c01b6ca8>] (platform_drv_probe+0x20/0x24)
[<c01b6c88>] (platform_drv_probe+0x0/0x24) from [<c01b5ccc>] (driver_probe_device+0xb0/0x164)
[<c01b5c1c>] (driver_probe_device+0x0/0x164) from [<c01b5de8>] (__driver_attach+0x68/0x8c)
r7:c39e6360 r6:c0422c78 r5:c04052d4 r4:c04052a0
[<c01b5d80>] (__driver_attach+0x0/0x8c) from [<c01b548c>] (bus_for_each_dev+0x50/0x84)
r7:c39e6360 r6:c0422c78 r5:c01b5d80 r4:00000000
[<c01b543c>] (bus_for_each_dev+0x0/0x84) from [<c01b5b30>] (driver_attach+0x20/0x28)
r6:c0422c78 r5:c0422c78 r4:c002440c
[<c01b5b10>] (driver_attach+0x0/0x28) from [<c01b4d64>] (bus_add_driver+0xa4/0x230)
[<c01b4cc0>] (bus_add_driver+0x0/0x230) from [<c01b6104>] (driver_register+0xb0/0x13c)
[<c01b6054>] (driver_register+0x0/0x13c) from [<c01b7114>] (platform_driver_register+0x4c/0x60)
r9:00000000 r8:00000000 r7:00000001 r6:c001d464 r5:00000000
r4:c002440c
[<c01b70c8>] (platform_driver_register+0x0/0x60) from [<c001d478>] (vpif_init+0x14/0x1c)
[<c001d464>] (vpif_init+0x0/0x1c) from [<c002c3a4>] (do_one_initcall+0x64/0x1c4)
[<c002c340>] (do_one_initcall+0x0/0x1c4) from [<c0008480>] (kernel_init+0xa8/0x12c)
r7:00000000 r6:00000000 r5:00000000 r4:c002440c
[<c00083d8>] (kernel_init+0x0/0x12c) from [<c0044470>] (do_exit+0x0/0x6b4)
r5:00000000 r4:00000000
Code: e59f0220 eb03a520 e3570000 0a00007f (e5973014)
---[ end trace 2b72a45972d80a0f ]---
Kernel panic - not syncing: Attempted to kill init!
Backtrace:
[<c0030730>] (dump_backtrace+0x0/0x114) from [<c030e1c4>] (dump_stack+0x18/0x1c)
r7:c3820000 r6:c3820000 r5:00000001 r4:c042ed98
[<c030e1ac>] (dump_stack+0x0/0x1c) from [<c030e22c>] (panic+0x64/0x13c)
[<c030e1c8>] (panic+0x0/0x13c) from [<c00444e4>] (do_exit+0x74/0x6b4)
r3:c040a3f0 r2:00000001 r1:c3823b00 r0:c03a4599
[<c0044470>] (do_exit+0x0/0x6b4) from [<c0030adc>] (die+0x298/0x2cc)
[<c0030844>] (die+0x0/0x2cc) from [<c0032308>] (__do_kernel_fault+0x6c/0x7c)
[<c003229c>] (__do_kernel_fault+0x0/0x7c) from [<c0032564>] (do_bad_area+0x64/0x70)
r7:00000000 r6:00000000 r5:00000014 r4:e5973014
[<c0032500>] (do_bad_area+0x0/0x70) from [<c0034584>] (do_alignment+0x5ac/0x700)
[<c0033fd8>] (do_alignment+0x0/0x700) from [<c002c2e0>] (do_DataAbort+0x3c/0x9c)
[<c002c2a4>] (do_DataAbort+0x0/0x9c) from [<c002cacc>] (__dabt_svc+0x4c/0x60)
Exception stack(0xc3823ca8 to 0xc3823cf0)
3ca0: 00000013 000012a8 00000001 00000000 c0224e2c c38ea300
3cc0: c04082f0 68007fff c3854230 00000000 c041c244 c3823d1c c3823c30 c3823cf0
3ce0: c00415a8 c0224e88 20000013 ffffffff
r8:c3854230 r7:68007fff r6:c04082f0 r5:c3823cdc r4:ffffffff
[<c0224e2c>] (tw9910_probe+0x0/0x2c0) from [<c020a2f0>] (i2c_device_probe+0x94/0xac)
[<c020a25c>] (i2c_device_probe+0x0/0xac) from [<c01b5ccc>] (driver_probe_device+0xb0/0x164)
r5:c38ea320 r4:c0422a00
[<c01b5c1c>] (driver_probe_device+0x0/0x164) from [<c01b5e50>] (__device_attach+0x44/0x48)
r7:00000000 r6:c38ea320 r5:c38ea320 r4:c0422a00
[<c01b5e0c>] (__device_attach+0x0/0x48) from [<c01b5184>] (bus_for_each_drv+0x50/0x90)
r5:c01b5e0c r4:00000000
[<c01b5134>] (bus_for_each_drv+0x0/0x90) from [<c01b5ed8>] (device_attach+0x58/0x70)
r6:c3854200 r5:c38ea354 r4:c38ea320
[<c01b5e80>] (device_attach+0x0/0x70) from [<c01b4ff0>] (bus_probe_device+0x2c/0x4c)
r5:c38ea320 r4:c38ea320
[<c01b4fc4>] (bus_probe_device+0x0/0x4c) from [<c01b39a4>] (device_add+0x320/0x480)
[<c01b3684>] (device_add+0x0/0x480) from [<c01b3b20>] (device_register+0x1c/0x20)
[<c01b3b04>] (device_register+0x0/0x20) from [<c020b5f8>] (i2c_new_device+0xb4/0x110)
r5:c38ea300 r4:c38ea320
[<c020b544>] (i2c_new_device+0x0/0x110) from [<c0221f88>] (v4l2_i2c_new_subdev_board+0x7c/0x1d4)
r7:c04473c8 r6:c0408058 r5:00000000 r4:c3854200
[<c0221f0c>] (v4l2_i2c_new_subdev_board+0x0/0x1d4) from [<c001d80c>] (vpif_probe+0x38c/0x524)
r7:c04473c8 r6:c0408054 r5:00000000 r4:c38fba60
[<c001d480>] (vpif_probe+0x0/0x524) from [<c01b6ca8>] (platform_drv_probe+0x20/0x24)
[<c01b6c88>] (platform_drv_probe+0x0/0x24) from [<c01b5ccc>] (driver_probe_device+0xb0/0x164)
[<c01b5c1c>] (driver_probe_device+0x0/0x164) from [<c01b5de8>] (__driver_attach+0x68/0x8c)
r7:c39e6360 r6:c0422c78 r5:c04052d4 r4:c04052a0
[<c01b5d80>] (__driver_attach+0x0/0x8c) from [<c01b548c>] (bus_for_each_dev+0x50/0x84)
r7:c39e6360 r6:c0422c78 r5:c01b5d80 r4:00000000
[<c01b543c>] (bus_for_each_dev+0x0/0x84) from [<c01b5b30>] (driver_attach+0x20/0x28)
r6:c0422c78 r5:c0422c78 r4:c002440c
[<c01b5b10>] (driver_attach+0x0/0x28) from [<c01b4d64>] (bus_add_driver+0xa4/0x230)
[<c01b4cc0>] (bus_add_driver+0x0/0x230) from [<c01b6104>] (driver_register+0xb0/0x13c)
[<c01b6054>] (driver_register+0x0/0x13c) from [<c01b7114>] (platform_driver_register+0x4c/0x60)
r9:00000000 r8:00000000 r7:00000001 r6:c001d464 r5:00000000
r4:c002440c
[<c01b70c8>] (platform_driver_register+0x0/0x60) from [<c001d478>] (vpif_init+0x14/0x1c)
[<c001d464>] (vpif_init+0x0/0x1c) from [<c002c3a4>] (do_one_initcall+0x64/0x1c4)
[<c002c340>] (do_one_initcall+0x0/0x1c4) from [<c0008480>] (kernel_init+0xa8/0x12c)
r7:00000000 r6:00000000 r5:00000000 r4:c002440c
[<c00083d8>] (kernel_init+0x0/0x12c) from [<c0044470>] (do_exit+0x0/0x6b4)
r5:00000000 r4:00000000
why? what should I do?
Thanks very much!