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

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

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

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

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

示例1: vc4_bo_cache_time_timer

static void vc4_bo_cache_time_timer(unsigned long data){	struct drm_device *dev = (struct drm_device *)data;	struct vc4_dev *vc4 = to_vc4_dev(dev);	schedule_work(&vc4->bo_cache.time_work);}
开发者ID:a2hojsjsjs,项目名称:linux,代码行数:7,


示例2: to_vc4_dev

static struct vc4_bo *vc4_bo_get_from_cache(struct drm_device *dev,					    uint32_t size){	struct vc4_dev *vc4 = to_vc4_dev(dev);	uint32_t page_index = bo_page_index(size);	struct vc4_bo *bo = NULL;	size = roundup(size, PAGE_SIZE);	mutex_lock(&vc4->bo_lock);	if (page_index >= vc4->bo_cache.size_list_size)		goto out;	if (list_empty(&vc4->bo_cache.size_list[page_index]))		goto out;	bo = list_first_entry(&vc4->bo_cache.size_list[page_index],			      struct vc4_bo, size_head);	vc4_bo_remove_from_cache(bo);	kref_init(&bo->base.base.refcount);out:	mutex_unlock(&vc4->bo_lock);	return bo;}
开发者ID:a2hojsjsjs,项目名称:linux,代码行数:25,


示例3: vc4_bo_stats_debugfs

int vc4_bo_stats_debugfs(struct seq_file *m, void *unused){	struct drm_info_node *node = (struct drm_info_node *)m->private;	struct drm_device *dev = node->minor->dev;	struct vc4_dev *vc4 = to_vc4_dev(dev);	struct vc4_bo_stats stats;	/* Take a snapshot of the current stats with the lock held. */	mutex_lock(&vc4->bo_lock);	stats = vc4->bo_stats;	mutex_unlock(&vc4->bo_lock);	seq_printf(m, "num bos allocated: %d/n",		   stats.num_allocated);	seq_printf(m, "size bos allocated: %dkb/n",		   stats.size_allocated / 1024);	seq_printf(m, "num bos used: %d/n",		   stats.num_allocated - stats.num_cached);	seq_printf(m, "size bos used: %dkb/n",		   (stats.size_allocated - stats.size_cached) / 1024);	seq_printf(m, "num bos cached: %d/n",		   stats.num_cached);	seq_printf(m, "size bos cached: %dkb/n",		   stats.size_cached / 1024);	return 0;}
开发者ID:a2hojsjsjs,项目名称:linux,代码行数:27,


示例4: vc4_fence_signaled

static bool vc4_fence_signaled(struct dma_fence *fence){	struct vc4_fence *f = to_vc4_fence(fence);	struct vc4_dev *vc4 = to_vc4_dev(f->dev);	return vc4->finished_seqno >= f->seqno;}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:7,


示例5: vc4_irq_postinstall

intvc4_irq_postinstall(struct drm_device *dev){	struct vc4_dev *vc4 = to_vc4_dev(dev);	/* Enable both the render done and out of memory interrupts. */	V3D_WRITE(V3D_INTENA, V3D_DRIVER_IRQS);	return 0;}
开发者ID:020gzh,项目名称:linux,代码行数:10,


示例6: vc4_v3d_init_hw

static void vc4_v3d_init_hw(struct drm_device *dev){	struct vc4_dev *vc4 = to_vc4_dev(dev);	/* Take all the memory that would have been reserved for user	 * QPU programs, since we don't have an interface for running	 * them, anyway.	 */	V3D_WRITE(V3D_VPMBASE, 0);}
开发者ID:SantoshShilimkar,项目名称:linux,代码行数:10,


示例7: vc4_bo_remove_from_cache

/* Must be called with bo_lock held. */static void vc4_bo_remove_from_cache(struct vc4_bo *bo){	struct drm_gem_object *obj = &bo->base.base;	struct vc4_dev *vc4 = to_vc4_dev(obj->dev);	vc4->bo_stats.num_cached--;	vc4->bo_stats.size_cached -= obj->size;	list_del(&bo->unref_head);	list_del(&bo->size_head);}
开发者ID:a2hojsjsjs,项目名称:linux,代码行数:12,


示例8: vc4_free_object

/* Called on the last userspace/kernel unreference of the BO.  Returns * it to the BO cache if possible, otherwise frees it. */void vc4_free_object(struct drm_gem_object *gem_bo){	struct drm_device *dev = gem_bo->dev;	struct vc4_dev *vc4 = to_vc4_dev(dev);	struct vc4_bo *bo = to_vc4_bo(gem_bo);	struct list_head *cache_list;	mutex_lock(&vc4->bo_lock);	/* If the object references someone else's memory, we can't cache it.	 */	if (gem_bo->import_attach) {		vc4_bo_destroy(bo);		goto out;	}	/* Don't cache if it was publicly named. */	if (gem_bo->name) {		vc4_bo_destroy(bo);		goto out;	}	/* If this object was partially constructed but CMA allocation	 * had failed, just free it.	 */	if (!bo->base.vaddr) {		vc4_bo_destroy(bo);		goto out;	}	cache_list = vc4_get_cache_list_for_size(dev, gem_bo->size);	if (!cache_list) {		vc4_bo_destroy(bo);		goto out;	}	if (bo->validated_shader) {		kfree(bo->validated_shader->texture_samples);		kfree(bo->validated_shader);		bo->validated_shader = NULL;	}	bo->free_time = jiffies;	list_add(&bo->size_head, cache_list);	list_add(&bo->unref_head, &vc4->bo_cache.time_list);	vc4->bo_stats.num_cached++;	vc4->bo_stats.size_cached += gem_bo->size;	vc4_bo_cache_free_old(dev);out:	mutex_unlock(&vc4->bo_lock);}
开发者ID:asmalldev,项目名称:linux,代码行数:56,


示例9: vc4_cancel_bin_job

static voidvc4_cancel_bin_job(struct drm_device *dev){	struct vc4_dev *vc4 = to_vc4_dev(dev);	struct vc4_exec_info *exec = vc4_first_bin_job(vc4);	if (!exec)		return;	list_move_tail(&exec->head, &vc4->bin_job_list);	vc4_submit_next_bin_job(dev);}
开发者ID:020gzh,项目名称:linux,代码行数:12,


示例10: vc4_irq_finish_bin_job

static voidvc4_irq_finish_bin_job(struct drm_device *dev){	struct vc4_dev *vc4 = to_vc4_dev(dev);	struct vc4_exec_info *exec = vc4_first_bin_job(vc4);	if (!exec)		return;	vc4_move_job_to_render(dev, exec);	vc4_submit_next_bin_job(dev);}
开发者ID:020gzh,项目名称:linux,代码行数:12,


示例11: vc4_irq_preinstall

voidvc4_irq_preinstall(struct drm_device *dev){	struct vc4_dev *vc4 = to_vc4_dev(dev);	init_waitqueue_head(&vc4->job_wait_queue);	INIT_WORK(&vc4->overflow_mem_work, vc4_overflow_mem_work);	/* Clear any pending interrupts someone might have left around	 * for us.	 */	V3D_WRITE(V3D_INTCTL, V3D_DRIVER_IRQS);}
开发者ID:020gzh,项目名称:linux,代码行数:13,


示例12: vc4_bo_cache_purge

void vc4_bo_cache_purge(struct drm_device *dev){	struct vc4_dev *vc4 = to_vc4_dev(dev);	mutex_lock(&vc4->bo_lock);	while (!list_empty(&vc4->bo_cache.time_list)) {		struct vc4_bo *bo = list_last_entry(&vc4->bo_cache.time_list,						    struct vc4_bo, unref_head);		vc4_bo_remove_from_cache(bo);		vc4_bo_destroy(bo);	}	mutex_unlock(&vc4->bo_lock);}
开发者ID:a2hojsjsjs,项目名称:linux,代码行数:13,


示例13: vc4_bo_cache_init

void vc4_bo_cache_init(struct drm_device *dev){	struct vc4_dev *vc4 = to_vc4_dev(dev);	mutex_init(&vc4->bo_lock);	INIT_LIST_HEAD(&vc4->bo_cache.time_list);	INIT_WORK(&vc4->bo_cache.time_work, vc4_bo_cache_time_work);	setup_timer(&vc4->bo_cache.time_timer,		    vc4_bo_cache_time_timer,		    (unsigned long)dev);}
开发者ID:a2hojsjsjs,项目名称:linux,代码行数:13,


示例14: vc4_irq_uninstall

voidvc4_irq_uninstall(struct drm_device *dev){	struct vc4_dev *vc4 = to_vc4_dev(dev);	/* Disable sending interrupts for our driver's IRQs. */	V3D_WRITE(V3D_INTDIS, V3D_DRIVER_IRQS);	/* Clear any pending interrupts we might have left. */	V3D_WRITE(V3D_INTCTL, V3D_DRIVER_IRQS);	cancel_work_sync(&vc4->overflow_mem_work);}
开发者ID:020gzh,项目名称:linux,代码行数:13,


示例15: vc4_get_param_ioctl

static int vc4_get_param_ioctl(struct drm_device *dev, void *data,			       struct drm_file *file_priv){	struct vc4_dev *vc4 = to_vc4_dev(dev);	struct drm_vc4_get_param *args = data;	int ret;	if (args->pad != 0)		return -EINVAL;	switch (args->param) {	case DRM_VC4_PARAM_V3D_IDENT0:		ret = pm_runtime_get_sync(&vc4->v3d->pdev->dev);		if (ret < 0)			return ret;		args->value = V3D_READ(V3D_IDENT0);		pm_runtime_mark_last_busy(&vc4->v3d->pdev->dev);		pm_runtime_put_autosuspend(&vc4->v3d->pdev->dev);		break;	case DRM_VC4_PARAM_V3D_IDENT1:		ret = pm_runtime_get_sync(&vc4->v3d->pdev->dev);		if (ret < 0)			return ret;		args->value = V3D_READ(V3D_IDENT1);		pm_runtime_mark_last_busy(&vc4->v3d->pdev->dev);		pm_runtime_put_autosuspend(&vc4->v3d->pdev->dev);		break;	case DRM_VC4_PARAM_V3D_IDENT2:		ret = pm_runtime_get_sync(&vc4->v3d->pdev->dev);		if (ret < 0)			return ret;		args->value = V3D_READ(V3D_IDENT2);		pm_runtime_mark_last_busy(&vc4->v3d->pdev->dev);		pm_runtime_put_autosuspend(&vc4->v3d->pdev->dev);		break;	case DRM_VC4_PARAM_SUPPORTS_BRANCHES:	case DRM_VC4_PARAM_SUPPORTS_ETC1:	case DRM_VC4_PARAM_SUPPORTS_THREADED_FS:	case DRM_VC4_PARAM_SUPPORTS_FIXED_RCL_ORDER:	case DRM_VC4_PARAM_SUPPORTS_MADVISE:	case DRM_VC4_PARAM_SUPPORTS_PERFMON:		args->value = true;		break;	default:		DRM_DEBUG("Unknown parameter %d/n", args->param);		return -EINVAL;	}	return 0;}
开发者ID:lumag,项目名称:linux,代码行数:50,


示例16: vc4_bo_cache_destroy

void vc4_bo_cache_destroy(struct drm_device *dev){	struct vc4_dev *vc4 = to_vc4_dev(dev);	del_timer(&vc4->bo_cache.time_timer);	cancel_work_sync(&vc4->bo_cache.time_work);	vc4_bo_cache_purge(dev);	if (vc4->bo_stats.num_allocated) {		DRM_ERROR("Destroying BO cache while BOs still allocated:/n");		vc4_bo_stats_dump(vc4);	}}
开发者ID:a2hojsjsjs,项目名称:linux,代码行数:14,


示例17: vc4_v3d_debugfs_regs

int vc4_v3d_debugfs_regs(struct seq_file *m, void *unused){	struct drm_info_node *node = (struct drm_info_node *)m->private;	struct drm_device *dev = node->minor->dev;	struct vc4_dev *vc4 = to_vc4_dev(dev);	int i;	for (i = 0; i < ARRAY_SIZE(vc4_reg_defs); i++) {		seq_printf(m, "%s (0x%04x): 0x%08x/n",			   vc4_reg_defs[i].name, vc4_reg_defs[i].reg,			   V3D_READ(vc4_reg_defs[i].reg));	}	return 0;}
开发者ID:SantoshShilimkar,项目名称:linux,代码行数:15,


示例18: vc4_bo_destroy

/* Must be called with bo_lock held. */static void vc4_bo_destroy(struct vc4_bo *bo){	struct drm_gem_object *obj = &bo->base.base;	struct vc4_dev *vc4 = to_vc4_dev(obj->dev);	if (bo->validated_shader) {		kfree(bo->validated_shader->texture_samples);		kfree(bo->validated_shader);		bo->validated_shader = NULL;	}	vc4->bo_stats.num_allocated--;	vc4->bo_stats.size_allocated -= obj->size;	drm_gem_cma_free_object(obj);}
开发者ID:a2hojsjsjs,项目名称:linux,代码行数:16,


示例19: vc4_irq_finish_render_job

static voidvc4_irq_finish_render_job(struct drm_device *dev){	struct vc4_dev *vc4 = to_vc4_dev(dev);	struct vc4_exec_info *exec = vc4_first_render_job(vc4);	if (!exec)		return;	vc4->finished_seqno++;	list_move_tail(&exec->head, &vc4->job_done_list);	vc4_submit_next_render_job(dev);	wake_up_all(&vc4->job_wait_queue);	schedule_work(&vc4->job_done_work);}
开发者ID:020gzh,项目名称:linux,代码行数:16,


示例20: vc4_v3d_bind

static int vc4_v3d_bind(struct device *dev, struct device *master, void *data){	struct platform_device *pdev = to_platform_device(dev);	struct drm_device *drm = dev_get_drvdata(master);	struct vc4_dev *vc4 = to_vc4_dev(drm);	struct vc4_v3d *v3d = NULL;	int ret;	v3d = devm_kzalloc(&pdev->dev, sizeof(*v3d), GFP_KERNEL);	if (!v3d)		return -ENOMEM;	dev_set_drvdata(dev, v3d);	v3d->pdev = pdev;	v3d->regs = vc4_ioremap_regs(pdev, 0);	if (IS_ERR(v3d->regs))		return PTR_ERR(v3d->regs);	vc4->v3d = v3d;	v3d->vc4 = vc4;	if (V3D_READ(V3D_IDENT0) != V3D_EXPECTED_IDENT0) {		DRM_ERROR("V3D_IDENT0 read 0x%08x instead of 0x%08x/n",			  V3D_READ(V3D_IDENT0), V3D_EXPECTED_IDENT0);		return -EINVAL;	}	/* Reset the binner overflow address/size at setup, to be sure	 * we don't reuse an old one.	 */	V3D_WRITE(V3D_BPOA, 0);	V3D_WRITE(V3D_BPOS, 0);	vc4_v3d_init_hw(drm);	ret = drm_irq_install(drm, platform_get_irq(pdev, 0));	if (ret) {		DRM_ERROR("Failed to install IRQ handler/n");		return ret;	}	pm_runtime_enable(dev);	return 0;}
开发者ID:BigeyeDestroyer,项目名称:linux,代码行数:47,


示例21: vc4_v3d_unbind

static void vc4_v3d_unbind(struct device *dev, struct device *master,			   void *data){	struct drm_device *drm = dev_get_drvdata(master);	struct vc4_dev *vc4 = to_vc4_dev(drm);	pm_runtime_disable(dev);	drm_irq_uninstall(drm);	/* Disable the binner's overflow memory address, so the next	 * driver probe (if any) doesn't try to reuse our old	 * allocation.	 */	V3D_WRITE(V3D_BPOA, 0);	V3D_WRITE(V3D_BPOS, 0);	vc4->v3d = NULL;}
开发者ID:SantoshShilimkar,项目名称:linux,代码行数:19,


示例22: vc4_bo_cache_free_old

/* Must be called with bo_lock held. */static void vc4_bo_cache_free_old(struct drm_device *dev){	struct vc4_dev *vc4 = to_vc4_dev(dev);	unsigned long expire_time = jiffies - msecs_to_jiffies(1000);	while (!list_empty(&vc4->bo_cache.time_list)) {		struct vc4_bo *bo = list_last_entry(&vc4->bo_cache.time_list,						    struct vc4_bo, unref_head);		if (time_before(expire_time, bo->free_time)) {			mod_timer(&vc4->bo_cache.time_timer,				  round_jiffies_up(jiffies +						   msecs_to_jiffies(1000)));			return;		}		vc4_bo_remove_from_cache(bo);		vc4_bo_destroy(bo);	}}
开发者ID:a2hojsjsjs,项目名称:linux,代码行数:20,


示例23: vc4_v3d_debugfs_ident

int vc4_v3d_debugfs_ident(struct seq_file *m, void *unused){	struct drm_info_node *node = (struct drm_info_node *)m->private;	struct drm_device *dev = node->minor->dev;	struct vc4_dev *vc4 = to_vc4_dev(dev);	uint32_t ident1 = V3D_READ(V3D_IDENT1);	uint32_t nslc = VC4_GET_FIELD(ident1, V3D_IDENT1_NSLC);	uint32_t tups = VC4_GET_FIELD(ident1, V3D_IDENT1_TUPS);	uint32_t qups = VC4_GET_FIELD(ident1, V3D_IDENT1_QUPS);	seq_printf(m, "Revision:   %d/n",		   VC4_GET_FIELD(ident1, V3D_IDENT1_REV));	seq_printf(m, "Slices:     %d/n", nslc);	seq_printf(m, "TMUs:       %d/n", nslc * tups);	seq_printf(m, "QPUs:       %d/n", nslc * qups);	seq_printf(m, "Semaphores: %d/n",		   VC4_GET_FIELD(ident1, V3D_IDENT1_NSEM));	return 0;}
开发者ID:SantoshShilimkar,项目名称:linux,代码行数:20,


示例24: vc4_irq

irqreturn_tvc4_irq(int irq, void *arg){	struct drm_device *dev = arg;	struct vc4_dev *vc4 = to_vc4_dev(dev);	uint32_t intctl;	irqreturn_t status = IRQ_NONE;	barrier();	intctl = V3D_READ(V3D_INTCTL);	/* Acknowledge the interrupts we're handling here. The binner	 * last flush / render frame done interrupt will be cleared,	 * while OUTOMEM will stay high until the underlying cause is	 * cleared.	 */	V3D_WRITE(V3D_INTCTL, intctl);	if (intctl & V3D_INT_OUTOMEM) {		/* Disable OUTOMEM until the work is done. */		V3D_WRITE(V3D_INTDIS, V3D_INT_OUTOMEM);		schedule_work(&vc4->overflow_mem_work);		status = IRQ_HANDLED;	}	if (intctl & V3D_INT_FLDONE) {		spin_lock(&vc4->job_lock);		vc4_irq_finish_bin_job(dev);		spin_unlock(&vc4->job_lock);		status = IRQ_HANDLED;	}	if (intctl & V3D_INT_FRDONE) {		spin_lock(&vc4->job_lock);		vc4_irq_finish_render_job(dev);		spin_unlock(&vc4->job_lock);		status = IRQ_HANDLED;	}	return status;}
开发者ID:020gzh,项目名称:linux,代码行数:41,


示例25: vc4_irq_reset

/** Reinitializes interrupt registers when a GPU reset is performed. */void vc4_irq_reset(struct drm_device *dev){	struct vc4_dev *vc4 = to_vc4_dev(dev);	unsigned long irqflags;	/* Acknowledge any stale IRQs. */	V3D_WRITE(V3D_INTCTL, V3D_DRIVER_IRQS);	/*	 * Turn all our interrupts on.  Binner out of memory is the	 * only one we expect to trigger at this point, since we've	 * just come from poweron and haven't supplied any overflow	 * memory yet.	 */	V3D_WRITE(V3D_INTENA, V3D_DRIVER_IRQS);	spin_lock_irqsave(&vc4->job_lock, irqflags);	vc4_cancel_bin_job(dev);	vc4_irq_finish_render_job(dev);	spin_unlock_irqrestore(&vc4->job_lock, irqflags);}
开发者ID:020gzh,项目名称:linux,代码行数:22,


示例26: vc4_hvs_dump_state

void vc4_hvs_dump_state(struct drm_device *dev){	struct vc4_dev *vc4 = to_vc4_dev(dev);	int i;	for (i = 0; i < ARRAY_SIZE(hvs_regs); i++) {		DRM_INFO("0x%04x (%s): 0x%08x/n",			 hvs_regs[i].reg, hvs_regs[i].name,			 HVS_READ(hvs_regs[i].reg));	}	DRM_INFO("HVS ctx:/n");	for (i = 0; i < 64; i += 4) {		DRM_INFO("0x%08x (%s): 0x%08x 0x%08x 0x%08x 0x%08x/n",			 i * 4, i < HVS_BOOTLOADER_DLIST_END ? "B" : "D",			 readl((u32 __iomem *)vc4->hvs->dlist + i + 0),			 readl((u32 __iomem *)vc4->hvs->dlist + i + 1),			 readl((u32 __iomem *)vc4->hvs->dlist + i + 2),			 readl((u32 __iomem *)vc4->hvs->dlist + i + 3));	}}
开发者ID:BORETS24,项目名称:common.git-android-4.4,代码行数:21,


示例27: roundup

struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t unaligned_size,			     bool allow_unzeroed){	size_t size = roundup(unaligned_size, PAGE_SIZE);	struct vc4_dev *vc4 = to_vc4_dev(dev);	struct drm_gem_cma_object *cma_obj;	struct vc4_bo *bo;	if (size == 0)		return ERR_PTR(-EINVAL);	/* First, try to get a vc4_bo from the kernel BO cache. */	bo = vc4_bo_get_from_cache(dev, size);	if (bo) {		if (!allow_unzeroed)			memset(bo->base.vaddr, 0, bo->base.base.size);		return bo;	}	cma_obj = drm_gem_cma_create(dev, size);	if (IS_ERR(cma_obj)) {		/*		 * If we've run out of CMA memory, kill the cache of		 * CMA allocations we've got laying around and try again.		 */		vc4_bo_cache_purge(dev);		cma_obj = drm_gem_cma_create(dev, size);		if (IS_ERR(cma_obj)) {			DRM_ERROR("Failed to allocate from CMA:/n");			vc4_bo_stats_dump(vc4);			return ERR_PTR(-ENOMEM);		}	}	return to_vc4_bo(&cma_obj->base);}
开发者ID:asmalldev,项目名称:linux,代码行数:37,


示例28: vc4_v3d_bind

static int vc4_v3d_bind(struct device *dev, struct device *master, void *data){	struct platform_device *pdev = to_platform_device(dev);	struct drm_device *drm = dev_get_drvdata(master);	struct vc4_dev *vc4 = to_vc4_dev(drm);	struct vc4_v3d *v3d = NULL;	int ret;	v3d = devm_kzalloc(&pdev->dev, sizeof(*v3d), GFP_KERNEL);	if (!v3d)		return -ENOMEM;	dev_set_drvdata(dev, v3d);	v3d->pdev = pdev;	v3d->regs = vc4_ioremap_regs(pdev, 0);	if (IS_ERR(v3d->regs))		return PTR_ERR(v3d->regs);	vc4->v3d = v3d;	v3d->vc4 = vc4;	v3d->clk = devm_clk_get(dev, NULL);	if (IS_ERR(v3d->clk)) {		int ret = PTR_ERR(v3d->clk);		if (ret == -ENOENT) {			/* bcm2835 didn't have a clock reference in the DT. */			ret = 0;			v3d->clk = NULL;		} else {			if (ret != -EPROBE_DEFER)				dev_err(dev, "Failed to get V3D clock: %d/n",					ret);			return ret;		}	}	if (V3D_READ(V3D_IDENT0) != V3D_EXPECTED_IDENT0) {		DRM_ERROR("V3D_IDENT0 read 0x%08x instead of 0x%08x/n",			  V3D_READ(V3D_IDENT0), V3D_EXPECTED_IDENT0);		return -EINVAL;	}	ret = clk_prepare_enable(v3d->clk);	if (ret != 0)		return ret;	ret = vc4_allocate_bin_bo(drm);	if (ret) {		clk_disable_unprepare(v3d->clk);		return ret;	}	/* Reset the binner overflow address/size at setup, to be sure	 * we don't reuse an old one.	 */	V3D_WRITE(V3D_BPOA, 0);	V3D_WRITE(V3D_BPOS, 0);	vc4_v3d_init_hw(drm);	ret = drm_irq_install(drm, platform_get_irq(pdev, 0));	if (ret) {		DRM_ERROR("Failed to install IRQ handler/n");		return ret;	}	pm_runtime_set_active(dev);	pm_runtime_use_autosuspend(dev);	pm_runtime_set_autosuspend_delay(dev, 40); /* a little over 2 frames. */	pm_runtime_enable(dev);	return 0;}
开发者ID:SantoshShilimkar,项目名称:linux,代码行数:76,



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


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