gma: Validate pipe configurations

Validate some properties of the pipe configuration before commit.
Currently checked:

  o No downscaling
  o Only 32bpp RGB
  o Stride must be a multiple of 64

Change-Id: Ibfc8617dbf433da33b1eb4012ecae08445600016
Signed-off-by: Nico Huber <nico.huber@secunet.com>
Reviewed-on: https://review.coreboot.org/17260
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Tested-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Martin Roth <martinroth@google.com>
This commit is contained in:
Nico Huber
2016-11-03 18:18:03 +01:00
committed by Nico Huber
parent 6a3566773f
commit c7a4fee02f

View File

@@ -177,6 +177,23 @@ is
DP_Info.Preferred_Link_Setting (Port_Cfg.FDI, Port_Cfg.Mode, Success);
end Configure_FDI_Link;
function Validate_Config
(Framebuffer : Framebuffer_Type;
Port_Cfg : Port_Config)
return Boolean
with Global => null
is
begin
-- No downscaling
-- Only 32bpp RGB
-- Stride must be a multiple of 64
return
Framebuffer.Width <= Pos32 (Port_Cfg.Mode.H_Visible) and
Framebuffer.Height <= Pos32 (Port_Cfg.Mode.V_Visible) and
Framebuffer.BPC = 8 and
Framebuffer.Stride mod 64 = 0;
end Validate_Config;
procedure Fill_Port_Config
(Port_Cfg : out Port_Config;
Configs : in Configs_Type;
@@ -524,6 +541,9 @@ is
if New_Config.Port /= Disabled then
Fill_Port_Config (Port_Cfg, Configs, I, Success);
Success := Success and then
Validate_Config (New_Config.Framebuffer, Port_Cfg);
if Success and then Wait_For_HPD (New_Config.Port) then
Check_HPD (Port_Cfg, New_Config.Port, Success);
Wait_For_HPD (New_Config.Port) := not Success;