Lines Matching refs:window
289 const struct tegra_dc_window *window) in tegra_plane_setup_blending() argument
303 value = K2(255) | K1(255) | WINDOW_LAYER_DEPTH(255 - window->zpos); in tegra_plane_setup_blending()
309 const struct tegra_dc_window *window) in tegra_plane_use_horizontal_filtering() argument
313 if (window->src.w == window->dst.w) in tegra_plane_use_horizontal_filtering()
324 const struct tegra_dc_window *window) in tegra_plane_use_vertical_filtering() argument
328 if (window->src.h == window->dst.h) in tegra_plane_use_vertical_filtering()
341 const struct tegra_dc_window *window) in tegra_dc_setup_window() argument
352 yuv = tegra_plane_format_is_yuv(window->format, &planar, NULL); in tegra_dc_setup_window()
354 bpp = window->bits_per_pixel / 8; in tegra_dc_setup_window()
358 tegra_plane_writel(plane, window->format, DC_WIN_COLOR_DEPTH); in tegra_dc_setup_window()
359 tegra_plane_writel(plane, window->swap, DC_WIN_BYTE_SWAP); in tegra_dc_setup_window()
361 value = V_POSITION(window->dst.y) | H_POSITION(window->dst.x); in tegra_dc_setup_window()
364 value = V_SIZE(window->dst.h) | H_SIZE(window->dst.w); in tegra_dc_setup_window()
367 h_offset = window->src.x * bpp; in tegra_dc_setup_window()
368 v_offset = window->src.y; in tegra_dc_setup_window()
369 h_size = window->src.w * bpp; in tegra_dc_setup_window()
370 v_size = window->src.h; in tegra_dc_setup_window()
372 if (window->reflect_x) in tegra_dc_setup_window()
373 h_offset += (window->src.w - 1) * bpp; in tegra_dc_setup_window()
375 if (window->reflect_y) in tegra_dc_setup_window()
376 v_offset += window->src.h - 1; in tegra_dc_setup_window()
388 h_dda = compute_dda_inc(window->src.w, window->dst.w, false, bpp); in tegra_dc_setup_window()
389 v_dda = compute_dda_inc(window->src.h, window->dst.h, true, bpp); in tegra_dc_setup_window()
394 h_dda = compute_initial_dda(window->src.x); in tegra_dc_setup_window()
395 v_dda = compute_initial_dda(window->src.y); in tegra_dc_setup_window()
403 tegra_plane_writel(plane, window->base[0], DC_WINBUF_START_ADDR); in tegra_dc_setup_window()
406 tegra_plane_writel(plane, window->base[1], DC_WINBUF_START_ADDR_U); in tegra_dc_setup_window()
407 tegra_plane_writel(plane, window->base[2], DC_WINBUF_START_ADDR_V); in tegra_dc_setup_window()
408 value = window->stride[1] << 16 | window->stride[0]; in tegra_dc_setup_window()
411 tegra_plane_writel(plane, window->stride[0], DC_WIN_LINE_STRIDE); in tegra_dc_setup_window()
418 unsigned long height = window->tiling.value; in tegra_dc_setup_window()
420 switch (window->tiling.mode) { in tegra_dc_setup_window()
437 switch (window->tiling.mode) { in tegra_dc_setup_window()
473 } else if (window->bits_per_pixel < 24) { in tegra_dc_setup_window()
477 if (window->reflect_x) in tegra_dc_setup_window()
480 if (window->reflect_y) in tegra_dc_setup_window()
483 if (tegra_plane_use_horizontal_filtering(plane, window)) { in tegra_dc_setup_window()
508 if (tegra_plane_use_vertical_filtering(plane, window)) { in tegra_dc_setup_window()
526 tegra_plane_setup_blending(plane, window); in tegra_dc_setup_window()
724 struct tegra_dc_window window; in tegra_plane_atomic_update() local
734 memset(&window, 0, sizeof(window)); in tegra_plane_atomic_update()
735 window.src.x = new_state->src.x1 >> 16; in tegra_plane_atomic_update()
736 window.src.y = new_state->src.y1 >> 16; in tegra_plane_atomic_update()
737 window.src.w = drm_rect_width(&new_state->src) >> 16; in tegra_plane_atomic_update()
738 window.src.h = drm_rect_height(&new_state->src) >> 16; in tegra_plane_atomic_update()
739 window.dst.x = new_state->dst.x1; in tegra_plane_atomic_update()
740 window.dst.y = new_state->dst.y1; in tegra_plane_atomic_update()
741 window.dst.w = drm_rect_width(&new_state->dst); in tegra_plane_atomic_update()
742 window.dst.h = drm_rect_height(&new_state->dst); in tegra_plane_atomic_update()
743 window.bits_per_pixel = fb->format->cpp[0] * 8; in tegra_plane_atomic_update()
744 window.reflect_x = tegra_plane_state->reflect_x; in tegra_plane_atomic_update()
745 window.reflect_y = tegra_plane_state->reflect_y; in tegra_plane_atomic_update()
748 window.zpos = new_state->normalized_zpos; in tegra_plane_atomic_update()
749 window.tiling = tegra_plane_state->tiling; in tegra_plane_atomic_update()
750 window.format = tegra_plane_state->format; in tegra_plane_atomic_update()
751 window.swap = tegra_plane_state->swap; in tegra_plane_atomic_update()
754 window.base[i] = tegra_plane_state->iova[i] + fb->offsets[i]; in tegra_plane_atomic_update()
762 window.stride[i] = fb->pitches[i]; in tegra_plane_atomic_update()
765 tegra_dc_setup_window(p, &window); in tegra_plane_atomic_update()
1851 struct tegra_dc_window window, old_window; in tegra_crtc_update_memory_bandwidth() local
1909 window.src.h = drm_rect_height(&plane->state->src) >> 16; in tegra_crtc_update_memory_bandwidth()
1910 window.dst.h = drm_rect_height(&plane->state->dst); in tegra_crtc_update_memory_bandwidth()
1927 window = old_window; in tegra_crtc_update_memory_bandwidth()
1932 if (tegra_plane_use_vertical_filtering(tegra, &window)) in tegra_crtc_update_memory_bandwidth()