OMAP 3530 ISP driver segfaults

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello ISP driver developers,

after the lastest pull of branch 'devel' of
git://gitorious.org/maemo-multimedia/omap3isp-rx51 I get a segfault
when I register my ISP_device.
The segfault happens in isp.c in line
     isp->iommu = iommu_get("isp");

I noticed that with the new kernel the module iommu is loaded
automatically after booting while it wasn't in before my pull (my old
pull is about 3 days old).
Tell me what kind of further info you need. Btw, I run an Igepv2.

Thank you,

 Bastian



Here is the dmesg output since init:

[   62.589965] Freeing init memory: 128K
[   71.526092] omap-iommu omap-iommu.0: isp registered
[  106.695953] net eth0: SMSC911x/921x identified at 0xe0808000, IRQ: 336
[  148.803588] Linux media interface: v0.10
[  149.751892] Linux video capture interface: v2.00
[  155.912719] address of isp_platform_data in boardconfig: bf058074
[  155.919219] address of isp_platform_data bf058074
[  155.932434] omap3isp omap3isp: Revision 2.0 found
[  155.940673] Unable to handle kernel NULL pointer dereference at
virtual address 00000004
[  155.948852] pgd = dedb8000
[  155.951599] [00000004] *pgd=9fffa031, *pte=00000000, *ppte=00000000
[  155.957977] Internal error: Oops: 17 [#1]
[  155.962036] last sysfs file: /sys/module/iommu/initstate
[  155.967407] Modules linked in: board_bastix(+) omap3_isp
v4l2_common videodev media iovmm iommu
[  155.976257] CPU: 0    Not tainted  (2.6.35+ #4)
[  155.980834] PC is at iommu_get+0x70/0x108 [iommu]
[  155.985595] LR is at clk_enable+0x38/0x4c
[  155.989654] pc : [<bf000bf8>]    lr : [<c0037920>]    psr: 20000013
[  155.989654] sp : deeefe68  ip : 22222222  fp : 00000000
[  156.001220] r10: decf8014  r9 : c03d3760  r8 : 00000000
[  156.006500] r7 : 000007ff  r6 : dfe6be18  r5 : c03d3758  r4 : dfe6be00
[  156.013092] r3 : 00000000  r2 : 22222222  r1 : c03d8b64  r0 : dfe6be00
[  156.019683] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[  156.026855] Control: 10c5387d  Table: 9edb8019  DAC: 00000015
[  156.032653] Process insmod (pid: 1877, stack limit = 0xdeeee2f0)
[  156.038726] Stack: (0xdeeefe68 to 0xdeef0000)
[  156.043121] fe60:                   decf8000 c03d3758 0000000f
bf0333dc 00000000 00000001
[  156.051391] fe80: 00000000 00000000 dee13ba8 00000000 c03d3768
c03d3760 c03d3760 00000000
[  156.059631] fea0: bf045314 c0028fc4 00000000 00000000 00000000
c019bd50 c019bd3c c019af30
[  156.067901] fec0: c019bdec c03d3760 c019b064 00000000 00000000
c019a548 dfc04b08 dfcf2774
[  156.076141] fee0: c03d3794 c03d3760 c03f7770 c019b118 00000001
c03d3760 c03d3768 c019a3b8
[  156.084411] ff00: c03d3760 c0198ff0 deeeff40 c03d3768 c03d3768
00000000 00000000 c015e050
[  156.092651] ff20: c03d3758 c03d3758 00000010 000001c0 00014154
c0028fc4 deeee000 00013008
[  156.100921] ff40: 00000000 c019c15c 00000000 bf05b000 00000000
00000000 00014154 c0028330
[  156.109161] ff60: bf0580c4 00000000 00013008 00014154 c0028fc4
bf0580c4 00000000 00013008
[  156.117431] ff80: 00014154 c006c948 00013018 00014154 00013008
4000e93c 00020000 00000003
[  156.125701] ffa0: 00000080 c0028e40 4000e93c 00020000 00013018
00014154 00013008 00000001
[  156.133941] ffc0: 4000e93c 00020000 00000003 00000080 be989a2b
00000000 00013008 00000000
[  156.142211] ffe0: 00013018 be9897ac 000090d8 400fa194 20000010
00013018 c00c0000 3300000c
[  156.150543] [<bf000bf8>] (iommu_get+0x70/0x108 [iommu]) from
[<bf0333dc>] (isp_probe+0x2e8/0xbe4 [omap3_isp])
[  156.160583] [<bf0333dc>] (isp_probe+0x2e8/0xbe4 [omap3_isp]) from
[<c019bd50>] (platform_drv_probe+0x14/0x18)
[  156.170623] [<c019bd50>] (platform_drv_probe+0x14/0x18) from
[<c019af30>] (driver_probe_device+0xa8/0x158)
[  156.180358] [<c019af30>] (driver_probe_device+0xa8/0x158) from
[<c019a548>] (bus_for_each_drv+0x48/0x80)
[  156.189941] [<c019a548>] (bus_for_each_drv+0x48/0x80) from
[<c019b118>] (device_attach+0x50/0x68)
[  156.198913] [<c019b118>] (device_attach+0x50/0x68) from
[<c019a3b8>] (bus_probe_device+0x24/0x40)
[  156.207855] [<c019a3b8>] (bus_probe_device+0x24/0x40) from
[<c0198ff0>] (device_add+0x308/0x46c)
[  156.216735] [<c0198ff0>] (device_add+0x308/0x46c) from [<c019c15c>]
(platform_device_add+0x104/0x160)
[  156.226043] [<c019c15c>] (platform_device_add+0x104/0x160) from
[<c0028330>] (do_one_initcall+0x58/0x1b4)
[  156.235717] [<c0028330>] (do_one_initcall+0x58/0x1b4) from
[<c006c948>] (sys_init_module+0x90/0x1a4)
[  156.244964] [<c006c948>] (sys_init_module+0x90/0x1a4) from
[<c0028e40>] (ret_fast_syscall+0x0/0x30)




My board specific code:

//  IGEP CAM BUS NUM
#define BASTIX_CAM_I2C_BUS_NUM          2

static int __init cam_init(void)
{
        return 0;
}

static struct mt9t001_platform_data bastix_mt9p031_platform_data = {
        .clk_pol        = 0,
};


static struct i2c_board_info bastix_camera_i2c_devices[] = {
        {
                I2C_BOARD_INFO(MT9P031_NAME, MT9P031_I2C_ADDR),
                .platform_data = &bastix_mt9p031_platform_data,
        },
};

static struct v4l2_subdev_i2c_board_info bastix_camera_mt9p031[] = {
        {
                .board_info = &bastix_camera_i2c_devices[0],
                .i2c_adapter_id = BASTIX_CAM_I2C_BUS_NUM,
        },
        { NULL, 0, },
};

static struct isp_v4l2_subdevs_group bastix_camera_subdevs[] = {
        {
                .subdevs = bastix_camera_mt9p031,
                .interface = ISP_INTERFACE_PARALLEL,
                .bus = { .parallel = {
                       .data_lane_shift        = 1,
                       .clk_pol                = 1,
                       .bridge                 = ISPCTRL_PAR_BRIDGE_DISABLE,
                } },
        },
        { NULL, 0, },
};

static struct isp_platform_data bastix_isp_platform_data = {
        .subdevs = bastix_camera_subdevs,
};

static int __init bastix_camera_init(void)
{
        int err;

        printk(KERN_ALERT "address of isp_platform_data in
boardconfig: %x\n", &bastix_isp_platform_data);
        err = cam_init();
        if (err)
                return err;
        omap3isp_device.dev.platform_data = &bastix_isp_platform_data;

        return platform_device_register(&omap3isp_device);
}

static void __exit bastix_camera_exit(void)
{
        platform_device_unregister(&omap3isp_device);
}

module_init(bastix_camera_init);
module_exit(bastix_camera_exit);

MODULE_LICENSE("GPL");
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux