From: Neil MacMunn <neil@gumstix.com>
To: linux-media@vger.kernel.org
Subject: Re: omap3-isp segfault
Date: Wed, 26 Jan 2011 17:43:15 -0800 [thread overview]
Message-ID: <4D40CDB3.7090106@gumstix.com> (raw)
In-Reply-To: <4D4076C3.4080201@gumstix.com>
Ok I solved the segfault problem by updating some of my v4l2 files
(specifically v4l2-common.c). Now I only get nice sounding console messages.
Linux media interface: v0.10
Linux video capture interface: v2.00
omap3isp omap3isp: Revision 2.0 found
omap-iommu omap-iommu.0: isp: version 1.1
omap3isp omap3isp: hist: DMA channel = 4
mt9v032 3-005c: Probing MT9V032 at address 0x5c
omap3isp omap3isp: isp_set_xclk(): cam_xclka set to 28800000 Hz
omap3isp omap3isp: isp_set_xclk(): cam_xclka set to 0 Hz
mt9v032 3-005c: MT9V032 detected at address 0x5c
And a bunch of devices.
# ls /dev
...
v4l-subdev0
v4l-subdev1
v4l-subdev2
v4l-subdev3
v4l-subdev4
v4l-subdev5
v4l-subdev6
v4l-subdev7
v4l-subdev8
...
video0
video1
video2
video3
video4
video5
video6
...
But don't know how to start the camera. How can I test the module?
Neil
On 11-01-26 11:32 AM, Neil MacMunn wrote:
> Hello,
>
> When I modprobe omap3-isp I get a segfault. I'm attempting to use a
> Gumstix Overo with Micron MT9V032.
>
> root@overo:~# modprobe omap3-isp
> Linux media interface: v0.10
> Linux video capture interface: v2.00
> omap3isp omap3isp: Revision 2.0 found
> Unable to handle kernel NULL pointer dereference at virtual address
> 00000004
> pgd = cd4b0000
> [00000004] *pgd=8e77b031, *pte=00000000, *ppte=00000000
> Internal error: Oops: 17 [#1]
> last sysfs file: /sys/devices/virtual/net/lo/type
> Modules linked in: omap3_isp(+) v4l2_common videodev v4l1_compat
> media iovmm ipv6 libertas_sdio libertas lib80211 option usb_wwan
> ads7846 usbserial iommu
> CPU: 0 Not tainted (2.6.36+ #9)
> PC is at iommu_get+0x74/0x108 [iommu]
> LR is at iommu_get+0x78/0x108 [iommu]
> pc : [<bf0009fc>] lr : [<bf000a00>] psr: 20000013
> sp : ced33db0 ip : 22222222 fp : bf100bb8
> r10: cdf48000 r9 : c0580938 r8 : 00000001
> r7 : 000003ff r6 : ce78f218 r5 : 00000000 r4 : ce78f200
> r3 : 00000000 r2 : ffffffd0 r1 : 22222222 r0 : ce78f200
> Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
> Control: 10c5387d Table: 8d4b0019 DAC: 00000015
> Process modprobe (pid: 1327, stack limit = 0xced322f0)
> Stack: (0xced33db0 to 0xced34000)
> 3da0: 0000000e 00000000 cdf48000
> bf0f46a4
> 3dc0: 00000001 c01096c4 ce54e848 c0580940 00000000 ce6347c0 cec54a58
> 00000000
> 3de0: bf102adc c0580940 c0580940 bf102adc bf102adc c05a10d0 ced33f64
> 00000000
> 3e00: ced32000 c023d49c bf102adc c023c4dc ced33f64 c0580940 c0580974
> bf102adc
> 3e20: ced33e38 c023c624 00000000 c023c5c4 bf102adc c023bcdc cec21cf8
> cec4f5f0
> 3e40: c05a10d0 00000000 bf102adc bf102adc ce6347c0 c023b5b4 bf101bdb
> cec02b88
> 3e60: cec02b80 00000000 00000018 bf102adc bf104974 bf10c000 00000000
> c023c944
> 3e80: 00000000 00000018 00000000 bf104974 bf10c000 c00353c0 00000198
> d12c0000
> 3ea0: 00000000 00000018 00000000 00000000 00000018 00000000 bf104974
> 00000000
> 3ec0: ced33f7c c0085860 00000000 00000000 cdc95c9c ced33f70 01a960e8
> bf104980
> 3ee0: 000003dd d13fa11c d12c0000 00197522 d13f98fc d13f96e0 d1454c9c
> cdd08000
> 3f00: 00011abc 00014b2c 00000000 00000000 00000034 00000035 0000001a
> 0000001e
> 3f20: 00000011 00000000 6e72656b 00006c65 00000000 00000000 00000000
> 00000000
> 3f40: 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> 00000000
> 3f60: 00000000 00000000 00000000 bf102174 00000003 00000000 00000000
> c053b028
> 3f80: 00000073 00009720 00000000 00000000 00000080 c0036044 ced32000
> 01a96090
> 3fa0: 00000000 c0035ec0 00009720 00000000 40296000 00197522 01a960e8
> 01a960e8
> 3fc0: 00009720 00000000 00000000 00000080 00000000 01a9609c 01a96090
> 00000000
> 3fe0: 01a96120 beb95924 0000b180 40232084 60000010 40296000 00000000
> 00000000
> [<bf0009fc>] (iommu_get+0x74/0x108 [iommu]) from [<bf0f46a4>]
> (isp_probe+0x258/0x9f0 [omap3_isp])
> [<bf0f46a4>] (isp_probe+0x258/0x9f0 [omap3_isp]) from [<c023d49c>]
> (platform_drv_probe+0x1c/0x24)
> [<c023d49c>] (platform_drv_probe+0x1c/0x24) from [<c023c4dc>]
> (driver_probe_device+0xcc/0x1b4)
> [<c023c4dc>] (driver_probe_device+0xcc/0x1b4) from [<c023c624>]
> (__driver_attach+0x60/0x84)
> [<c023c624>] (__driver_attach+0x60/0x84) from [<c023bcdc>]
> (bus_for_each_dev+0x4c/0x8c)
> [<c023bcdc>] (bus_for_each_dev+0x4c/0x8c) from [<c023b5b4>]
> (bus_add_driver+0xa0/0x21c)
> [<c023b5b4>] (bus_add_driver+0xa0/0x21c) from [<c023c944>]
> (driver_register+0xbc/0x148)
> [<c023c944>] (driver_register+0xbc/0x148) from [<c00353c0>]
> (do_one_initcall+0xc8/0x194)
> [<c00353c0>] (do_one_initcall+0xc8/0x194) from [<c0085860>]
> (sys_init_module+0x13f8/0x15bc)
> [<c0085860>] (sys_init_module+0x13f8/0x15bc) from [<c0035ec0>]
> (ret_fast_syscall+0x0/0x30)
> Code: e59f3098 e1a00004 e5933000 e1a0e00f (e593f004)
> ---[ end trace 7243c66244fbd250 ]---
> overo Internal error: Oops: 17 [#1]
> overo last sysfs file: /sys/devices/virtual/net/lo/type
> overo Process modprobe (pid: 1327, stack limit = 0xced322f0)
> overo Stack: (0xced33db0 to 0xced34000)
> overo 3da0: 0000000e 00000000
> cdf48000 bf0f46a4
> overo 3dc0: 00000001 c01096c4 ce54e848 c0580940 00000000 ce6347c0
> cec54a58 00000000
> overo 3de0: bf102adc c0580940 c0580940 bf102adc bf102adc c05a10d0
> ced33f64 00000000
> overo 3e00: ced32000 c023d49c bf102adc c023c4dc ced33f64 c0580940
> c0580974 bf102adc
> overo 3e20: ced33e38 c023c624 00000000 c023c5c4 bf102adc c023bcdc
> cec21cf8 cec4f5f0
> overo 3e40: c05a10d0 00000000 bf102adc bf102adc ce6347c0 c023b5b4
> bf101bdb cec02b88
> overo 3e60: cec02b80 00000000 00000018 bf102adc bf104974 bf10c000
> 00000000 c023c944
> overo 3e80: 00000000 00000018 00000000 bf104974 bf10c000 c00353c0
> 00000198 d12c0000
> overo 3ea0: 00000000 00000018 00000000 00000000 00000018 00000000
> bf104974 00000000
> overo 3ec0: ced33f7c c0085860 00000000 00000000 cdc95c9c ced33f70
> 01a960e8 bf104980
> overo 3ee0: 000003dd d13fa11c d12c0000 00197522 d13f98fc d13f96e0
> d1454c9c cdd08000
> overo 3f00: 00011abc 00014b2c 00000000 00000000 00000034 00000035
> 0000001a 0000001e
> overo 3f20: 00000011 00000000 6e72656b 00006c65 00000000 00000000
> 00000000 00000000
> overo 3f40: 00000000 00000000 00000000 00000000 00000000 00000000
> 00000000 00000000
> overo 3f60: 00000000 00000000 00000000 bf102174 00000003 00000000
> 00000000 c053b028
> overo 3f80: 00000073 00009720 00000000 00000000 00000080 c0036044
> ced32000 01a96090
> overo 3fa0: 00000000 c0035ec0 00009720 00000000 40296000 00197522
> 01a960e8 01a960e8
> overo 3fc0: 00009720 00000000 00000000 00000080 00000000 01a9609c
> 01a96090 00000000
> overo 3fe0: 01a96120 beb95924 0000b180 40232084 60000010 40296000
> 00000000 00000000
> overo Code: e59f3098 e1a00004 e5933000 e1a0e00f (e593f004)
> Segmentation fault
>
>
> My ISP and MT9V032 code come from
> http://git.linuxtv.org/pinchartl/media.git?a=shortlog;h=refs/heads/media-0006-sensors
> and my board-overo.c (based on board-rx51.c) contains:
>
> ...
> static int __init overo_i2c_init(void)
> {
> omap_register_i2c_bus(1, 2600, overo_i2c_boardinfo,
> ARRAY_SIZE(overo_i2c_boardinfo));
> /* i2c2 pins are used for gpio */
> omap_register_i2c_bus(3, 400, NULL, 0);
> return 0;
> }
> ...
> #include <media/mt9v032.h>
> #include "devices.h"
> #include "../../../drivers/media/video/isp/isp.h"
> #include "../../../drivers/media/video/isp/ispreg.h"
>
> #define MT9V032_I2C_BUS_NUM (0x03)
> #define MT9V032_I2C_ADDR (0x5C)
> #define MT9V032_XCLK (0x00)
>
> static void mt9v032_set_clock(struct v4l2_subdev *subdev, unsigned
> int rate)
> {
> struct isp_device *isp =
> v4l2_dev_to_isp_device(subdev->v4l2_dev);
>
> isp->platform_cb.set_xclk(isp, rate, MT9V032_XCLK);
> }
>
> static struct mt9v032_platform_data mt9v032_platform_data = {
> .clk_pol = 0,
> .set_clock = mt9v032_set_clock,
> };
>
> static struct i2c_board_info mt9v032_i2c_board_info[] = {
> {
> I2C_BOARD_INFO("mt9v032", MT9V032_I2C_ADDR),
> .platform_data = &mt9v032_platform_data,
> },
> };
>
> static struct isp_subdev_i2c_board_info pixhawk_camera_subdevs[] = {
> {
> .board_info = &mt9v032_i2c_board_info[0],
> .i2c_adapter_id = MT9V032_I2C_BUS_NUM,
> },
> { NULL, 0, },
> };
>
> static struct isp_v4l2_subdevs_group pixhawk_camera_subdevs_group[]
> = {
> {
> .subdevs = pixhawk_camera_subdevs,
> .interface = ISP_INTERFACE_PARALLEL,
> .bus = { .parallel = {
> .data_lane_shift = 0,
> .clk_pol = 1,
> .bridge = ISPCTRL_PAR_BRIDGE_DISABLE,
> } },
> },
> { NULL, 0, },
> };
>
> static struct isp_platform_data isp_platform_data = {
> .subdevs = pixhawk_camera_subdevs_group,
> };
>
> static void __init overo_init(void)
> {
> overo_i2c_init();
> if (omap3_init_camera(&isp_platform_data) < 0)
> printk(KERN_WARNING "%s: Unable to register camera platform "
> "device\n", __func__);
> ...
>
>
> I've had this hardware working with older kernels but I'm trying to
> make the conversion to the subdev api and a better driver (thanks
> Laurent!). Anyone know what might be going on? This is my first
> linux-media post so if I've commited any faux pas please let me know.
> Thanks!
>
> Neil
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2011-01-27 1:44 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-26 19:32 omap3-isp segfault Neil MacMunn
2011-01-27 1:43 ` Neil MacMunn [this message]
2011-01-27 12:25 ` Laurent Pinchart
2011-01-27 12:28 ` Laurent Pinchart
2011-01-27 22:44 ` Neil MacMunn
2011-01-28 22:19 ` Eino-Ville Talvala
2011-02-01 12:53 ` Teemu Tuominen
2011-02-04 22:33 ` Neil MacMunn
[not found] ` <4D4C7E24.6000004@gumstix.com>
2011-02-09 23:44 ` Laurent Pinchart
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D40CDB3.7090106@gumstix.com \
--to=neil@gumstix.com \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox