コード例 #1
0
int fimc_is_i1c_video_probe(void *data)
{
	int ret = 0;
	struct fimc_is_core *core;
	struct fimc_is_video *video;

	BUG_ON(!data);

	core = (struct fimc_is_core *)data;
	video = &core->video_i1c;
	video->resourcemgr = &core->resourcemgr;

	if (!core->pdev) {
		probe_err("pdev is NULL");
		ret = -EINVAL;
		goto p_err;
	}

	ret = fimc_is_video_probe(video,
		FIMC_IS_VIDEO_IXC_NAME(1),
		FIMC_IS_VIDEO_I1C_NUM,
		VFL_DIR_RX,
		&core->resourcemgr.mem,
		&core->v4l2_dev,
		&fimc_is_ixc_video_fops,
		&fimc_is_ixc_video_ioctl_ops);
	if (ret)
		dev_err(&core->pdev->dev, "%s is fail(%d)\n", __func__, ret);

p_err:
	return ret;
}
コード例 #2
0
int fimc_is_vdo_video_probe(void *data)
{
	int ret = 0;
	struct fimc_is_core *core;
	struct fimc_is_video *video;

	BUG_ON(!data);

	core = (struct fimc_is_core *)data;
	video = &core->video_vdo;

	if (!core->pdev) {
		err("pdev is NULL");
		ret = -EINVAL;
		goto p_err;
	}

	ret = fimc_is_video_probe(video,
		FIMC_IS_VIDEO_VDO_NAME,
		FIMC_IS_VIDEO_VDO_NUM,
		VFL_DIR_TX,
		&core->mem,
		&core->v4l2_dev,
		&video->lock,
		&fimc_is_vdo_video_fops,
		&fimc_is_vdo_video_ioctl_ops);
	if (ret)
		dev_err(&core->pdev->dev, "%s is fail(%d)\n", __func__, ret);

p_err:
	info("[VDO:V:X] %s(%d)\n", __func__, ret);
	return ret;
}
コード例 #3
0
int fimc_is_scp_video_probe(void *data)
{
	int ret = 0;
	struct fimc_is_core *core = (struct fimc_is_core *)data;
	struct fimc_is_video *video = &core->video_scp;

	ret = fimc_is_video_probe(video,
		data,
		FIMC_IS_VIDEO_SCP_NAME,
		FIMC_IS_VIDEO_SCP_NUM,
		&video->lock,
		&fimc_is_scp_video_fops,
		&fimc_is_scp_video_ioctl_ops);

	if (ret != 0)
		dev_err(&(core->pdev->dev),
		"%s::Failed to fimc_is_video_probe()\n", __func__);

	return ret;
}
コード例 #4
0
int fimc_is_sensor_video_probe(void *data)
{
	int ret = 0;
	struct fimc_is_core *core = (struct fimc_is_core *)data;
	struct fimc_is_video_sensor *video = &core->video_sensor;

	dbg_sensor("%s\n", __func__);

	ret = fimc_is_video_probe(&video->common,
		data,
		video,
		FIMC_IS_VIDEO_BAYER_NAME,
		FIMC_IS_VIDEO_NUM_BAYER,
		V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE,
		&fimc_is_bayer_video_fops,
		&fimc_is_bayer_video_ioctl_ops,
		&fimc_is_bayer_qops);

	return ret;
}
コード例 #5
0
ファイル: fimc-is-video-scc.c プロジェクト: hedongjie/m35x
int fimc_is_scc_video_probe(void *core_data)
{
	int ret = 0;
	struct fimc_is_core *core = (struct fimc_is_core *)core_data;
	struct fimc_is_video_scc *video = &core->video_scc;

	dbg_scc("%s\n", __func__);

	ret = fimc_is_video_probe(&video->common,
		core_data,
		FIMC_IS_VIDEO_SCALERC_NAME,
		FIMC_IS_VIDEO_NUM_SCALERC,
		&fimc_is_scc_video_fops,
		&fimc_is_scc_video_ioctl_ops);

	if (ret != 0)
		dev_err(&(core->pdev->dev),
			"%s::Failed to fimc_is_video_probe()\n", __func__);

	return ret;
}
コード例 #6
0
int fimc_is_ss1_video_probe(void *data)
{
	int ret = 0;
	struct fimc_is_core *core = (struct fimc_is_core *)data;
	struct fimc_is_video *video = &core->video_ss1;

	dbg_sensor("%s\n", __func__);

	ret = fimc_is_video_probe(video,
		data,
		FIMC_IS_VIDEO_SEN1_NAME,
		FIMC_IS_VIDEO_SS1_NUM,
		VFL_DIR_RX,
		&video->lock,
		&fimc_is_ss1_video_fops,
		&fimc_is_ss1_video_ioctl_ops);

	if (ret != 0)
		dev_err(&(core->pdev->dev),
		"%s::Failed to fimc_is_video_probe()\n", __func__);

	return ret;
}
コード例 #7
0
int fimc_is_sen_video_probe(void *data)
{
	int ret = 0;
	char name[255];
	u32 number;
	struct fimc_is_device_sensor *device;
	struct fimc_is_video *video;

	BUG_ON(!data);

	device = (struct fimc_is_device_sensor *)data;
	video = &device->video;
	snprintf(name, sizeof(name), "%s%d", FIMC_IS_VIDEO_SENSOR_NAME, device->instance);
	number = FIMC_IS_VIDEO_SS0_NUM + device->instance;

	if (!device->pdev) {
		err("pdev is NULL");
		ret = -EINVAL;
		goto p_err;
	}

	ret = fimc_is_video_probe(video,
		name,
		number,
		VFL_DIR_RX,
		&device->mem,
		&device->v4l2_dev,
		&video->lock,
		&fimc_is_sen_video_fops,
		&fimc_is_sen_video_ioctl_ops);
	if (ret)
		dev_err(&device->pdev->dev, "%s is fail(%d)\n", __func__, ret);

p_err:
	return ret;
}
コード例 #8
0
int fimc_is_comp_video_probe(void *data)
{
	int ret = 0;
	char name[255];
	u32 number;
	struct fimc_is_device_companion *device;
	struct fimc_is_video *video;

	BUG_ON(!data);

	device = (struct fimc_is_device_companion *)data;
	video = &device->video;
	video->resourcemgr = device->resourcemgr;
	snprintf(name, sizeof(name), "%s%d", FIMC_IS_VIDEO_SSX_NAME, 8);
	number = FIMC_IS_VIDEO_SS0_NUM + 8;

	if (!device->pdev) {
		err("pdev is NULL");
		ret = -EINVAL;
		goto p_err;
	}

	ret = fimc_is_video_probe(video,
		name,
		number,
		VFL_DIR_RX,
		&device->mem,
		&device->v4l2_dev,
		&fimc_is_comp_video_fops,
		&fimc_is_comp_video_ioctl_ops);
	if (ret)
		dev_err(&device->pdev->dev, "%s is fail(%d)\n", __func__, ret);

p_err:
	return ret;
}
コード例 #9
0
int fimc_is_ssx_video_probe(void *data)
{
	int ret = 0;
	struct fimc_is_device_sensor *device;
	struct fimc_is_video *video;
	char name[30];
	u32 instance;

	BUG_ON(!data);

	device = (struct fimc_is_device_sensor *)data;
	instance = device->instance;
	video = &device->video;
	video->resourcemgr = device->resourcemgr;
	snprintf(name, sizeof(name), "%s%d", FIMC_IS_VIDEO_SSX_NAME, instance);

	if (!device->pdev) {
		err("pdev is NULL");
		ret = -EINVAL;
		goto p_err;
	}

	ret = fimc_is_video_probe(video,
		name,
		FIMC_IS_VIDEO_SS0_NUM + instance,
		VFL_DIR_RX,
		&device->mem,
		&device->v4l2_dev,
		&fimc_is_ssx_video_fops,
		&fimc_is_ssx_video_ioctl_ops);
	if (ret)
		dev_err(&device->pdev->dev, "%s is fail(%d)\n", __func__, ret);

p_err:
	return ret;
}