Lines Matching refs:fb

1083 	return intel_crtc->active && crtc->primary->state->fb &&  in intel_crtc_active()
2274 intel_fill_fb_ggtt_view(struct i915_ggtt_view *view, struct drm_framebuffer *fb, in intel_fill_fb_ggtt_view() argument
2290 info->height = fb->height; in intel_fill_fb_ggtt_view()
2291 info->pixel_format = fb->pixel_format; in intel_fill_fb_ggtt_view()
2292 info->pitch = fb->pitches[0]; in intel_fill_fb_ggtt_view()
2293 info->uv_offset = fb->offsets[1]; in intel_fill_fb_ggtt_view()
2294 info->fb_modifier = fb->modifier[0]; in intel_fill_fb_ggtt_view()
2296 tile_height = intel_tile_height(fb->dev, fb->pixel_format, in intel_fill_fb_ggtt_view()
2297 fb->modifier[0], 0); in intel_fill_fb_ggtt_view()
2299 info->width_pages = DIV_ROUND_UP(fb->pitches[0], tile_pitch); in intel_fill_fb_ggtt_view()
2300 info->height_pages = DIV_ROUND_UP(fb->height, tile_height); in intel_fill_fb_ggtt_view()
2304 tile_height = intel_tile_height(fb->dev, fb->pixel_format, in intel_fill_fb_ggtt_view()
2305 fb->modifier[0], 1); in intel_fill_fb_ggtt_view()
2307 info->width_pages_uv = DIV_ROUND_UP(fb->pitches[0], tile_pitch); in intel_fill_fb_ggtt_view()
2308 info->height_pages_uv = DIV_ROUND_UP(fb->height / 2, in intel_fill_fb_ggtt_view()
2332 struct drm_framebuffer *fb, in intel_pin_and_fence_fb_obj() argument
2337 struct drm_device *dev = fb->dev; in intel_pin_and_fence_fb_obj()
2339 struct drm_i915_gem_object *obj = intel_fb_obj(fb); in intel_pin_and_fence_fb_obj()
2346 switch (fb->modifier[0]) { in intel_pin_and_fence_fb_obj()
2366 MISSING_CASE(fb->modifier[0]); in intel_pin_and_fence_fb_obj()
2370 ret = intel_fill_fb_ggtt_view(&view, fb, plane_state); in intel_pin_and_fence_fb_obj()
2433 static void intel_unpin_fb_obj(struct drm_framebuffer *fb, in intel_unpin_fb_obj() argument
2436 struct drm_i915_gem_object *obj = intel_fb_obj(fb); in intel_unpin_fb_obj()
2442 ret = intel_fill_fb_ggtt_view(&view, fb, plane_state); in intel_unpin_fb_obj()
2535 struct drm_framebuffer *fb = &plane_config->fb->base; in intel_alloc_initial_plane_obj() local
2560 obj->stride = fb->pitches[0]; in intel_alloc_initial_plane_obj()
2562 mode_cmd.pixel_format = fb->pixel_format; in intel_alloc_initial_plane_obj()
2563 mode_cmd.width = fb->width; in intel_alloc_initial_plane_obj()
2564 mode_cmd.height = fb->height; in intel_alloc_initial_plane_obj()
2565 mode_cmd.pitches[0] = fb->pitches[0]; in intel_alloc_initial_plane_obj()
2566 mode_cmd.modifier[0] = fb->modifier[0]; in intel_alloc_initial_plane_obj()
2570 if (intel_framebuffer_init(dev, to_intel_framebuffer(fb), in intel_alloc_initial_plane_obj()
2590 if (plane->fb == plane->state->fb) in update_state_fb()
2593 if (plane->state->fb) in update_state_fb()
2594 drm_framebuffer_unreference(plane->state->fb); in update_state_fb()
2595 plane->state->fb = plane->fb; in update_state_fb()
2596 if (plane->state->fb) in update_state_fb()
2597 drm_framebuffer_reference(plane->state->fb); in update_state_fb()
2613 struct drm_framebuffer *fb; in intel_find_initial_plane_obj() local
2615 if (!plane_config->fb) in intel_find_initial_plane_obj()
2619 fb = &plane_config->fb->base; in intel_find_initial_plane_obj()
2623 kfree(plane_config->fb); in intel_find_initial_plane_obj()
2638 fb = c->primary->fb; in intel_find_initial_plane_obj()
2639 if (!fb) in intel_find_initial_plane_obj()
2642 obj = intel_fb_obj(fb); in intel_find_initial_plane_obj()
2644 drm_framebuffer_reference(fb); in intel_find_initial_plane_obj()
2666 plane_state->src_w = fb->width << 16; in intel_find_initial_plane_obj()
2667 plane_state->src_h = fb->height << 16; in intel_find_initial_plane_obj()
2671 plane_state->crtc_w = fb->width; in intel_find_initial_plane_obj()
2672 plane_state->crtc_h = fb->height; in intel_find_initial_plane_obj()
2674 obj = intel_fb_obj(fb); in intel_find_initial_plane_obj()
2678 drm_framebuffer_reference(fb); in intel_find_initial_plane_obj()
2679 primary->fb = primary->state->fb = fb; in intel_find_initial_plane_obj()
2686 struct drm_framebuffer *fb, in i9xx_update_primary_plane() argument
2701 if (!visible || !fb) { in i9xx_update_primary_plane()
2711 obj = intel_fb_obj(fb); in i9xx_update_primary_plane()
2715 pixel_size = drm_format_plane_cpp(fb->pixel_format, 0); in i9xx_update_primary_plane()
2740 switch (fb->pixel_format) { in i9xx_update_primary_plane()
2773 linear_offset = y * fb->pitches[0] + x * pixel_size; in i9xx_update_primary_plane()
2780 fb->pitches[0]); in i9xx_update_primary_plane()
2795 (intel_crtc->config->pipe_src_h - 1) * fb->pitches[0] + in i9xx_update_primary_plane()
2804 I915_WRITE(DSPSTRIDE(plane), fb->pitches[0]); in i9xx_update_primary_plane()
2816 struct drm_framebuffer *fb, in ironlake_update_primary_plane() argument
2831 if (!visible || !fb) { in ironlake_update_primary_plane()
2838 obj = intel_fb_obj(fb); in ironlake_update_primary_plane()
2842 pixel_size = drm_format_plane_cpp(fb->pixel_format, 0); in ironlake_update_primary_plane()
2851 switch (fb->pixel_format) { in ironlake_update_primary_plane()
2880 linear_offset = y * fb->pitches[0] + x * pixel_size; in ironlake_update_primary_plane()
2885 fb->pitches[0]); in ironlake_update_primary_plane()
2897 (intel_crtc->config->pipe_src_h - 1) * fb->pitches[0] + in ironlake_update_primary_plane()
2907 I915_WRITE(DSPSTRIDE(plane), fb->pitches[0]); in ironlake_update_primary_plane()
3088 struct drm_framebuffer *fb, in skylake_update_primary_plane() argument
3111 if (!visible || !fb) { in skylake_update_primary_plane()
3122 plane_ctl |= skl_plane_ctl_format(fb->pixel_format); in skylake_update_primary_plane()
3123 plane_ctl |= skl_plane_ctl_tiling(fb->modifier[0]); in skylake_update_primary_plane()
3129 obj = intel_fb_obj(fb); in skylake_update_primary_plane()
3130 stride_div = intel_fb_stride_alignment(dev, fb->modifier[0], in skylake_update_primary_plane()
3131 fb->pixel_format); in skylake_update_primary_plane()
3150 tile_height = intel_tile_height(dev, fb->pixel_format, in skylake_update_primary_plane()
3151 fb->modifier[0], 0); in skylake_update_primary_plane()
3152 stride = DIV_ROUND_UP(fb->height, tile_height); in skylake_update_primary_plane()
3157 stride = fb->pitches[0] / stride_div; in skylake_update_primary_plane()
3194 intel_pipe_set_base_atomic(struct drm_crtc *crtc, struct drm_framebuffer *fb, in intel_pipe_set_base_atomic() argument
3203 dev_priv->display.update_primary_plane(crtc, fb, x, y); in intel_pipe_set_base_atomic()
3233 if (plane_state->base.fb) in intel_update_primary_planes()
3974 if (crtc->primary->fb) { in intel_crtc_wait_for_pending_flips()
3976 intel_finish_fb(crtc->primary->fb); in intel_crtc_wait_for_pending_flips()
4472 struct drm_framebuffer *fb = plane_state->base.fb; in skl_update_scaler_plane() local
4475 bool force_detach = !fb || !plane_state->visible; in skl_update_scaler_plane()
4501 switch (fb->pixel_format) { in skl_update_scaler_plane()
4516 intel_plane->base.base.id, fb->base.id, fb->pixel_format); in skl_update_scaler_plane()
4848 i915_gem_track_fb(intel_fb_obj(plane->base.fb), NULL, in intel_pre_plane_update()
8040 struct drm_framebuffer *fb; in i9xx_get_initial_plane_config() local
8053 fb = &intel_fb->base; in i9xx_get_initial_plane_config()
8058 fb->modifier[0] = I915_FORMAT_MOD_X_TILED; in i9xx_get_initial_plane_config()
8064 fb->pixel_format = fourcc; in i9xx_get_initial_plane_config()
8065 fb->bits_per_pixel = drm_format_plane_cpp(fourcc, 0) * 8; in i9xx_get_initial_plane_config()
8079 fb->width = ((val >> 16) & 0xfff) + 1; in i9xx_get_initial_plane_config()
8080 fb->height = ((val >> 0) & 0xfff) + 1; in i9xx_get_initial_plane_config()
8083 fb->pitches[0] = val & 0xffffffc0; in i9xx_get_initial_plane_config()
8085 aligned_height = intel_fb_align_height(dev, fb->height, in i9xx_get_initial_plane_config()
8086 fb->pixel_format, in i9xx_get_initial_plane_config()
8087 fb->modifier[0]); in i9xx_get_initial_plane_config()
8089 plane_config->size = fb->pitches[0] * aligned_height; in i9xx_get_initial_plane_config()
8092 pipe_name(pipe), plane, fb->width, fb->height, in i9xx_get_initial_plane_config()
8093 fb->bits_per_pixel, base, fb->pitches[0], in i9xx_get_initial_plane_config()
8096 plane_config->fb = intel_fb; in i9xx_get_initial_plane_config()
9093 struct drm_framebuffer *fb; in skylake_get_initial_plane_config() local
9102 fb = &intel_fb->base; in skylake_get_initial_plane_config()
9112 fb->pixel_format = fourcc; in skylake_get_initial_plane_config()
9113 fb->bits_per_pixel = drm_format_plane_cpp(fourcc, 0) * 8; in skylake_get_initial_plane_config()
9118 fb->modifier[0] = DRM_FORMAT_MOD_NONE; in skylake_get_initial_plane_config()
9122 fb->modifier[0] = I915_FORMAT_MOD_X_TILED; in skylake_get_initial_plane_config()
9125 fb->modifier[0] = I915_FORMAT_MOD_Y_TILED; in skylake_get_initial_plane_config()
9128 fb->modifier[0] = I915_FORMAT_MOD_Yf_TILED; in skylake_get_initial_plane_config()
9141 fb->height = ((val >> 16) & 0xfff) + 1; in skylake_get_initial_plane_config()
9142 fb->width = ((val >> 0) & 0x1fff) + 1; in skylake_get_initial_plane_config()
9145 stride_mult = intel_fb_stride_alignment(dev, fb->modifier[0], in skylake_get_initial_plane_config()
9146 fb->pixel_format); in skylake_get_initial_plane_config()
9147 fb->pitches[0] = (val & 0x3ff) * stride_mult; in skylake_get_initial_plane_config()
9149 aligned_height = intel_fb_align_height(dev, fb->height, in skylake_get_initial_plane_config()
9150 fb->pixel_format, in skylake_get_initial_plane_config()
9151 fb->modifier[0]); in skylake_get_initial_plane_config()
9153 plane_config->size = fb->pitches[0] * aligned_height; in skylake_get_initial_plane_config()
9156 pipe_name(pipe), fb->width, fb->height, in skylake_get_initial_plane_config()
9157 fb->bits_per_pixel, base, fb->pitches[0], in skylake_get_initial_plane_config()
9160 plane_config->fb = intel_fb; in skylake_get_initial_plane_config()
9164 kfree(fb); in skylake_get_initial_plane_config()
9201 struct drm_framebuffer *fb; in ironlake_get_initial_plane_config() local
9214 fb = &intel_fb->base; in ironlake_get_initial_plane_config()
9219 fb->modifier[0] = I915_FORMAT_MOD_X_TILED; in ironlake_get_initial_plane_config()
9225 fb->pixel_format = fourcc; in ironlake_get_initial_plane_config()
9226 fb->bits_per_pixel = drm_format_plane_cpp(fourcc, 0) * 8; in ironlake_get_initial_plane_config()
9240 fb->width = ((val >> 16) & 0xfff) + 1; in ironlake_get_initial_plane_config()
9241 fb->height = ((val >> 0) & 0xfff) + 1; in ironlake_get_initial_plane_config()
9244 fb->pitches[0] = val & 0xffffffc0; in ironlake_get_initial_plane_config()
9246 aligned_height = intel_fb_align_height(dev, fb->height, in ironlake_get_initial_plane_config()
9247 fb->pixel_format, in ironlake_get_initial_plane_config()
9248 fb->modifier[0]); in ironlake_get_initial_plane_config()
9250 plane_config->size = fb->pitches[0] * aligned_height; in ironlake_get_initial_plane_config()
9253 pipe_name(pipe), fb->width, fb->height, in ironlake_get_initial_plane_config()
9254 fb->bits_per_pixel, base, fb->pitches[0], in ironlake_get_initial_plane_config()
9257 plane_config->fb = intel_fb; in ironlake_get_initial_plane_config()
10179 struct drm_framebuffer *fb; in intel_framebuffer_create() local
10185 fb = __intel_framebuffer_create(dev, mode_cmd, obj); in intel_framebuffer_create()
10188 return fb; in intel_framebuffer_create()
10234 struct drm_framebuffer *fb; in mode_fits_in_fbdev() local
10239 if (!dev_priv->fbdev->fb) in mode_fits_in_fbdev()
10242 obj = dev_priv->fbdev->fb->obj; in mode_fits_in_fbdev()
10245 fb = &dev_priv->fbdev->fb->base; in mode_fits_in_fbdev()
10246 if (fb->pitches[0] < intel_framebuffer_pitch_for_width(mode->hdisplay, in mode_fits_in_fbdev()
10247 fb->bits_per_pixel)) in mode_fits_in_fbdev()
10250 if (obj->base.size < mode->vdisplay * fb->pitches[0]) in mode_fits_in_fbdev()
10253 return fb; in mode_fits_in_fbdev()
10262 struct drm_framebuffer *fb, in intel_modeset_setup_plane_state() argument
10278 ret = drm_atomic_set_crtc_for_plane(plane_state, fb ? crtc : NULL); in intel_modeset_setup_plane_state()
10281 drm_atomic_set_fb_for_plane(plane_state, fb); in intel_modeset_setup_plane_state()
10306 struct drm_framebuffer *fb; in intel_get_load_detect_pipe() local
10418 fb = mode_fits_in_fbdev(dev, mode); in intel_get_load_detect_pipe()
10419 if (fb == NULL) { in intel_get_load_detect_pipe()
10421 fb = intel_framebuffer_create_for_mode(dev, mode, 24, 32); in intel_get_load_detect_pipe()
10422 old->release_fb = fb; in intel_get_load_detect_pipe()
10425 if (IS_ERR(fb)) { in intel_get_load_detect_pipe()
10430 ret = intel_modeset_setup_plane_state(state, crtc, mode, fb, 0, 0); in intel_get_load_detect_pipe()
10919 struct drm_framebuffer *fb, in intel_gen2_queue_flip() argument
10944 intel_ring_emit(ring, fb->pitches[0]); in intel_gen2_queue_flip()
10954 struct drm_framebuffer *fb, in intel_gen3_queue_flip() argument
10976 intel_ring_emit(ring, fb->pitches[0]); in intel_gen3_queue_flip()
10986 struct drm_framebuffer *fb, in intel_gen4_queue_flip() argument
11007 intel_ring_emit(ring, fb->pitches[0]); in intel_gen4_queue_flip()
11025 struct drm_framebuffer *fb, in intel_gen6_queue_flip() argument
11042 intel_ring_emit(ring, fb->pitches[0] | obj->tiling_mode); in intel_gen6_queue_flip()
11061 struct drm_framebuffer *fb, in intel_gen7_queue_flip() argument
11146 intel_ring_emit(ring, (fb->pitches[0] | obj->tiling_mode)); in intel_gen7_queue_flip()
11186 struct drm_framebuffer *fb = intel_crtc->base.primary->fb; in skl_do_mmio_flip() local
11192 switch (fb->modifier[0]) { in skl_do_mmio_flip()
11205 MISSING_CASE(fb->modifier[0]); in skl_do_mmio_flip()
11212 stride = fb->pitches[0] / in skl_do_mmio_flip()
11213 intel_fb_stride_alignment(dev, fb->modifier[0], in skl_do_mmio_flip()
11214 fb->pixel_format); in skl_do_mmio_flip()
11233 to_intel_framebuffer(intel_crtc->base.primary->fb); in ilk_do_mmio_flip()
11299 struct drm_framebuffer *fb, in intel_queue_mmio_flip() argument
11322 struct drm_framebuffer *fb, in intel_default_queue_flip() argument
11399 struct drm_framebuffer *fb, in intel_crtc_page_flip() argument
11405 struct drm_framebuffer *old_fb = crtc->primary->fb; in intel_crtc_page_flip()
11406 struct drm_i915_gem_object *obj = intel_fb_obj(fb); in intel_crtc_page_flip()
11425 if (fb->pixel_format != crtc->primary->fb->pixel_format) in intel_crtc_page_flip()
11433 (fb->offsets[0] != crtc->primary->fb->offsets[0] || in intel_crtc_page_flip()
11434 fb->pitches[0] != crtc->primary->fb->pitches[0])) in intel_crtc_page_flip()
11481 crtc->primary->fb = fb; in intel_crtc_page_flip()
11518 ret = intel_pin_and_fence_fb_obj(crtc->primary, fb, in intel_crtc_page_flip()
11529 ret = intel_queue_mmio_flip(dev, crtc, fb, obj, ring, in intel_crtc_page_flip()
11543 ret = dev_priv->display.queue_flip(dev, crtc, fb, obj, request, in intel_crtc_page_flip()
11570 intel_unpin_fb_obj(fb, crtc->primary->state); in intel_crtc_page_flip()
11577 crtc->primary->fb = old_fb; in intel_crtc_page_flip()
11605 drm_atomic_set_fb_for_plane(plane_state, fb); in intel_crtc_page_flip()
11645 if (!plane->state->fb || !state->fb || in intel_wm_need_update()
11646 plane->state->fb->modifier[0] != state->fb->modifier[0] || in intel_wm_need_update()
11673 struct drm_framebuffer *fb = plane_state->fb; in intel_plane_atomic_calc_changes() local
11689 if (old_plane_state->base.fb && !fb) in intel_plane_atomic_calc_changes()
11708 plane->base.id, fb ? fb->base.id : -1); in intel_plane_atomic_calc_changes()
12004 struct drm_framebuffer *fb; in intel_dump_pipe_config() local
12105 fb = state->base.fb; in intel_dump_pipe_config()
12106 if (!fb) { in intel_dump_pipe_config()
12122 fb->base.id, fb->width, fb->height, fb->pixel_format); in intel_dump_pipe_config()
13455 struct drm_framebuffer *fb = new_state->fb; in intel_prepare_plane_fb() local
13457 struct drm_i915_gem_object *obj = intel_fb_obj(fb); in intel_prepare_plane_fb()
13458 struct drm_i915_gem_object *old_obj = intel_fb_obj(plane->fb); in intel_prepare_plane_fb()
13473 ret = intel_pin_and_fence_fb_obj(plane, fb, new_state, NULL, NULL); in intel_prepare_plane_fb()
13496 struct drm_i915_gem_object *obj = intel_fb_obj(old_state->fb); in intel_cleanup_plane_fb()
13504 intel_unpin_fb_obj(old_state->fb, old_state); in intel_cleanup_plane_fb()
13545 struct drm_framebuffer *fb = state->base.fb; in intel_check_primary_plane() local
13559 return drm_plane_helper_check_update(plane, crtc, fb, &state->src, in intel_check_primary_plane()
13571 struct drm_framebuffer *fb = state->base.fb; in intel_commit_primary_plane() local
13580 plane->fb = fb; in intel_commit_primary_plane()
13587 dev_priv->display.update_primary_plane(crtc, fb, in intel_commit_primary_plane()
13744 struct drm_framebuffer *fb = state->base.fb; in intel_check_cursor_plane() local
13745 struct drm_i915_gem_object *obj = intel_fb_obj(fb); in intel_check_cursor_plane()
13750 ret = drm_plane_helper_check_update(plane, crtc, fb, &state->src, in intel_check_cursor_plane()
13775 if (fb->modifier[0] != DRM_FORMAT_MOD_NONE) { in intel_check_cursor_plane()
13813 struct drm_i915_gem_object *obj = intel_fb_obj(state->base.fb); in intel_commit_cursor_plane()
14237 static void intel_user_framebuffer_destroy(struct drm_framebuffer *fb) in intel_user_framebuffer_destroy() argument
14239 struct drm_device *dev = fb->dev; in intel_user_framebuffer_destroy()
14240 struct intel_framebuffer *intel_fb = to_intel_framebuffer(fb); in intel_user_framebuffer_destroy()
14242 drm_framebuffer_cleanup(fb); in intel_user_framebuffer_destroy()
14250 static int intel_user_framebuffer_create_handle(struct drm_framebuffer *fb, in intel_user_framebuffer_create_handle() argument
14254 struct intel_framebuffer *intel_fb = to_intel_framebuffer(fb); in intel_user_framebuffer_create_handle()
14265 static int intel_user_framebuffer_dirty(struct drm_framebuffer *fb, in intel_user_framebuffer_dirty() argument
14271 struct drm_device *dev = fb->dev; in intel_user_framebuffer_dirty()
14272 struct intel_framebuffer *intel_fb = to_intel_framebuffer(fb); in intel_user_framebuffer_dirty()
15503 obj = intel_fb_obj(c->primary->fb); in intel_modeset_gem_init()
15509 c->primary->fb, in intel_modeset_gem_init()
15516 drm_framebuffer_unreference(c->primary->fb); in intel_modeset_gem_init()
15517 c->primary->fb = NULL; in intel_modeset_gem_init()