Lines Matching defs:perfcnt

38 	complete(&pfdev->perfcnt->dump_comp);
51 reinit_completion(&pfdev->perfcnt->dump_comp);
52 gpuva = pfdev->perfcnt->mapping->mmnode.start << PAGE_SHIFT;
59 ret = wait_for_completion_interruptible_timeout(&pfdev->perfcnt->dump_comp,
74 struct panfrost_perfcnt *perfcnt = pfdev->perfcnt;
79 if (user == perfcnt->user)
81 else if (perfcnt->user)
88 bo = drm_gem_shmem_create(pfdev->ddev, perfcnt->bosize);
94 /* Map the perfcnt buf in the address space attached to file_priv. */
99 perfcnt->mapping = panfrost_gem_mapping_get(to_panfrost_bo(&bo->base),
101 if (!perfcnt->mapping) {
106 perfcnt->buf = drm_gem_shmem_vmap(&bo->base);
107 if (IS_ERR(perfcnt->buf)) {
108 ret = PTR_ERR(perfcnt->buf);
116 reinit_completion(&pfdev->perfcnt->dump_comp);
122 ret = wait_for_completion_timeout(&pfdev->perfcnt->dump_comp,
129 perfcnt->user = user;
131 as = panfrost_mmu_as_get(pfdev, perfcnt->mapping->mmu);
166 drm_gem_shmem_vunmap(&bo->base, perfcnt->buf);
168 panfrost_gem_mapping_put(perfcnt->mapping);
182 struct panfrost_perfcnt *perfcnt = pfdev->perfcnt;
184 if (user != perfcnt->user)
194 perfcnt->user = NULL;
195 drm_gem_shmem_vunmap(&perfcnt->mapping->obj->base.base, perfcnt->buf);
196 perfcnt->buf = NULL;
197 panfrost_gem_close(&perfcnt->mapping->obj->base.base, file_priv);
198 panfrost_mmu_as_put(pfdev, perfcnt->mapping->mmu);
199 panfrost_gem_mapping_put(perfcnt->mapping);
200 perfcnt->mapping = NULL;
211 struct panfrost_perfcnt *perfcnt = pfdev->perfcnt;
223 mutex_lock(&perfcnt->lock);
229 mutex_unlock(&perfcnt->lock);
238 struct panfrost_perfcnt *perfcnt = pfdev->perfcnt;
247 mutex_lock(&perfcnt->lock);
248 if (perfcnt->user != file_priv->driver_priv) {
257 if (copy_to_user(user_ptr, perfcnt->buf, perfcnt->bosize))
261 mutex_unlock(&perfcnt->lock);
270 struct panfrost_perfcnt *perfcnt = pfdev->perfcnt;
273 mutex_lock(&perfcnt->lock);
274 if (perfcnt->user == pfile)
276 mutex_unlock(&perfcnt->lock);
283 struct panfrost_perfcnt *perfcnt;
316 perfcnt = devm_kzalloc(pfdev->dev, sizeof(*perfcnt), GFP_KERNEL);
317 if (!perfcnt)
320 perfcnt->bosize = size;
330 init_completion(&perfcnt->dump_comp);
331 mutex_init(&perfcnt->lock);
332 pfdev->perfcnt = perfcnt;