bool use_module_check;
bool running_rear_camera;
bool running_front_camera;
+ bool fimc_is_companion_opened;
};
extern struct device *fimc_is_dev;
else
core = container_of(video, struct fimc_is_core, video_3a1);
+ if (!core->fimc_is_companion_opened) {
+ pr_info("%s: /dev/video109 (companion) must be opened first\n",
+ __func__);
+ return -EINVAL;
+ }
+
ret = open_vctx(file, video, &vctx, FRAMEMGR_ID_3AA_GRP, FRAMEMGR_ID_3AAP);
if (ret) {
err("open_vctx is fail(%d)", ret);
else
core = container_of(video, struct fimc_is_core, video_3a1c);
+ if (!core->fimc_is_companion_opened) {
+ pr_info("%s: /dev/video109 (companion) must be opened first\n",
+ __func__);
+ return -EINVAL;
+ }
+
ret = open_vctx(file, video, &vctx, FRAMEMGR_ID_INVALID, FRAMEMGR_ID_3AAC);
if (ret) {
err("open_vctx is fail(%d)", ret);
#include "fimc-is-device-companion.h"
#include "fimc-is-video.h"
+#include "fimc-is-core.h"
const struct v4l2_file_operations fimc_is_comp_video_fops;
const struct v4l2_ioctl_ops fimc_is_comp_video_ioctl_ops;
struct fimc_is_video_ctx *vctx;
struct fimc_is_device_companion *device;
struct platform_device *fimc_is_pdev;
+ struct fimc_is_core *core;
fimc_is_pdev = to_platform_device(fimc_is_dev);
exynos_fimc_is_cfg_cam_clk(fimc_is_pdev);
vctx = NULL;
video = video_drvdata(file);
device = container_of(video, struct fimc_is_device_companion, video);
+ core = device->private_data;
ret = open_vctx(file, video, &vctx, FRAMEMGR_ID_INVALID, FRAMEMGR_ID_INVALID);
if (ret) {
goto p_err;
}
+ core->fimc_is_companion_opened = 1;
p_err:
return ret;
}
struct fimc_is_video *video = NULL;
struct fimc_is_video_ctx *vctx = NULL;
struct fimc_is_device_companion *device = NULL;
+ struct fimc_is_core *core;
BUG_ON(!file);
video = video_drvdata(file);
device = container_of(video, struct fimc_is_device_companion, video);
+ core = device->private_data;
vctx = file->private_data;
if (!vctx) {
err("close_vctx is fail(%d)", ret);
p_err:
+ core->fimc_is_companion_opened = 0;
return ret;
}
video = video_drvdata(file);
core = container_of(video, struct fimc_is_core, video_isp);
+ if (!core->fimc_is_companion_opened) {
+ pr_info("%s: /dev/video109 (companion) must be opened first\n",
+ __func__);
+ return -EINVAL;
+ }
+
ret = open_vctx(file, video, &vctx, FRAMEMGR_ID_ISP_GRP, FRAMEMGR_ID_INVALID);
if (ret) {
err("open_vctx is fail(%d)", ret);
video = video_drvdata(file);
core = container_of(video, struct fimc_is_core, video_scc);
+ if (!core->fimc_is_companion_opened) {
+ pr_info("%s: /dev/video109 (companion) must be opened first\n",
+ __func__);
+ return -EINVAL;
+ }
+
ret = open_vctx(file, video, &vctx, FRAMEMGR_ID_INVALID, FRAMEMGR_ID_SCC);
if (ret) {
err("open_vctx is fail(%d)", ret);
video = video_drvdata(file);
core = container_of(video, struct fimc_is_core, video_scp);
+ if (!core->fimc_is_companion_opened) {
+ pr_info("%s: /dev/video109 (companion) must be opened first\n",
+ __func__);
+ return -EINVAL;
+ }
+
ret = open_vctx(file, video, &vctx, FRAMEMGR_ID_INVALID, FRAMEMGR_ID_SCP);
if (ret) {
err("open_vctx is fail(%d)", ret);
struct fimc_is_video *video;
struct fimc_is_video_ctx *vctx;
struct fimc_is_device_sensor *device;
+ struct platform_device *fimc_is_pdev;
+ struct fimc_is_core *core;
+
+ fimc_is_pdev = to_platform_device(fimc_is_dev);
+ core = dev_get_drvdata(fimc_is_dev);
vctx = NULL;
video = video_drvdata(file);
device = container_of(video, struct fimc_is_device_sensor, video);
+ if (!core->fimc_is_companion_opened) {
+ pr_info("%s: /dev/video109 (companion) must be opened first\n",
+ __func__);
+ return -EINVAL;
+ }
+
ret = open_vctx(file, video, &vctx, FRAMEMGR_ID_INVALID, FRAMEMGR_ID_SENSOR);
if (ret) {
err("open_vctx is fail(%d)", ret);
video = video_drvdata(file);
core = container_of(video, struct fimc_is_core, video_vdc);
+ if (!core->fimc_is_companion_opened) {
+ pr_info("%s: /dev/video109 (companion) must be opened first\n",
+ __func__);
+ return -EINVAL;
+ }
+
ret = open_vctx(file, video, &vctx, FRAMEMGR_ID_INVALID, FRAMEMGR_ID_DIS);
if (ret) {
err("open_vctx is fail(%d)", ret);
video = video_drvdata(file);
core = container_of(video, struct fimc_is_core, video_vdo);
+ if (!core->fimc_is_companion_opened) {
+ pr_info("%s: /dev/video109 (companion) must be opened first\n",
+ __func__);
+ return -EINVAL;
+ }
+
ret = open_vctx(file, video, &vctx, FRAMEMGR_ID_DIS_GRP, FRAMEMGR_ID_INVALID);
if (ret) {
err("open_vctx is fail(%d)", ret);