Lines Matching full:display

26 #define check_array_bounds(display, a, i) drm_WARN_ON((display)->drm, (i) >= ARRAY_SIZE(a))  argument
546 static bool plane_has_modifier(struct intel_display *display, in plane_has_modifier() argument
550 struct drm_i915_private *i915 = to_i915(display->drm); in plane_has_modifier()
552 if (!IS_DISPLAY_VER(display, md->display_ver.from, md->display_ver.until)) in plane_has_modifier()
567 (GRAPHICS_VER(i915) < 20 || !display->platform.dgfx)) in plane_has_modifier()
571 (GRAPHICS_VER(i915) < 20 || display->platform.dgfx)) in plane_has_modifier()
579 * @display: display instance
583 * Returns the list of modifiers allowed by the @display platform and @plane_caps.
586 u64 *intel_fb_plane_get_modifiers(struct intel_display *display, in intel_fb_plane_get_modifiers() argument
594 if (plane_has_modifier(display, plane_caps, &intel_modifiers[i])) in intel_fb_plane_get_modifiers()
599 if (drm_WARN_ON(display->drm, !list)) in intel_fb_plane_get_modifiers()
604 if (plane_has_modifier(display, plane_caps, &intel_modifiers[i])) in intel_fb_plane_get_modifiers()
760 struct intel_display *display = to_intel_display(fb->dev); in skl_main_to_aux_plane() local
764 else if (DISPLAY_VER(display) < 11 && in skl_main_to_aux_plane()
771 unsigned int intel_tile_size(struct intel_display *display) in intel_tile_size() argument
773 return DISPLAY_VER(display) == 2 ? 2048 : 4096; in intel_tile_size()
779 struct intel_display *display = to_intel_display(fb->dev); in intel_tile_width_bytes() local
780 struct drm_i915_private *i915 = to_i915(display->drm); in intel_tile_width_bytes()
785 return intel_tile_size(display); in intel_tile_width_bytes()
787 if (DISPLAY_VER(display) == 2) in intel_tile_width_bytes()
817 if (DISPLAY_VER(display) == 2 || HAS_128_BYTE_Y_TILING(i915)) in intel_tile_width_bytes()
848 struct intel_display *display = to_intel_display(fb->dev); in intel_tile_height() local
850 return intel_tile_size(display) / in intel_tile_height()
902 bool intel_fb_modifier_uses_dpt(struct intel_display *display, u64 modifier) in intel_fb_modifier_uses_dpt() argument
904 return HAS_DPT(display) && modifier != DRM_FORMAT_MOD_LINEAR; in intel_fb_modifier_uses_dpt()
909 struct intel_display *display = to_intel_display(fb->dev); in intel_fb_uses_dpt() local
911 return display->params.enable_dpt && in intel_fb_uses_dpt()
912 intel_fb_modifier_uses_dpt(display, fb->modifier); in intel_fb_uses_dpt()
1021 struct intel_display *display = to_intel_display(fb->dev); in intel_adjust_aligned_offset() local
1024 drm_WARN_ON(display->drm, new_offset > old_offset); in intel_adjust_aligned_offset()
1030 tile_size = intel_tile_size(display); in intel_adjust_aligned_offset()
1080 static u32 intel_compute_aligned_offset(struct intel_display *display, in intel_compute_aligned_offset() argument
1095 tile_size = intel_tile_size(display); in intel_compute_aligned_offset()
1139 struct intel_display *display = to_intel_display(plane_state); in intel_plane_compute_aligned_offset() local
1146 return intel_compute_aligned_offset(display, x, y, fb, color_plane, in intel_plane_compute_aligned_offset()
1155 struct intel_display *display = to_intel_display(fb->dev); in intel_fb_offset_to_xy() local
1159 alignment = intel_tile_size(display); in intel_fb_offset_to_xy()
1164 drm_dbg_kms(display->drm, in intel_fb_offset_to_xy()
1176 drm_dbg_kms(display->drm, in intel_fb_offset_to_xy()
1196 struct intel_display *display = to_intel_display(fb->dev); in intel_fb_check_ccs_xy() local
1230 drm_dbg_kms(display->drm, in intel_fb_check_ccs_xy()
1244 struct intel_display *display = to_intel_display(plane_state); in intel_plane_can_remap() local
1254 * The display engine limits already match/exceed the in intel_plane_can_remap()
1259 if (DISPLAY_VER(display) < 4) in intel_plane_can_remap()
1271 unsigned int alignment = intel_tile_size(display) - 1; in intel_plane_can_remap()
1284 struct intel_display *display = to_intel_display(fb->base.dev); in intel_fb_needs_pot_stride_remap() local
1286 return (display->platform.alderlake_p || DISPLAY_VER(display) >= 14) && in intel_fb_needs_pot_stride_remap()
1292 struct intel_display *display = to_intel_display(plane_state); in intel_plane_uses_fence() local
1295 return DISPLAY_VER(display) < 4 || in intel_plane_uses_fence()
1341 struct intel_display *display = to_intel_display(fb->base.dev); in convert_plane_offset_to_xy() local
1347 drm_dbg_kms(display->drm, in convert_plane_offset_to_xy()
1368 drm_dbg_kms(display->drm, in convert_plane_offset_to_xy()
1379 struct intel_display *display = to_intel_display(fb->base.dev); in calc_plane_aligned_offset() local
1380 unsigned int tile_size = intel_tile_size(display); in calc_plane_aligned_offset()
1383 offset = intel_compute_aligned_offset(display, x, y, &fb->base, color_plane, in calc_plane_aligned_offset()
1434 struct intel_display *display = to_intel_display(fb->base.dev); in plane_view_scanout_stride() local
1437 if ((display->platform.alderlake_p || DISPLAY_VER(display) >= 14) && in plane_view_scanout_stride()
1467 struct intel_display *display = to_intel_display(fb->base.dev); in plane_view_linear_tiles() local
1473 return DIV_ROUND_UP(size, intel_tile_size(display)); in plane_view_linear_tiles()
1476 #define assign_chk_ovf(display, var, val) ({ \ argument
1477 drm_WARN_ON((display)->drm, overflows_type(val, var)); \
1481 #define assign_bfld_chk_ovf(display, var, val) ({ \ argument
1483 drm_WARN_ON((display)->drm, (var) != (val)); \
1492 struct intel_display *display = to_intel_display(fb->base.dev); in calc_plane_remap_info() local
1497 unsigned int tile_size = intel_tile_size(display); in calc_plane_remap_info()
1501 assign_bfld_chk_ovf(display, remap_info->offset, obj_offset); in calc_plane_remap_info()
1506 assign_chk_ovf(display, remap_info->size, in calc_plane_remap_info()
1511 assign_chk_ovf(display, remap_info->src_stride, in calc_plane_remap_info()
1513 assign_chk_ovf(display, remap_info->width, in calc_plane_remap_info()
1515 assign_chk_ovf(display, remap_info->height, in calc_plane_remap_info()
1520 drm_WARN_ON(display->drm, remap_info->linear); in calc_plane_remap_info()
1521 check_array_bounds(display, view->gtt.rotated.plane, color_plane); in calc_plane_remap_info()
1523 assign_chk_ovf(display, remap_info->dst_stride, in calc_plane_remap_info()
1544 drm_WARN_ON(display->drm, view->gtt.type != I915_GTT_VIEW_REMAPPED); in calc_plane_remap_info()
1546 check_array_bounds(display, view->gtt.remapped.plane, color_plane); in calc_plane_remap_info()
1580 assign_chk_ovf(display, remap_info->dst_stride, dst_stride); in calc_plane_remap_info()
1638 static void intel_fb_view_init(struct intel_display *display, in intel_fb_view_init() argument
1646 (display->platform.alderlake_p || DISPLAY_VER(display) >= 14)) in intel_fb_view_init()
1652 struct intel_display *display = to_intel_display(fb->base.dev); in intel_fb_supports_90_270_rotation() local
1654 if (DISPLAY_VER(display) >= 13) in intel_fb_supports_90_270_rotation()
1663 struct intel_display *display = to_intel_display(fb->dev); in intel_fb_min_alignment() local
1667 for_each_intel_plane(display->drm, plane) { in intel_fb_min_alignment()
1675 drm_WARN_ON(display->drm, plane_min_alignment && in intel_fb_min_alignment()
1689 struct intel_display *display = to_intel_display(fb->dev); in intel_fb_vtd_guard() local
1693 for_each_intel_plane(display->drm, plane) { in intel_fb_vtd_guard()
1703 int intel_fill_fb_info(struct intel_display *display, struct intel_framebuffer *fb) in intel_fill_fb_info() argument
1710 unsigned int tile_size = intel_tile_size(display); in intel_fill_fb_info()
1712 intel_fb_view_init(display, &fb->normal_view, I915_GTT_VIEW_NORMAL); in intel_fill_fb_info()
1714 drm_WARN_ON(display->drm, in intel_fill_fb_info()
1719 intel_fb_view_init(display, &fb->rotated_view, I915_GTT_VIEW_ROTATED); in intel_fill_fb_info()
1721 intel_fb_view_init(display, &fb->remapped_view, I915_GTT_VIEW_REMAPPED); in intel_fill_fb_info()
1740 drm_dbg_kms(display->drm, in intel_fill_fb_info()
1747 drm_dbg_kms(display->drm, in intel_fill_fb_info()
1793 drm_dbg_kms(display->drm, in intel_fill_fb_info()
1838 struct intel_display *display = to_intel_display(plane_state); in intel_plane_remap_gtt() local
1847 intel_fb_view_init(display, &plane_state->view, in intel_plane_remap_gtt()
1856 drm_WARN_ON(display->drm, intel_fb_is_ccs_modifier(fb->modifier)); in intel_plane_remap_gtt()
1977 u32 intel_fb_max_stride(struct intel_display *display, in intel_fb_max_stride() argument
1986 if (DISPLAY_VER(display) < 4 || intel_fb_is_ccs_modifier(modifier) || in intel_fb_max_stride()
1987 intel_fb_modifier_uses_dpt(display, modifier)) in intel_fb_max_stride()
1988 return intel_plane_fb_max_stride(display->drm, pixel_format, modifier); in intel_fb_max_stride()
1989 else if (DISPLAY_VER(display) >= 7) in intel_fb_max_stride()
1998 struct intel_display *display = to_intel_display(fb->dev); in intel_fb_stride_alignment() local
2002 unsigned int max_stride = intel_plane_fb_max_stride(display->drm, in intel_fb_stride_alignment()
2012 return intel_tile_size(display); in intel_fb_stride_alignment()
2023 if (DISPLAY_VER(display) >= 12) in intel_fb_stride_alignment()
2026 * Display WA #0531: skl,bxt,kbl,glk in intel_fb_stride_alignment()
2034 else if ((DISPLAY_VER(display) == 9 || display->platform.geminilake) && in intel_fb_stride_alignment()
2043 struct intel_display *display = to_intel_display(plane_state); in intel_plane_check_stride() local
2065 drm_dbg_kms(display->drm, in intel_plane_check_stride()
2129 struct intel_display *display = to_intel_display(obj->dev); in intel_user_framebuffer_create_handle() local
2132 drm_dbg(display->drm, in intel_user_framebuffer_create_handle()
2216 struct intel_display *display = to_intel_display(obj->dev); in intel_framebuffer_init() local
2241 if (!drm_any_plane_has_format(display->drm, in intel_framebuffer_init()
2244 drm_dbg_kms(display->drm, in intel_framebuffer_init()
2250 max_stride = intel_fb_max_stride(display, mode_cmd->pixel_format, in intel_framebuffer_init()
2253 drm_dbg_kms(display->drm, in intel_framebuffer_init()
2263 drm_dbg_kms(display->drm, in intel_framebuffer_init()
2269 drm_helper_mode_fill_fb_struct(display->drm, fb, info, mode_cmd); in intel_framebuffer_init()
2275 drm_dbg_kms(display->drm, "bad plane %d handle\n", i); in intel_framebuffer_init()
2281 drm_dbg_kms(display->drm, in intel_framebuffer_init()
2291 drm_dbg_kms(display->drm, in intel_framebuffer_init()
2301 ret = intel_fill_fb_info(display, intel_fb); in intel_framebuffer_init()
2310 drm_dbg_kms(display->drm, "failed to create DPT\n"); in intel_framebuffer_init()
2318 ret = drm_framebuffer_init(display->drm, fb, &intel_fb_funcs); in intel_framebuffer_init()
2320 drm_err(display->drm, "framebuffer init failed %d\n", ret); in intel_framebuffer_init()