1 // SPDX-License-Identifier: MIT 2 /* Copyright © 2026 Intel Corporation */ 3 4 #include <drm/drm_gem.h> 5 #include <drm/intel/display_parent_interface.h> 6 7 #include "intel_bo.h" 8 #include "intel_display_core.h" 9 #include "intel_display_types.h" 10 11 bool intel_bo_is_tiled(struct drm_gem_object *obj) 12 { 13 struct intel_display *display = to_intel_display(obj->dev); 14 15 return display->parent->bo->is_tiled && display->parent->bo->is_tiled(obj); 16 } 17 18 bool intel_bo_is_userptr(struct drm_gem_object *obj) 19 { 20 struct intel_display *display = to_intel_display(obj->dev); 21 22 return display->parent->bo->is_userptr && display->parent->bo->is_userptr(obj); 23 } 24 25 bool intel_bo_is_shmem(struct drm_gem_object *obj) 26 { 27 struct intel_display *display = to_intel_display(obj->dev); 28 29 return display->parent->bo->is_shmem && display->parent->bo->is_shmem(obj); 30 } 31 32 bool intel_bo_is_protected(struct drm_gem_object *obj) 33 { 34 struct intel_display *display = to_intel_display(obj->dev); 35 36 return display->parent->bo->is_protected(obj); 37 } 38 39 int intel_bo_key_check(struct drm_gem_object *obj) 40 { 41 struct intel_display *display = to_intel_display(obj->dev); 42 43 return display->parent->bo->key_check(obj); 44 } 45 46 int intel_bo_fb_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) 47 { 48 struct intel_display *display = to_intel_display(obj->dev); 49 50 return display->parent->bo->fb_mmap(obj, vma); 51 } 52 53 int intel_bo_read_from_page(struct drm_gem_object *obj, u64 offset, void *dst, int size) 54 { 55 struct intel_display *display = to_intel_display(obj->dev); 56 57 return display->parent->bo->read_from_page(obj, offset, dst, size); 58 } 59 60 void intel_bo_describe(struct seq_file *m, struct drm_gem_object *obj) 61 { 62 struct intel_display *display = to_intel_display(obj->dev); 63 64 if (display->parent->bo->describe) 65 display->parent->bo->describe(m, obj); 66 } 67 68 int intel_bo_framebuffer_init(struct drm_gem_object *obj, struct drm_mode_fb_cmd2 *mode_cmd) 69 { 70 struct intel_display *display = to_intel_display(obj->dev); 71 72 return display->parent->bo->framebuffer_init(obj, mode_cmd); 73 } 74 75 void intel_bo_framebuffer_fini(struct drm_gem_object *obj) 76 { 77 struct intel_display *display = to_intel_display(obj->dev); 78 79 display->parent->bo->framebuffer_fini(obj); 80 } 81 82 struct drm_gem_object *intel_bo_framebuffer_lookup(struct intel_display *display, 83 struct drm_file *filp, 84 const struct drm_mode_fb_cmd2 *user_mode_cmd) 85 { 86 return display->parent->bo->framebuffer_lookup(display->drm, filp, user_mode_cmd); 87 } 88