Lines Matching refs:v3d

21 v3d_init_core(struct v3d_dev *v3d, int core)  in v3d_init_core()  argument
29 if (v3d->ver < 40) in v3d_init_core()
41 v3d_init_hw_state(struct v3d_dev *v3d) in v3d_init_hw_state() argument
43 v3d_init_core(v3d, 0); in v3d_init_hw_state()
47 v3d_idle_axi(struct v3d_dev *v3d, int core) in v3d_idle_axi() argument
60 v3d_idle_gca(struct v3d_dev *v3d) in v3d_idle_gca() argument
62 if (v3d->ver >= 41) in v3d_idle_gca()
75 v3d_reset_by_bridge(struct v3d_dev *v3d) in v3d_reset_by_bridge() argument
98 v3d_reset_v3d(struct v3d_dev *v3d) in v3d_reset_v3d() argument
100 if (v3d->reset) in v3d_reset_v3d()
101 reset_control_reset(v3d->reset); in v3d_reset_v3d()
103 v3d_reset_by_bridge(v3d); in v3d_reset_v3d()
105 v3d_init_hw_state(v3d); in v3d_reset_v3d()
109 v3d_reset(struct v3d_dev *v3d) in v3d_reset() argument
111 struct drm_device *dev = &v3d->drm; in v3d_reset()
120 v3d_idle_axi(v3d, 0); in v3d_reset()
122 v3d_idle_gca(v3d); in v3d_reset()
123 v3d_reset_v3d(v3d); in v3d_reset()
125 v3d_mmu_set_page_table(v3d); in v3d_reset()
126 v3d_irq_reset(v3d); in v3d_reset()
128 v3d_perfmon_stop(v3d, v3d->active_perfmon, false); in v3d_reset()
134 v3d_flush_l3(struct v3d_dev *v3d) in v3d_flush_l3() argument
136 if (v3d->ver < 41) { in v3d_flush_l3()
142 if (v3d->ver < 33) { in v3d_flush_l3()
153 v3d_invalidate_l2c(struct v3d_dev *v3d, int core) in v3d_invalidate_l2c() argument
155 if (v3d->ver > 32) in v3d_invalidate_l2c()
165 v3d_flush_l2t(struct v3d_dev *v3d, int core) in v3d_flush_l2t() argument
174 mutex_lock(&v3d->cache_clean_lock); in v3d_flush_l2t()
178 mutex_unlock(&v3d->cache_clean_lock); in v3d_flush_l2t()
190 v3d_clean_caches(struct v3d_dev *v3d) in v3d_clean_caches() argument
192 struct drm_device *dev = &v3d->drm; in v3d_clean_caches()
203 mutex_lock(&v3d->cache_clean_lock); in v3d_clean_caches()
213 mutex_unlock(&v3d->cache_clean_lock); in v3d_clean_caches()
220 v3d_invalidate_slices(struct v3d_dev *v3d, int core) in v3d_invalidate_slices() argument
230 v3d_invalidate_caches(struct v3d_dev *v3d) in v3d_invalidate_caches() argument
237 v3d_flush_l3(v3d); in v3d_invalidate_caches()
238 v3d_invalidate_l2c(v3d, 0); in v3d_invalidate_caches()
239 v3d_flush_l2t(v3d, 0); in v3d_invalidate_caches()
240 v3d_invalidate_slices(v3d, 0); in v3d_invalidate_caches()
456 v3d_job_init(struct v3d_dev *v3d, struct drm_file *file_priv, in v3d_job_init() argument
472 job->v3d = v3d; in v3d_job_init()
716 struct v3d_dev *v3d = to_v3d_dev(dev); in v3d_submit_cl_ioctl() local
727 trace_v3d_submit_cl_ioctl(&v3d->drm, args->rcl_start, args->rcl_end); in v3d_submit_cl_ioctl()
747 ret = v3d_job_init(v3d, file_priv, (void *)&render, sizeof(*render), in v3d_submit_cl_ioctl()
757 ret = v3d_job_init(v3d, file_priv, (void *)&bin, sizeof(*bin), in v3d_submit_cl_ioctl()
771 ret = v3d_job_init(v3d, file_priv, (void *)&clean_job, sizeof(*clean_job), in v3d_submit_cl_ioctl()
800 mutex_lock(&v3d->sched_lock); in v3d_submit_cl_ioctl()
826 mutex_unlock(&v3d->sched_lock); in v3d_submit_cl_ioctl()
844 mutex_unlock(&v3d->sched_lock); in v3d_submit_cl_ioctl()
870 struct v3d_dev *v3d = to_v3d_dev(dev); in v3d_submit_tfu_ioctl() local
877 trace_v3d_submit_tfu_ioctl(&v3d->drm, args->iia); in v3d_submit_tfu_ioctl()
892 ret = v3d_job_init(v3d, file_priv, (void *)&job, sizeof(*job), in v3d_submit_tfu_ioctl()
934 mutex_lock(&v3d->sched_lock); in v3d_submit_tfu_ioctl()
936 mutex_unlock(&v3d->sched_lock); in v3d_submit_tfu_ioctl()
968 struct v3d_dev *v3d = to_v3d_dev(dev); in v3d_submit_csd_ioctl() local
977 trace_v3d_submit_csd_ioctl(&v3d->drm, args->cfg[5], args->cfg[6]); in v3d_submit_csd_ioctl()
982 if (!v3d_has_csd(v3d)) { in v3d_submit_csd_ioctl()
1000 ret = v3d_job_init(v3d, file_priv, (void *)&job, sizeof(*job), in v3d_submit_csd_ioctl()
1005 ret = v3d_job_init(v3d, file_priv, (void *)&clean_job, sizeof(*clean_job), in v3d_submit_csd_ioctl()
1030 mutex_lock(&v3d->sched_lock); in v3d_submit_csd_ioctl()
1039 mutex_unlock(&v3d->sched_lock); in v3d_submit_csd_ioctl()
1054 mutex_unlock(&v3d->sched_lock); in v3d_submit_csd_ioctl()
1069 struct v3d_dev *v3d = to_v3d_dev(dev); in v3d_gem_init() local
1074 v3d->queue[i].fence_context = dma_fence_context_alloc(1); in v3d_gem_init()
1076 spin_lock_init(&v3d->mm_lock); in v3d_gem_init()
1077 spin_lock_init(&v3d->job_lock); in v3d_gem_init()
1078 mutex_init(&v3d->bo_lock); in v3d_gem_init()
1079 mutex_init(&v3d->reset_lock); in v3d_gem_init()
1080 mutex_init(&v3d->sched_lock); in v3d_gem_init()
1081 mutex_init(&v3d->cache_clean_lock); in v3d_gem_init()
1087 drm_mm_init(&v3d->mm, 1, pt_size / sizeof(u32) - 1); in v3d_gem_init()
1089 v3d->pt = dma_alloc_wc(v3d->drm.dev, pt_size, in v3d_gem_init()
1090 &v3d->pt_paddr, in v3d_gem_init()
1092 if (!v3d->pt) { in v3d_gem_init()
1093 drm_mm_takedown(&v3d->mm); in v3d_gem_init()
1094 dev_err(v3d->drm.dev, in v3d_gem_init()
1099 v3d_init_hw_state(v3d); in v3d_gem_init()
1100 v3d_mmu_set_page_table(v3d); in v3d_gem_init()
1102 ret = v3d_sched_init(v3d); in v3d_gem_init()
1104 drm_mm_takedown(&v3d->mm); in v3d_gem_init()
1105 dma_free_coherent(v3d->drm.dev, 4096 * 1024, (void *)v3d->pt, in v3d_gem_init()
1106 v3d->pt_paddr); in v3d_gem_init()
1115 struct v3d_dev *v3d = to_v3d_dev(dev); in v3d_gem_destroy() local
1117 v3d_sched_fini(v3d); in v3d_gem_destroy()
1122 WARN_ON(v3d->bin_job); in v3d_gem_destroy()
1123 WARN_ON(v3d->render_job); in v3d_gem_destroy()
1125 drm_mm_takedown(&v3d->mm); in v3d_gem_destroy()
1127 dma_free_coherent(v3d->drm.dev, 4096 * 1024, (void *)v3d->pt, in v3d_gem_destroy()
1128 v3d->pt_paddr); in v3d_gem_destroy()