view
const struct i915_ggtt_view *view,
const struct i915_ggtt_view *view,
struct i915_ggtt_view view;
view.type = I915_GGTT_VIEW_PARTIAL;
view.partial.offset = rounddown(page_offset, chunk);
view.partial.size =
(obj->base.size >> PAGE_SHIFT) - view.partial.offset);
view.type = I915_GGTT_VIEW_NORMAL;
return view;
struct i915_ggtt_view view =
if (view.type == I915_GGTT_VIEW_NORMAL)
vma = i915_gem_object_ggtt_pin(obj, &view, 0, 0, flags);
if (IS_ERR(vma) && !view.type) {
view.type = I915_GGTT_VIEW_PARTIAL;
vma = i915_gem_object_ggtt_pin(obj, &view, 0, 0, flags);
const struct i915_ggtt_view *view,
(!view || view->type == I915_GGTT_VIEW_NORMAL))
vma = i915_gem_object_ggtt_pin(obj, view, 0, alignment,
vma = i915_gem_object_ggtt_pin(obj, view, 0, alignment, flags);
const struct i915_ggtt_view *view,
(!view || view->type == I915_GGTT_VIEW_NORMAL)) {
vma = i915_vma_instance(obj, vm, view);
intel_partial_pages(const struct i915_ggtt_view *view,
unsigned int count = view->partial.size;
iter = i915_gem_object_get_sg(obj, view->partial.offset, &offset);
const struct i915_ggtt_view *view)
if (view && view->type != I915_GGTT_VIEW_NORMAL) {
vma->ggtt_view = *view;
if (view->type == I915_GGTT_VIEW_PARTIAL) {
view->partial.offset,
view->partial.size,
vma->size = view->partial.size;
} else if (view->type == I915_GGTT_VIEW_ROTATED) {
vma->size = intel_rotation_info_size(&view->rotated);
if (i915_vma_compare(pos, vm, view) < 0)
const struct i915_ggtt_view *view)
cmp = i915_vma_compare(vma, vm, view);
const struct i915_ggtt_view *view)
GEM_BUG_ON(view && !i915_is_ggtt(vm));
vma = vma_lookup(obj, vm, view);
vma = vma_create(obj, vm, view);
GEM_BUG_ON(!IS_ERR(vma) && i915_vma_compare(vma, vm, view));
GEM_BUG_ON(!IS_ERR(vma) && vma_lookup(obj, vm, view) != vma);
const struct i915_ggtt_view *view);
const struct i915_ggtt_view *view)
GEM_BUG_ON(view && !i915_is_ggtt(vm));
if (!view)
cmp -= view->type;
BUILD_BUG_ON(offsetof(typeof(*view), rotated) !=
offsetof(typeof(*view), partial));
return memcmp(&vma->ggtt_view.partial, &view->partial, view->type);
&plane_state->view,
intel_fill_fb_ggtt_view(struct i915_ggtt_view *view,
view->type = I915_GGTT_VIEW_NORMAL;
view->type = I915_GGTT_VIEW_ROTATED;
view->rotated = to_intel_framebuffer(fb)->rot_info;
const struct i915_ggtt_view *view,
alignment, view, pinctl);
intel_fill_fb_ggtt_view(&intel_state->view, fb,
&intel_state->view,
intel_fill_fb_ggtt_view(&plane_state->view, fb, rotation);
intel_fill_fb_ggtt_view(&plane_state->view, fb, rotation);
intel_fill_fb_ggtt_view(&plane_state->view, fb, rotation);
const struct i915_ggtt_view *view,
struct i915_ggtt_view view;
const struct i915_ggtt_view view = {
&view, false, &flags);