int fimc_is_video_probe(struct fimc_is_video *video, void *core_data, char *video_name, u32 video_number, struct mutex *lock, const struct v4l2_file_operations *fops, const struct v4l2_ioctl_ops *ioctl_ops) { int ret = 0; struct fimc_is_core *core = core_data; vref_init(video); mutex_init(&video->lock); snprintf(video->vd.name, sizeof(video->vd.name), "%s", video_name); video->id = video_number; video->core = core; video->vb2 = core->mem.vb2; video->vd.fops = fops; video->vd.ioctl_ops = ioctl_ops; video->vd.v4l2_dev = &core->mdev->v4l2_dev; video->vd.minor = -1; video->vd.release = video_device_release; video->vd.lock = lock; video_set_drvdata(&video->vd, core); ret = video_register_device(&video->vd, VFL_TYPE_GRABBER, (EXYNOS_VIDEONODE_FIMC_IS + video_number)); if (ret) { err("Failed to register video device"); goto p_err; } video->pads.flags = MEDIA_PAD_FL_SINK; ret = media_entity_init(&video->vd.entity, 1, &video->pads, 0); if (ret) { err("Failed to media_entity_init ScalerP video device\n"); goto p_err; } p_err: return ret; }
int fimc_is_video_probe(struct fimc_is_video *video, char *video_name, u32 video_number, u32 vfl_dir, struct fimc_is_mem *mem, struct v4l2_device *v4l2_dev, struct mutex *lock, const struct v4l2_file_operations *fops, const struct v4l2_ioctl_ops *ioctl_ops) { int ret = 0; u32 video_id; vref_init(video); mutex_init(&video->lock); snprintf(video->vd.name, sizeof(video->vd.name), "%s", video_name); video->id = video_number; video->vb2 = mem->vb2; video->alloc_ctx = mem->alloc_ctx; #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) video->vd.vfl_dir = vfl_dir; #endif video->vd.v4l2_dev = v4l2_dev; video->vd.fops = fops; video->vd.ioctl_ops = ioctl_ops; video->vd.minor = -1; video->vd.release = video_device_release; video->vd.lock = lock; video_set_drvdata(&video->vd, video); video_id = EXYNOS_VIDEONODE_FIMC_IS + video_number; ret = video_register_device(&video->vd, VFL_TYPE_GRABBER, (EXYNOS_VIDEONODE_FIMC_IS + video_number)); if (ret) { err("Failed to register video device"); goto p_err; } p_err: info("[VID] %s(%d) is created\n", video_name, video_id); return ret; }