Lines Matching defs:lvl

140 #define gen8_pd_shift(lvl) ((lvl) * ilog2(GEN8_PDES))
141 #define gen8_pd_index(i, lvl) i915_pde_index((i), gen8_pd_shift(lvl))
142 #define __gen8_pte_shift(lvl) (GEN8_PTE_SHIFT + gen8_pd_shift(lvl))
143 #define __gen8_pte_index(a, lvl) i915_pde_index((a), __gen8_pte_shift(lvl))
148 gen8_pd_range(u64 start, u64 end, int lvl, unsigned int *idx)
150 const int shift = gen8_pd_shift(lvl);
151 const u64 mask = ~0ull << gen8_pd_shift(lvl + 1);
163 static bool gen8_pd_contains(u64 start, u64 end, int lvl)
165 const u64 mask = ~0ull << gen8_pd_shift(lvl + 1);
206 int count, int lvl)
208 if (lvl) {
215 __gen8_ppgtt_cleanup(vm, *pde, GEN8_PDES, lvl - 1);
219 free_px(vm, &pd->pt, lvl);
241 u64 start, const u64 end, int lvl)
243 const struct drm_i915_gem_object * const scratch = vm->scratch[lvl];
248 len = gen8_pd_range(start, end, lvl--, &idx);
249 GTT_TRACE("%s(%p):{ lvl:%d, start:%llx, end:%llx, idx:%d, len:%d, used:%d }\n",
250 __func__, vm, lvl + 1, start, end,
258 gen8_pd_contains(start, end, lvl)) {
259 GTT_TRACE("%s(%p):{ lvl:%d, idx:%d, start:%llx, end:%llx } removing pd\n",
260 __func__, vm, lvl + 1, idx, start, end);
262 __gen8_ppgtt_cleanup(vm, as_pd(pt), I915_PDES, lvl);
263 start += (u64)I915_PDES << gen8_pd_shift(lvl);
267 if (lvl) {
269 start, end, lvl);
277 GTT_TRACE("%s(%p):{ lvl:%d, start:%llx, end:%llx, idx:%d, len:%d, used:%d } removing pte\n",
278 __func__, vm, lvl, start, end,
301 free_px(vm, pt, lvl);
325 u64 * const start, const u64 end, int lvl)
331 len = gen8_pd_range(*start, end, lvl--, &idx);
332 GTT_TRACE("%s(%p):{ lvl:%d, start:%llx, end:%llx, idx:%d, len:%d, used:%d }\n",
333 __func__, vm, lvl + 1, *start, end,
345 GTT_TRACE("%s(%p):{ lvl:%d, idx:%d } allocating new tree\n",
346 __func__, vm, lvl + 1, idx);
348 pt = stash->pt[!!lvl];
351 fill_px(pt, vm->scratch[lvl]->encode);
355 stash->pt[!!lvl] = pt->stash;
363 if (lvl) {
368 as_pd(pt), start, end, lvl);
376 GTT_TRACE("%s(%p):{ lvl:%d, start:%llx, end:%llx, idx:%d, len:%d, used:%d } inserting pte\n",
377 __func__, vm, lvl, *start, end,
408 u64 *start, u64 end, int lvl,
416 len = gen8_pd_range(*start, end, lvl--, &idx);
425 if (lvl) {
426 __gen8_ppgtt_foreach(vm, as_pd(pt), start, end, lvl,
486 /* Limited by sg length for 3lvl */