您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ v4l2_info函数代码示例

51自学网 2021-06-03 09:29:51
  C++
这篇教程C++ v4l2_info函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中v4l2_info函数的典型用法代码示例。如果您正苦于以下问题:C++ v4l2_info函数的具体用法?C++ v4l2_info怎么用?C++ v4l2_info使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了v4l2_info函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: g2d_release

static int g2d_release(struct file *file){	struct g2d_dev *dev = video_drvdata(file);	struct g2d_ctx *ctx = fh2ctx(file->private_data);	v4l2_ctrl_handler_free(&ctx->ctrl_handler);	v4l2_fh_del(&ctx->fh);	v4l2_fh_exit(&ctx->fh);	kfree(ctx);	v4l2_info(&dev->v4l2_dev, "instance closed/n");	return 0;}
开发者ID:BozkurTR,项目名称:kernel,代码行数:12,


示例2: rtrack_init

static int __init rtrack_init(void){	struct rtrack *rt = &rtrack_card;	struct v4l2_device *v4l2_dev = &rt->v4l2_dev;	int res;	strlcpy(v4l2_dev->name, "rtrack", sizeof(v4l2_dev->name));	rt->io = io;	if (rt->io == -1) {		v4l2_err(v4l2_dev, "you must set an I/O address with io=0x20f or 0x30f/n");		return -EINVAL;	}	if (!request_region(rt->io, 2, "rtrack")) {		v4l2_err(v4l2_dev, "port 0x%x already in use/n", rt->io);		return -EBUSY;	}	res = v4l2_device_register(NULL, v4l2_dev);	if (res < 0) {		release_region(rt->io, 2);		v4l2_err(v4l2_dev, "could not register v4l2_device/n");		return res;	}	strlcpy(rt->vdev.name, v4l2_dev->name, sizeof(rt->vdev.name));	rt->vdev.v4l2_dev = v4l2_dev;	rt->vdev.fops = &rtrack_fops;	rt->vdev.ioctl_ops = &rtrack_ioctl_ops;	rt->vdev.release = video_device_release_empty;	video_set_drvdata(&rt->vdev, rt);	if (video_register_device(&rt->vdev, VFL_TYPE_RADIO, radio_nr) < 0) {		v4l2_device_unregister(&rt->v4l2_dev);		release_region(rt->io, 2);		return -EINVAL;	}	v4l2_info(v4l2_dev, "AIMSlab RadioTrack/RadioReveal card driver./n");	/* Set up the I/O locking */	mutex_init(&rt->lock);	/* mute card - prevents noisy bootups */	/* this ensures that the volume is all the way down  */	outb(0x48, rt->io);		/* volume down but still "on"	*/	msleep(2000);	/* make sure it's totally down	*/	outb(0xc0, rt->io);		/* steady volume, mute card	*/	return 0;}
开发者ID:1703011,项目名称:asuswrt-merlin,代码行数:53,


示例3: imx_vdic_remove

static int imx_vdic_remove(struct platform_device *pdev){	struct v4l2_subdev *sd = platform_get_drvdata(pdev);	struct vdic_priv *priv = v4l2_get_subdevdata(sd);	v4l2_info(sd, "Removing/n");	v4l2_async_unregister_subdev(sd);	mutex_destroy(&priv->lock);	media_entity_cleanup(&sd->entity);	return 0;}
开发者ID:avagin,项目名称:linux,代码行数:13,


示例4: vpfe_disable_clock

static void vpfe_disable_clock(struct vpfe_device *vpfe_dev){	struct vpfe_config *vpfe_cfg = vpfe_dev->cfg;	int i;	for (i = 0; i < vpfe_cfg->num_clocks; i++) {		clk_disable(vpfe_dev->clks[i]);		clk_put(vpfe_dev->clks[i]);	}	kzfree(vpfe_dev->clks);	v4l2_info(vpfe_dev->pdev->driver, "vpfe capture clocks disabled/n");}
开发者ID:jmw7912,项目名称:wat-0016-kernel-2.6.37,代码行数:13,


示例5: radio_isa_common_remove

static int radio_isa_common_remove(struct radio_isa_card *isa,				   unsigned region_size){	const struct radio_isa_ops *ops = isa->drv->ops;	ops->s_mute_volume(isa, true, isa->volume ? isa->volume->cur.val : 0);	video_unregister_device(&isa->vdev);	v4l2_ctrl_handler_free(&isa->hdl);	v4l2_device_unregister(&isa->v4l2_dev);	release_region(isa->io, region_size);	v4l2_info(&isa->v4l2_dev, "Removed radio card %s/n", isa->drv->card);	kfree(isa);	return 0;}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:14,


示例6: imx_ic_remove

static int imx_ic_remove(struct platform_device *pdev){	struct v4l2_subdev *sd = platform_get_drvdata(pdev);	struct imx_ic_priv *priv = container_of(sd, struct imx_ic_priv, sd);	v4l2_info(sd, "Removing/n");	ic_ops[priv->task_id]->remove(priv);	v4l2_async_unregister_subdev(sd);	media_entity_cleanup(&sd->entity);	return 0;}
开发者ID:avagin,项目名称:linux,代码行数:14,


示例7: __fimc_md_create_fimc_links

/** * __fimc_md_create_fimc_links - create links to all FIMC entities * @fmd: fimc media device * @source: the source entity to create links to all fimc entities from * @sensor: sensor subdev linked to FIMC[fimc_id] entity, may be null * @pad: the source entity pad index * @fimc_id: index of the fimc device for which link should be enabled */static int __fimc_md_create_fimc_links(struct fimc_md *fmd,				       struct media_entity *source,				       struct v4l2_subdev *sensor,				       int pad, int fimc_id){	struct fimc_sensor_info *s_info;	struct media_entity *sink;	unsigned int flags;	int ret, i;	for (i = 0; i < FIMC_MAX_DEVS; i++) {		if (!fmd->fimc[i])			break;		/*		 * Some FIMC variants are not fitted with camera capture		 * interface. Skip creating a link from sensor for those.		 */		if (sensor->grp_id == SENSOR_GROUP_ID &&		    !fmd->fimc[i]->variant->has_cam_if)			continue;		flags = (i == fimc_id) ? MEDIA_LNK_FL_ENABLED : 0;		sink = &fmd->fimc[i]->vid_cap.subdev->entity;		ret = media_entity_create_link(source, pad, sink,					      FIMC_SD_PAD_SINK, flags);		if (ret)			return ret;		/* Notify FIMC capture subdev entity */		ret = media_entity_call(sink, link_setup, &sink->pads[0],					&source->pads[pad], flags);		if (ret)			break;		v4l2_info(&fmd->v4l2_dev, "created link [%s] %c> [%s]",			  source->name, flags ? '=' : '-', sink->name);		if (flags == 0)			continue;		s_info = v4l2_get_subdev_hostdata(sensor);		if (!WARN_ON(s_info == NULL)) {			unsigned long irq_flags;			spin_lock_irqsave(&fmd->slock, irq_flags);			s_info->host = fmd->fimc[i];			spin_unlock_irqrestore(&fmd->slock, irq_flags);		}	}	return 0;}
开发者ID:openube,项目名称:android_kernel_sony_c2305,代码行数:57,


示例8: g2d_remove

static int g2d_remove(struct platform_device *pdev){	struct g2d_dev *dev = platform_get_drvdata(pdev);	v4l2_info(&dev->v4l2_dev, "Removing " G2D_NAME);	v4l2_m2m_release(dev->m2m_dev);	video_unregister_device(dev->vfd);	v4l2_device_unregister(&dev->v4l2_dev);	vb2_dma_contig_cleanup_ctx(dev->alloc_ctx);	clk_unprepare(dev->gate);	clk_put(dev->gate);	clk_unprepare(dev->clk);	clk_put(dev->clk);	return 0;}
开发者ID:7799,项目名称:linux,代码行数:15,


示例9: vpfe_remove

/* * vpfe_remove : It un-registers device from V4L2 driver */static int vpfe_remove(struct platform_device *pdev){	struct vpfe_device *vpfe_dev = platform_get_drvdata(pdev);	v4l2_info(pdev->dev.driver, "vpfe_remove/n");	kzfree(vpfe_dev->sd);	vpfe_detach_irq(vpfe_dev);	vpfe_unregister_entities(vpfe_dev);	vpfe_cleanup_modules(vpfe_dev, pdev);	v4l2_device_unregister(&vpfe_dev->v4l2_dev);	vpfe_disable_clock(vpfe_dev);	kzfree(vpfe_dev);	return 0;}
开发者ID:jmw7912,项目名称:wat-0016-kernel-2.6.37,代码行数:18,


示例10: mt9v011_probe

static int mt9v011_probe(struct i2c_client *c,			 const struct i2c_device_id *id){	u16 version;	struct mt9v011 *core;	struct v4l2_subdev *sd;	/* Check if the adapter supports the needed features */	if (!i2c_check_functionality(c->adapter,	     I2C_FUNC_SMBUS_READ_BYTE | I2C_FUNC_SMBUS_WRITE_BYTE_DATA))		return -EIO;	core = kzalloc(sizeof(struct mt9v011), GFP_KERNEL);	if (!core)		return -ENOMEM;	sd = &core->sd;	v4l2_i2c_subdev_init(sd, c, &mt9v011_ops);	/* Check if the sensor is really a MT9V011 */	version = mt9v011_read(sd, R00_MT9V011_CHIP_VERSION);	if ((version != MT9V011_VERSION) &&	    (version != MT9V011_REV_B_VERSION)) {		v4l2_info(sd, "*** unknown micron chip detected (0x%04x)./n",			  version);		kfree(core);		return -EINVAL;	}	core->global_gain = 0x0024;	core->exposure = 0x01fc;	core->width  = 640;	core->height = 480;	core->xtal = 27000000;	/* Hz */	if (c->dev.platform_data) {		struct mt9v011_platform_data *pdata = c->dev.platform_data;		core->xtal = pdata->xtal;		v4l2_dbg(1, debug, sd, "xtal set to %d.%03d MHz/n",			core->xtal / 1000000, (core->xtal / 1000) % 1000);	}	v4l_info(c, "chip found @ 0x%02x (%s - chip version 0x%04x)/n",		 c->addr << 1, c->adapter->name, version);	return 0;}
开发者ID:125radheyshyam,项目名称:linux,代码行数:48,


示例11: imx_media_remove

static int imx_media_remove(struct platform_device *pdev){	struct imx_media_dev *imxmd =		(struct imx_media_dev *)platform_get_drvdata(pdev);	v4l2_info(&imxmd->v4l2_dev, "Removing imx-media/n");	v4l2_async_notifier_unregister(&imxmd->notifier);	imx_media_unregister_ipu_internal_subdevs(imxmd);	v4l2_async_notifier_cleanup(&imxmd->notifier);	media_device_unregister(&imxmd->md);	v4l2_device_unregister(&imxmd->v4l2_dev);	media_device_cleanup(&imxmd->md);	return 0;}
开发者ID:grate-driver,项目名称:linux,代码行数:16,


示例12: rvin_v4l2_register

int rvin_v4l2_register(struct rvin_dev *vin){	struct video_device *vdev = &vin->vdev;	int ret;	vin->v4l2_dev.notify = rvin_notify;	/* video node */	vdev->v4l2_dev = &vin->v4l2_dev;	vdev->queue = &vin->queue;	snprintf(vdev->name, sizeof(vdev->name), "VIN%u output", vin->id);	vdev->release = video_device_release_empty;	vdev->lock = &vin->lock;	vdev->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |		V4L2_CAP_READWRITE;	/* Set a default format */	vin->format.pixelformat	= RVIN_DEFAULT_FORMAT;	vin->format.width = RVIN_DEFAULT_WIDTH;	vin->format.height = RVIN_DEFAULT_HEIGHT;	vin->format.field = RVIN_DEFAULT_FIELD;	vin->format.colorspace = RVIN_DEFAULT_COLORSPACE;	if (vin->info->use_mc) {		vdev->fops = &rvin_mc_fops;		vdev->ioctl_ops = &rvin_mc_ioctl_ops;	} else {		vdev->fops = &rvin_fops;		vdev->ioctl_ops = &rvin_ioctl_ops;		rvin_reset_format(vin);	}	rvin_format_align(vin, &vin->format);	ret = video_register_device(&vin->vdev, VFL_TYPE_GRABBER, -1);	if (ret) {		vin_err(vin, "Failed to register video device/n");		return ret;	}	video_set_drvdata(&vin->vdev, vin);	v4l2_info(&vin->v4l2_dev, "Device registered as %s/n",		  video_device_node_name(&vin->vdev));	return ret;}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:47,


示例13: rtrack2_init

static int __init rtrack2_init(void){	struct rtrack2 *dev = &rtrack2_card;	struct v4l2_device *v4l2_dev = &dev->v4l2_dev;	int res;	strlcpy(v4l2_dev->name, "rtrack2", sizeof(v4l2_dev->name));	dev->io = io;	if (dev->io == -1) {		v4l2_err(v4l2_dev, "You must set an I/O address with io=0x20c or io=0x30c/n");		return -EINVAL;	}	if (!request_region(dev->io, 4, "rtrack2")) {		v4l2_err(v4l2_dev, "port 0x%x already in use/n", dev->io);		return -EBUSY;	}	res = v4l2_device_register(NULL, v4l2_dev);	if (res < 0) {		release_region(dev->io, 4);		v4l2_err(v4l2_dev, "Could not register v4l2_device/n");		return res;	}	strlcpy(dev->vdev.name, v4l2_dev->name, sizeof(dev->vdev.name));	dev->vdev.v4l2_dev = v4l2_dev;	dev->vdev.fops = &rtrack2_fops;	dev->vdev.ioctl_ops = &rtrack2_ioctl_ops;	dev->vdev.release = video_device_release_empty;	video_set_drvdata(&dev->vdev, dev);	mutex_init(&dev->lock);	if (video_register_device(&dev->vdev, VFL_TYPE_RADIO, radio_nr) < 0) {		v4l2_device_unregister(v4l2_dev);		release_region(dev->io, 4);		return -EINVAL;	}	v4l2_info(v4l2_dev, "AIMSlab Radiotrack II card driver./n");		outb(1, dev->io);	dev->muted = 1;	return 0;}
开发者ID:Malpa73,项目名称:FeraLab_GB_Firmware--archive,代码行数:46,


示例14: mdev_probe

static int __devinit mdev_probe(struct platform_device *pdev){	struct v4l2_device *v4l2_dev;	struct exynos_md *mdev;	int ret;	mdev = kzalloc(sizeof(struct exynos_md), GFP_KERNEL);	if (!mdev)		return -ENOMEM;	mdev->id = pdev->id;	mdev->pdev = pdev;	spin_lock_init(&mdev->slock);	snprintf(mdev->media_dev.model, sizeof(mdev->media_dev.model), "%s%d",		 dev_name(&pdev->dev), mdev->id);	mdev->media_dev.dev = &pdev->dev;	v4l2_dev = &mdev->v4l2_dev;	v4l2_dev->mdev = &mdev->media_dev;	snprintf(v4l2_dev->name, sizeof(v4l2_dev->name), "%s",		 dev_name(&pdev->dev));	ret = v4l2_device_register(&pdev->dev, &mdev->v4l2_dev);	if (ret < 0) {		v4l2_err(v4l2_dev, "Failed to register v4l2_device: %d/n", ret);		goto err_v4l2_reg;	}	ret = media_device_register(&mdev->media_dev);	if (ret < 0) {		v4l2_err(v4l2_dev, "Failed to register media device: %d/n", ret);		goto err_mdev_reg;	}	platform_set_drvdata(pdev, mdev);	v4l2_info(v4l2_dev, "Media%d[0x%08x] was registered successfully/n",		  mdev->id, (unsigned int)mdev);	return 0;err_mdev_reg:	v4l2_device_unregister(&mdev->v4l2_dev);err_v4l2_reg:	kfree(mdev);	return ret;}
开发者ID:hedongjie,项目名称:m35x,代码行数:46,


示例15: rockchip_vpu_video_device_register

static int rockchip_vpu_video_device_register(struct rockchip_vpu_dev *vpu){	const struct of_device_id *match;	struct video_device *vfd;	int function, ret;	match = of_match_node(of_rockchip_vpu_match, vpu->dev->of_node);	vfd = video_device_alloc();	if (!vfd) {		v4l2_err(&vpu->v4l2_dev, "Failed to allocate video device/n");		return -ENOMEM;	}	vfd->fops = &rockchip_vpu_fops;	vfd->release = video_device_release;	vfd->lock = &vpu->vpu_mutex;	vfd->v4l2_dev = &vpu->v4l2_dev;	vfd->vfl_dir = VFL_DIR_M2M;	vfd->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_M2M_MPLANE;	vfd->ioctl_ops = &rockchip_vpu_enc_ioctl_ops;	snprintf(vfd->name, sizeof(vfd->name), "%s-enc", match->compatible);	vpu->vfd_enc = vfd;	video_set_drvdata(vfd, vpu);	ret = video_register_device(vfd, VFL_TYPE_GRABBER, 0);	if (ret) {		v4l2_err(&vpu->v4l2_dev, "Failed to register video device/n");		goto err_free_dev;	}	v4l2_info(&vpu->v4l2_dev, "registered as /dev/video%d/n", vfd->num);	function = MEDIA_ENT_F_PROC_VIDEO_ENCODER;	ret = v4l2_m2m_register_media_controller(vpu->m2m_dev, vfd, function);	if (ret) {		v4l2_err(&vpu->v4l2_dev, "Failed to init mem2mem media controller/n");		goto err_unreg_video;	}	return 0;err_unreg_video:	video_unregister_device(vfd);err_free_dev:	video_device_release(vfd);	return ret;}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:45,


示例16: imx_media_subdev_bound

/* async subdev bound notifier */static int imx_media_subdev_bound(struct v4l2_async_notifier *notifier,				  struct v4l2_subdev *sd,				  struct v4l2_async_subdev *asd){	struct imx_media_dev *imxmd = notifier2dev(notifier);	int ret;	if (sd->grp_id & IMX_MEDIA_GRP_ID_IPU_CSI) {		/* register the IPU internal subdevs */		ret = imx_media_register_ipu_internal_subdevs(imxmd, sd);		if (ret)			return ret;	}	v4l2_info(&imxmd->v4l2_dev, "subdev %s bound/n", sd->name);	return 0;}
开发者ID:grate-driver,项目名称:linux,代码行数:19,


示例17: fimc_register_m2m_device

int fimc_register_m2m_device(struct fimc_dev *fimc,                             struct v4l2_device *v4l2_dev){    struct video_device *vfd = &fimc->m2m.vfd;    int ret;    fimc->v4l2_dev = v4l2_dev;    memset(vfd, 0, sizeof(*vfd));    vfd->fops = &fimc_m2m_fops;    vfd->ioctl_ops = &fimc_m2m_ioctl_ops;    vfd->v4l2_dev = v4l2_dev;    vfd->minor = -1;    vfd->release = video_device_release_empty;    vfd->lock = &fimc->lock;    vfd->vfl_dir = VFL_DIR_M2M;    snprintf(vfd->name, sizeof(vfd->name), "fimc.%d.m2m", fimc->id);    video_set_drvdata(vfd, fimc);    fimc->m2m.m2m_dev = v4l2_m2m_init(&m2m_ops);    if (IS_ERR(fimc->m2m.m2m_dev)) {        v4l2_err(v4l2_dev, "failed to initialize v4l2-m2m device/n");        return PTR_ERR(fimc->m2m.m2m_dev);    }    ret = media_entity_init(&vfd->entity, 0, NULL, 0);    if (ret)        goto err_me;    ret = video_register_device(vfd, VFL_TYPE_GRABBER, -1);    if (ret)        goto err_vd;    v4l2_info(v4l2_dev, "Registered %s as /dev/%s/n",              vfd->name, video_device_node_name(vfd));    return 0;err_vd:    media_entity_cleanup(&vfd->entity);err_me:    v4l2_m2m_release(fimc->m2m.m2m_dev);    return ret;}
开发者ID:Niisp,项目名称:MT6795.kernel,代码行数:44,


示例18: stk1160_video_register

int stk1160_video_register(struct stk1160 *dev){	int rc;	/* Initialize video_device with a template structure */	dev->vdev = v4l_template;	dev->vdev.debug = vidioc_debug;	dev->vdev.queue = &dev->vb_vidq;	/*	 * Provide mutexes for v4l2 core and for videobuf2 queue.	 * It will be used to protect *only* v4l2 ioctls.	 */	dev->vdev.lock = &dev->v4l_lock;	dev->vdev.queue->lock = &dev->vb_queue_lock;	/* This will be used to set video_device parent */	dev->vdev.v4l2_dev = &dev->v4l2_dev;	set_bit(V4L2_FL_USE_FH_PRIO, &dev->vdev.flags);	/* NTSC is default */	dev->norm = V4L2_STD_NTSC_M;	dev->width = 720;	dev->height = 480;	/* set default format */	dev->fmt = &format[0];	stk1160_set_std(dev);	v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_std,			dev->norm);	video_set_drvdata(&dev->vdev, dev);	rc = video_register_device(&dev->vdev, VFL_TYPE_GRABBER, -1);	if (rc < 0) {		stk1160_err("video_register_device failed (%d)/n", rc);		return rc;	}	v4l2_info(&dev->v4l2_dev, "V4L2 device registered as %s/n",		  video_device_node_name(&dev->vdev));	return 0;}
开发者ID:cyberphox,项目名称:monoev3kernel,代码行数:44,


示例19: rockchip_vpu_remove

static int rockchip_vpu_remove(struct platform_device *pdev){	struct rockchip_vpu_dev *vpu = platform_get_drvdata(pdev);	v4l2_info(&vpu->v4l2_dev, "Removing %s/n", pdev->name);	media_device_unregister(&vpu->mdev);	v4l2_m2m_unregister_media_controller(vpu->m2m_dev);	v4l2_m2m_release(vpu->m2m_dev);	media_device_cleanup(&vpu->mdev);	if (vpu->vfd_enc) {		video_unregister_device(vpu->vfd_enc);		video_device_release(vpu->vfd_enc);	}	v4l2_device_unregister(&vpu->v4l2_dev);	clk_bulk_unprepare(vpu->variant->num_clocks, vpu->clocks);	pm_runtime_disable(vpu->dev);	return 0;}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:19,


示例20: m5mols_s_power

/** * m5mols_s_power - Main sensor power control function * * To prevent breaking the lens when the sensor is powered off the Soft-Landing * algorithm is called where available. The Soft-Landing algorithm availability * dependends on the firmware provider. */static int m5mols_s_power(struct v4l2_subdev *sd, int on){	struct m5mols_info *info = to_m5mols(sd);	int ret;	if (on) {		ret = m5mols_sensor_power(info, true);		if (!ret)			ret = m5mols_sensor_armboot(sd);		if (!ret)			ret = m5mols_init_controls(info);		if (ret)			return ret;		info->ffmt[M5MOLS_RESTYPE_MONITOR] =			m5mols_default_ffmt[M5MOLS_RESTYPE_MONITOR];		info->ffmt[M5MOLS_RESTYPE_CAPTURE] =			m5mols_default_ffmt[M5MOLS_RESTYPE_CAPTURE];		return ret;	}	if (is_manufacturer(info, REG_SAMSUNG_TECHWIN)) {		ret = m5mols_mode(info, REG_MONITOR);		if (!ret)			ret = m5mols_write(sd, AF_EXECUTE, REG_AF_STOP);		if (!ret)			ret = m5mols_write(sd, AF_MODE, REG_AF_POWEROFF);		if (!ret)			ret = m5mols_busy(sd, CAT_SYSTEM, CAT0_STATUS,					REG_AF_IDLE);		if (!ret)			v4l2_info(sd, "Success soft-landing lens/n");	}	ret = m5mols_sensor_power(info, false);	if (!ret) {		v4l2_ctrl_handler_free(&info->handle);		info->ctrl_sync = false;	}	return ret;}
开发者ID:303750856,项目名称:linux-3.1,代码行数:49,


示例21: s5c73m3_spi_probe

static int s5c73m3_spi_probe(struct spi_device *spi){	int r;	struct s5c73m3 *state = container_of(spi->dev.driver, struct s5c73m3,					     spidrv.driver);	spi->bits_per_word = 32;	r = spi_setup(spi);	if (r < 0) {		dev_err(&spi->dev, "spi_setup() failed/n");		return r;	}	mutex_lock(&state->lock);	state->spi_dev = spi;	mutex_unlock(&state->lock);	v4l2_info(&state->sensor_sd, "S5C73M3 SPI probed successfully/n");	return 0;}
开发者ID:03199618,项目名称:linux,代码行数:20,


示例22: i2c_get_adapter

/* * Sensor subdevice helper functions */static struct v4l2_subdev *fimc_md_register_sensor(struct fimc_md *fmd,				   struct fimc_sensor_info *s_info){	struct i2c_adapter *adapter;	struct v4l2_subdev *sd = NULL;	if (!s_info || !fmd)		return NULL;	if(s_info->pdata->use_isp)	{		fmd->fimc[0]->is_s5k6a3 = true;		fmd->fimc[1]->is_s5k6a3 = true;		return fmd->fimc_is_subdev;	}	adapter = i2c_get_adapter(s_info->pdata->i2c_bus_num);	if (!adapter) {		v4l2_warn(&fmd->v4l2_dev,			  "Failed to get I2C adapter %d, deferring probe/n",			  s_info->pdata->i2c_bus_num);		return ERR_PTR(-EPROBE_DEFER);	}	sd = v4l2_i2c_new_subdev_board(&fmd->v4l2_dev, adapter,				       s_info->pdata->board_info, NULL);	if (IS_ERR_OR_NULL(sd)) {		i2c_put_adapter(adapter);		v4l2_warn(&fmd->v4l2_dev,			  "Failed to acquire subdev %s, deferring probe/n",			  s_info->pdata->board_info->type);		return ERR_PTR(-EPROBE_DEFER);	}	v4l2_set_subdev_hostdata(sd, s_info);	sd->grp_id = SENSOR_GROUP_ID;	v4l2_info(&fmd->v4l2_dev, "Registered sensor subdevice %s/n",		  s_info->pdata->board_info->type);	fmd->fimc[0]->is_m5mo = true;	fmd->fimc[1]->is_m5mo = true;	return sd;}
开发者ID:dedzt16,项目名称:dedzt16,代码行数:43,


示例23: g2d_open

static int g2d_open(struct file *file){	struct g2d_dev *dev = video_drvdata(file);	struct g2d_ctx *ctx = NULL;	int ret = 0;	ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);	if (!ctx)		return -ENOMEM;	ctx->dev = dev;	/* Set default formats */	ctx->in		= def_frame;	ctx->out	= def_frame;	if (mutex_lock_interruptible(&dev->mutex)) {		kfree(ctx);		return -ERESTARTSYS;	}	ctx->fh.m2m_ctx = v4l2_m2m_ctx_init(dev->m2m_dev, ctx, &queue_init);	if (IS_ERR(ctx->fh.m2m_ctx)) {		ret = PTR_ERR(ctx->fh.m2m_ctx);		mutex_unlock(&dev->mutex);		kfree(ctx);		return ret;	}	v4l2_fh_init(&ctx->fh, video_devdata(file));	file->private_data = &ctx->fh;	v4l2_fh_add(&ctx->fh);	g2d_setup_ctrls(ctx);	/* Write the default values to the ctx struct */	v4l2_ctrl_handler_setup(&ctx->ctrl_handler);	ctx->fh.ctrl_handler = &ctx->ctrl_handler;	mutex_unlock(&dev->mutex);	v4l2_info(&dev->v4l2_dev, "instance opened/n");	return 0;}
开发者ID:7799,项目名称:linux,代码行数:40,


示例24: queue_setup

/* * Videobuf2 operations */static int queue_setup(struct vb2_queue *vq,#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 4, 0)			const struct v4l2_format *v4l2_fmt,#else			const void *parg,#endif			unsigned int *nbuffers, unsigned int *nplanes,			unsigned int sizes[], void *alloc_ctxs[]){	struct smi2021 *smi2021 = vb2_get_drv_priv(vq);	*nbuffers = clamp_t(unsigned int, *nbuffers, 4, 16);	sizes[0] = SMI2021_BYTES_PER_LINE * smi2021->cur_height;	/* This means a packed colorformat */	*nplanes = 1;	v4l2_info(&smi2021->v4l2_dev, "%s: buffer count %d, each %d bytes/n",				__func__, *nbuffers, sizes[0]);	return 0;}
开发者ID:kylemanna,项目名称:smi2021,代码行数:25,


示例25: csis_register_callback

static int csis_register_callback(struct device *dev, void *p){	struct v4l2_subdev *sd = dev_get_drvdata(dev);	struct platform_device *pdev;	struct fimc_md *fmd = p;	int id, ret;	if (!sd)		return 0;	pdev = v4l2_get_subdevdata(sd);	if (!pdev || pdev->id < 0 || pdev->id >= CSIS_MAX_ENTITIES)		return 0;	v4l2_info(sd, "csis%d sd: %s/n", pdev->id, sd->name);	id = pdev->id < 0 ? 0 : pdev->id;	fmd->csis[id].sd = sd;	sd->grp_id = CSIS_GROUP_ID;	ret = v4l2_device_register_subdev(&fmd->v4l2_dev, sd);	if (ret)		v4l2_err(&fmd->v4l2_dev,			 "Failed to register CSIS subdevice: %d/n", ret);	return ret;}
开发者ID:openube,项目名称:android_kernel_sony_c2305,代码行数:23,


示例26: si4713_checkrev

/* * si4713_checkrev - Checks if we are treating a device with the correct rev. * @sdev: si4713_device structure for the device we are communicating */static int si4713_checkrev(struct si4713_device *sdev){	struct i2c_client *client = v4l2_get_subdevdata(&sdev->sd);	int rval;	u8 resp[SI4713_GETREV_NRESP];	rval = si4713_send_command(sdev, SI4713_CMD_GET_REV,					NULL, 0,					resp, ARRAY_SIZE(resp),					DEFAULT_TIMEOUT);	if (rval < 0)		return rval;	if (resp[1] == SI4713_PRODUCT_NUMBER) {		v4l2_info(&sdev->sd, "chip found @ 0x%02x (%s)/n",				client->addr << 1, client->adapter->name);	} else {		v4l2_err(&sdev->sd, "Invalid product number/n");		rval = -EINVAL;	}	return rval;}
开发者ID:03199618,项目名称:linux,代码行数:27,


示例27: i2c_get_adapter

static struct v4l2_subdev *fimc_subdev_register(struct fimc_dev *fimc,        struct s5p_fimc_isp_info *isp_info){    struct i2c_adapter *i2c_adap;    struct fimc_vid_cap *vid_cap = &fimc->vid_cap;    struct v4l2_subdev *sd = NULL;    i2c_adap = i2c_get_adapter(isp_info->i2c_bus_num);    if (!i2c_adap)        return ERR_PTR(-ENOMEM);    sd = v4l2_i2c_new_subdev_board(&vid_cap->v4l2_dev, i2c_adap,                                   isp_info->board_info, NULL);    if (!sd) {        v4l2_err(&vid_cap->v4l2_dev, "failed to acquire subdev/n");        return NULL;    }    v4l2_info(&vid_cap->v4l2_dev, "subdevice %s registered successfuly/n",              isp_info->board_info->type);    return sd;}
开发者ID:jerem,项目名称:hi35xx-buildroot,代码行数:23,


示例28: i2c_get_adapter

/* * Sensor subdevice helper functions */static struct v4l2_subdev *fimc_md_register_sensor(struct fimc_md *fmd,						struct fimc_source_info *si){	struct i2c_adapter *adapter;	struct v4l2_subdev *sd = NULL;	if (!si || !fmd)		return NULL;	/*	 * If FIMC bus type is not Writeback FIFO assume it is same	 * as sensor_bus_type.	 */	si->fimc_bus_type = si->sensor_bus_type;	adapter = i2c_get_adapter(si->i2c_bus_num);	if (!adapter) {		v4l2_warn(&fmd->v4l2_dev,			  "Failed to get I2C adapter %d, deferring probe/n",			  si->i2c_bus_num);		return ERR_PTR(-EPROBE_DEFER);	}	sd = v4l2_i2c_new_subdev_board(&fmd->v4l2_dev, adapter,						si->board_info, NULL);	if (IS_ERR_OR_NULL(sd)) {		i2c_put_adapter(adapter);		v4l2_warn(&fmd->v4l2_dev,			  "Failed to acquire subdev %s, deferring probe/n",			  si->board_info->type);		return ERR_PTR(-EPROBE_DEFER);	}	v4l2_set_subdev_hostdata(sd, si);	sd->grp_id = GRP_ID_SENSOR;	v4l2_info(&fmd->v4l2_dev, "Registered sensor subdevice %s/n",		  sd->name);	return sd;}
开发者ID:garyvan,项目名称:openwrt-1.6,代码行数:40,


示例29: vivid_fop_release

static int vivid_fop_release(struct file *file){	struct vivid_dev *dev = video_drvdata(file);	struct video_device *vdev = video_devdata(file);	mutex_lock(&dev->mutex);	if (!no_error_inj && v4l2_fh_is_singular_file(file) &&	    !video_is_registered(vdev) && vivid_is_last_user(dev)) {		/*		 * I am the last user of this driver, and a disconnect		 * was forced (since this video_device is unregistered),		 * so re-register all video_device's again.		 */		v4l2_info(&dev->v4l2_dev, "reconnect/n");		set_bit(V4L2_FL_REGISTERED, &dev->vid_cap_dev.flags);		set_bit(V4L2_FL_REGISTERED, &dev->vid_out_dev.flags);		set_bit(V4L2_FL_REGISTERED, &dev->vbi_cap_dev.flags);		set_bit(V4L2_FL_REGISTERED, &dev->vbi_out_dev.flags);		set_bit(V4L2_FL_REGISTERED, &dev->sdr_cap_dev.flags);		set_bit(V4L2_FL_REGISTERED, &dev->radio_rx_dev.flags);		set_bit(V4L2_FL_REGISTERED, &dev->radio_tx_dev.flags);	}	mutex_unlock(&dev->mutex);	if (file->private_data == dev->overlay_cap_owner)		dev->overlay_cap_owner = NULL;	if (file->private_data == dev->radio_rx_rds_owner) {		dev->radio_rx_rds_last_block = 0;		dev->radio_rx_rds_owner = NULL;	}	if (file->private_data == dev->radio_tx_rds_owner) {		dev->radio_tx_rds_last_block = 0;		dev->radio_tx_rds_owner = NULL;	}	if (vdev->queue)		return vb2_fop_release(file);	return v4l2_fh_release(file);}
开发者ID:keeper,项目名称:backports,代码行数:37,


示例30: vivid_user_gen_s_ctrl

static int vivid_user_gen_s_ctrl(struct v4l2_ctrl *ctrl){	struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_user_gen);	switch (ctrl->id) {	case VIVID_CID_DISCONNECT:		v4l2_info(&dev->v4l2_dev, "disconnect/n");		clear_bit(V4L2_FL_REGISTERED, &dev->vid_cap_dev.flags);		clear_bit(V4L2_FL_REGISTERED, &dev->vid_out_dev.flags);		clear_bit(V4L2_FL_REGISTERED, &dev->vbi_cap_dev.flags);		clear_bit(V4L2_FL_REGISTERED, &dev->vbi_out_dev.flags);		clear_bit(V4L2_FL_REGISTERED, &dev->sdr_cap_dev.flags);		clear_bit(V4L2_FL_REGISTERED, &dev->radio_rx_dev.flags);		clear_bit(V4L2_FL_REGISTERED, &dev->radio_tx_dev.flags);		break;	case VIVID_CID_CLEAR_FB:		vivid_clear_fb(dev);		break;	case VIVID_CID_BUTTON:		dev->button_pressed = 30;		break;	}	return 0;}
开发者ID:383530895,项目名称:linux,代码行数:24,



注:本文中的v4l2_info函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ v4l2_ioctl函数代码示例
C++ v4l2_i2c_subdev_init函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。