[coreboot-gerrit] Change in libgfxinit[master]: gma ironlake..broadwell: Enable X-tiling
Nico Huber (Code Review)
gerrit at coreboot.org
Wed May 30 16:25:27 CEST 2018
Nico Huber has uploaded this change for review. ( https://review.coreboot.org/26697
Change subject: gma ironlake..broadwell: Enable X-tiling
......................................................................
gma ironlake..broadwell: Enable X-tiling
Generations pre Skylake support X-tiling only.
Change-Id: I828e20e2a6bf71c88cf9e23ada0552e2462fe7c1
Signed-off-by: Nico Huber <nico.h at gmx.de>
---
M common/hw-gfx-gma-config_helpers.adb
M common/hw-gfx-gma-pipe_setup.adb
2 files changed, 17 insertions(+), 6 deletions(-)
git pull ssh://review.coreboot.org:29418/libgfxinit refs/changes/97/26697/1
diff --git a/common/hw-gfx-gma-config_helpers.adb b/common/hw-gfx-gma-config_helpers.adb
index 5e5be5d..4cf04c3 100644
--- a/common/hw-gfx-gma-config_helpers.adb
+++ b/common/hw-gfx-gma-config_helpers.adb
@@ -193,7 +193,7 @@
-- Only 32bpp RGB (ignored for VGA plane)
-- Stride must be big enough and a multiple of 64 bytes or the tile size
-- (ignored for VGA plane)
- -- Tiling and rotation is only supported on newer generations (with
+ -- Y-Tiling and rotation are only supported on newer generations (with
-- Plane_Control)
-- 90 degree rotations are only supported with Y-tiling
return
@@ -206,7 +206,7 @@
(FB.Offset = VGA_PLANE_FRAMEBUFFER_OFFSET or
(FB.BPC = 8 and Valid_Stride (FB) and
(Config.Has_Plane_Control or
- (FB.Tiling = Linear and FB.Rotation = No_Rotation)) and
+ (FB.Tiling /= Y_Tiled and FB.Rotation = No_Rotation)) and
(FB.Tiling = Y_Tiled or not Rotation_90 (FB))));
end Validate_Config;
diff --git a/common/hw-gfx-gma-pipe_setup.adb b/common/hw-gfx-gma-pipe_setup.adb
index 7bccb4d..7a53faa 100644
--- a/common/hw-gfx-gma-pipe_setup.adb
+++ b/common/hw-gfx-gma-pipe_setup.adb
@@ -27,14 +27,22 @@
DSPCNTR_ENABLE : constant := 1 * 2 ** 31;
DSPCNTR_GAMMA_CORRECTION : constant := 1 * 2 ** 30;
- DSPCNTR_DISABLE_TRICKLE_FEED : constant := 1 * 2 ** 14;
DSPCNTR_FORMAT_MASK : constant := 15 * 2 ** 26;
+ DSPCNTR_DISABLE_TRICKLE_FEED : constant := 1 * 2 ** 14;
+ DSPCNTR_TILED_SURFACE_LINEAR : constant := 0 * 2 ** 10;
+ DSPCNTR_TILED_SURFACE_X_TILED : constant := 1 * 2 ** 10;
+
+ DSPCNTR_TILED_SURFACE : constant array (Tiling_Type) of Word32 :=
+ (Linear => DSPCNTR_TILED_SURFACE_LINEAR,
+ X_Tiled => DSPCNTR_TILED_SURFACE_X_TILED,
+ Y_Tiled => 0); -- unsupported
DSPCNTR_MASK : constant Word32 :=
DSPCNTR_ENABLE or
DSPCNTR_GAMMA_CORRECTION or
DSPCNTR_FORMAT_MASK or
- DSPCNTR_DISABLE_TRICKLE_FEED;
+ DSPCNTR_DISABLE_TRICKLE_FEED or
+ DSPCNTR_TILED_SURFACE_X_TILED;
PLANE_CTL_PLANE_ENABLE : constant := 1 * 2 ** 31;
PLANE_CTL_SRC_PIX_FMT_RGB_32B_8888 : constant := 4 * 2 ** 24;
@@ -239,17 +247,20 @@
Registers.Unset_And_Set_Mask
(Register => Controller.DSPCNTR,
Mask_Unset => DSPCNTR_MASK,
- Mask_Set => PRI);
+ Mask_Set => PRI or DSPCNTR_TILED_SURFACE (FB.Tiling));
Registers.Write
(Controller.DSPSTRIDE, Word32 (Pixel_To_Bytes (FB.Stride, FB)));
- if Config.Has_DSP_Linoff then
+ if Config.Has_DSP_Linoff and then FB.Tiling = Linear then
Registers.Write
(Register => Controller.DSPLINOFF,
Value => Word32 (Pixel_To_Bytes
(FB.Start_Y * FB.Stride + FB.Start_X, FB)));
Registers.Write (Controller.DSPTILEOFF, 0);
else
+ if Config.Has_DSP_Linoff then
+ Registers.Write (Controller.DSPLINOFF, 0);
+ end if;
Registers.Write
(Register => Controller.DSPTILEOFF,
Value => Shift_Left (Word32 (FB.Start_Y), 16) or
--
To view, visit https://review.coreboot.org/26697
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: libgfxinit
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I828e20e2a6bf71c88cf9e23ada0552e2462fe7c1
Gerrit-Change-Number: 26697
Gerrit-PatchSet: 1
Gerrit-Owner: Nico Huber <nico.h at gmx.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20180530/fb66983c/attachment.html>
More information about the coreboot-gerrit
mailing list