Skip to content

Commit

Permalink
drm/vc4: Fix pitch setup for T-format scanout.
Browse files Browse the repository at this point in the history
The documentation said to use src_w here, and I didn't consider that
we actually needed to be using pitch somewhere in our setup.  Fixes
scanout on my DSI panel when X11 does initial setup with 1920x1080
HDMI and 800x480 DSI both at 0,0 of the same framebuffer.

v2: Add some comments requested by Boris

Signed-off-by: Eric Anholt <eric@anholt.net>
Fixes: 98830d9 ("drm/vc4: Add T-format scanout support.")
Link: https://patchwork.freedesktop.org/patch/msgid/20170927193209.11870-1-eric@anholt.net
Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
  • Loading branch information
Eric Anholt committed Oct 13, 2017
1 parent d409eea commit 652badb
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions drivers/gpu/drm/vc4/vc4_plane.c
Original file line number Diff line number Diff line change
Expand Up @@ -547,14 +547,24 @@ static int vc4_plane_mode_set(struct drm_plane *plane,
tiling = SCALER_CTL0_TILING_LINEAR;
pitch0 = VC4_SET_FIELD(fb->pitches[0], SCALER_SRC_PITCH);
break;
case DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED:

case DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED: {
/* For T-tiled, the FB pitch is "how many bytes from
* one row to the next, such that pitch * tile_h ==
* tile_size * tiles_per_row."
*/
u32 tile_size_shift = 12; /* T tiles are 4kb */
u32 tile_h_shift = 5; /* 16 and 32bpp are 32 pixels high */
u32 tiles_w = fb->pitches[0] >> (tile_size_shift - tile_h_shift);

tiling = SCALER_CTL0_TILING_256B_OR_T;

pitch0 = (VC4_SET_FIELD(0, SCALER_PITCH0_TILE_Y_OFFSET),
VC4_SET_FIELD(0, SCALER_PITCH0_TILE_WIDTH_L),
VC4_SET_FIELD((vc4_state->src_w[0] + 31) >> 5,
SCALER_PITCH0_TILE_WIDTH_R));
pitch0 = (VC4_SET_FIELD(0, SCALER_PITCH0_TILE_Y_OFFSET) |
VC4_SET_FIELD(0, SCALER_PITCH0_TILE_WIDTH_L) |
VC4_SET_FIELD(tiles_w, SCALER_PITCH0_TILE_WIDTH_R));
break;
}

default:
DRM_DEBUG_KMS("Unsupported FB tiling flag 0x%16llx",
(long long)fb->modifier);
Expand Down

0 comments on commit 652badb

Please sign in to comment.