gma: Reverse meaning of GTT_Rotation_Offset
We used to add the second mapping for a 90 degree rotated frame-
buffer at `FB.Offset + GTT_Rotation_Offset` and patched the offset
when configuring the pipe. Instead, we expect the final offset in
`FB.Offset` (which should include `GTT_Rotation_Offset` when using
the default framebuffer setup.
Change-Id: I321a3db3af4b21eefbfc1bf0c2a7005feaf83c7a
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/22864
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
diff --git a/common/hw-gfx-gma-pipe_setup.adb b/common/hw-gfx-gma-pipe_setup.adb
index 321271c..e2d2567 100644
--- a/common/hw-gfx-gma-pipe_setup.adb
+++ b/common/hw-gfx-gma-pipe_setup.adb
@@ -172,19 +172,16 @@
if Config.Has_Plane_Control then
declare
- Stride, Offset, GTT_Addr : Word32;
+ Stride, Offset : Word32;
Width : constant Pos16 := Rotated_Width (FB);
Height : constant Pos16 := Rotated_Height (FB);
begin
if Rotation_90 (FB) then
Stride := Word32 (FB_Pitch (FB.V_Stride, FB));
Offset := Word32 (FB.V_Stride - FB.Height);
- GTT_Addr :=
- FB.Offset + Word32 (GTT_Rotation_Offset) * GTT_Page_Size;
else
Stride := Word32 (FB_Pitch (FB.Stride, FB));
Offset := 0;
- GTT_Addr := FB.Offset;
end if;
Registers.Write
(Register => Controller.PLANE_CTL,
@@ -197,7 +194,7 @@
Registers.Write (Controller.PLANE_SIZE, Encode (Width, Height));
Registers.Write (Controller.PLANE_STRIDE, Stride);
Registers.Write (Controller.PLANE_POS, 16#0000_0000#);
- Registers.Write (Controller.PLANE_SURF, GTT_Addr and 16#ffff_f000#);
+ Registers.Write (Controller.PLANE_SURF, FB.Offset and 16#ffff_f000#);
end;
else
if Config.Disable_Trickle_Feed then