gma: Add flag to allow use of VGACNTRL on GMCH
Change-Id: If2f12f14b4f367cdfc8cc2c20402f2350e3bbba8
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/25404
Reviewed-by: Nico Huber <nico.h@gmx.de>
diff --git a/common/hw-gfx-gma-pipe_setup.adb b/common/hw-gfx-gma-pipe_setup.adb
index e1ff835..321271c 100644
--- a/common/hw-gfx-gma-pipe_setup.adb
+++ b/common/hw-gfx-gma-pipe_setup.adb
@@ -89,6 +89,11 @@
PS_CTRL_SCALER_MODE_7X5_EXTENDED : constant := 1 * 2 ** 28;
PS_CTRL_FILTER_SELECT_MEDIUM_2 : constant := 1 * 2 ** 23;
+ VGACNTRL_REG : constant Registers.Registers_Index :=
+ (if Config.Has_GMCH_VGACNTRL then
+ Registers.GMCH_VGACNTRL
+ else Registers.CPU_VGACNTRL);
+
---------------------------------------------------------------------------
function PLANE_WM_LINES (Lines : Natural) return Word32 is
@@ -260,7 +265,7 @@
end if;
Registers.Unset_And_Set_Mask
- (Register => Registers.VGACNTRL,
+ (Register => VGACNTRL_REG,
Mask_Unset => VGA_CONTROL_VGA_DISPLAY_DISABLE or
VGA_CONTROL_BLINK_DUTY_CYCLE_MASK or
VGA_CONTROL_VSYNC_BLINK_RATE_MASK,
@@ -512,7 +517,7 @@
Port_IO.InB (Reg8, VGA_SR_DATA);
Port_IO.OutB (VGA_SR_DATA, Reg8 or VGA_SR01_SCREEN_OFF);
Time.U_Delay (100); -- PRM says 100us, Linux does 300
- Registers.Set_Mask (Registers.VGACNTRL, VGA_CONTROL_VGA_DISPLAY_DISABLE);
+ Registers.Set_Mask (VGACNTRL_REG, VGA_CONTROL_VGA_DISPLAY_DISABLE);
end Legacy_VGA_Off;
procedure All_Off