Getting Camera OV8856 to work on SC20 Linux

We have a custom design, using the OV8856 camera module. But we have trouble in taking a snapshot from the camera in Linux.

We made adjustments to the code to include the OV8856 in the linux SDK (it was already there for android)

When our board boots we see the following,

" [ 17.242242] ov8856_f8v05a probe succeeded "
So our module is detected by the kernel and the IO seems also okay.

When running “camera-test” or “mm-qcamera-app” we get the following error;

[ 41.587806] WARNING: CPU: 3 PID: 3229 at /opt/SC20_Linux_R09_r00320.1/poky/build/tmp-glibc/work-shared/msm8909/kernel-source/drivers/clk/msm/clock-local2.c:233 rcg_clk_enable+0x34/0x98()

[ 41.604363] Attempting to prepare csi1_clk_src before setting its rate. Set the rate first!
[ 41.612694] Modules linked in: wlan(O)
[ 41.616433] CPU: 3 PID: 3229 Comm: mct_pipe_start Tainted: G O 3.18.71 #2
[ 41.624259] [] (unwind_backtrace) from [] (show_stack+0x10/0x14)
[ 41.631978] [] (show_stack) from [] (dump_stack+0x74/0x90)
[ 41.639184] [] (dump_stack) from [] (warn_slowpath_common+0x64/0x88)
[ 41.647255] [] (warn_slowpath_common) from [] (warn_slowpath_fmt+0x2c/0x3c)
[ 41.655934] [] (warn_slowpath_fmt) from [] (rcg_clk_enable+0x34/0x98)
[ 41.664094] [] (rcg_clk_enable) from [] (clk_enable+0x150/0x1d0)
[ 41.671819] [] (clk_enable) from [] (clk_enable+0x88/0x1d0)
[ 41.679114] [] (clk_enable) from [] (msm_camera_clk_enable+0x160/0x26c)
[ 41.687448] [] (msm_camera_clk_enable) from [] (msm_csiphy_subdev_ioctl+0x330/0x1240)
[ 41.696994] [] (msm_csiphy_subdev_ioctl) from [] (subdev_do_ioctl+0xb0/0xb74)
[ 41.705847] [] (subdev_do_ioctl) from [] (video_usercopy+0x308/0x654)
[ 41.714007] [] (video_usercopy) from [] (v4l2_ioctl+0x5c/0x110)
[ 41.721647] [] (v4l2_ioctl) from [] (do_vfs_ioctl+0x88/0x684)
[ 41.729110] [] (do_vfs_ioctl) from [] (SyS_ioctl+0x4c/0x70)
[ 41.736401] [] (SyS_ioctl) from [] (ret_fast_syscall+0x0/0x44)

What we want to do is to take a snapshot and save it as RAW or JPEG. Any idea what is wrong?

“We made adjustments to the code to include the OV8856 in the linux SDK (it was already there for android)” how you made that:?

We created the automake include based on the android files. For the ov8856_f8v05a only the android build file exists.