blob: eae083f19ecf3fc697fb9fab6f933dec8e325028 [file] [log] [blame]
Nico Huber83693c82016-10-08 22:17:55 +02001--
2-- Copyright (C) 2015-2016 secunet Security Networks AG
3--
4-- This program is free software; you can redistribute it and/or modify
5-- it under the terms of the GNU General Public License as published by
Nico Huber125a29e2016-10-18 00:23:54 +02006-- the Free Software Foundation; either version 2 of the License, or
7-- (at your option) any later version.
Nico Huber83693c82016-10-08 22:17:55 +02008--
9-- This program is distributed in the hope that it will be useful,
10-- but WITHOUT ANY WARRANTY; without even the implied warranty of
11-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12-- GNU General Public License for more details.
13--
14
Nico Huber83693c82016-10-08 22:17:55 +020015with HW.GFX.GMA.Config;
16with HW.GFX.GMA.Panel;
Nico Huber83693c82016-10-08 22:17:55 +020017with HW.GFX.GMA.DP_Info;
Nico Huber83693c82016-10-08 22:17:55 +020018
19with HW.Debug;
20with GNAT.Source_Info;
21
22package body HW.GFX.GMA.Connector_Info is
23
Nico Huber995436b2016-11-20 02:21:51 +010024 procedure Preferred_Link_Setting
25 (Port_Cfg : in out Port_Config;
26 Success : out Boolean)
Nico Huber83693c82016-10-08 22:17:55 +020027 is
Nico Huber995436b2016-11-20 02:21:51 +010028 DP_Port : constant GMA.DP_Port :=
Nico Huber83693c82016-10-08 22:17:55 +020029 (if Port_Cfg.Port = DIGI_A then
30 DP_A
31 else
32 (case Port_Cfg.PCH_Port is
33 when PCH_DP_B => DP_B,
34 when PCH_DP_C => DP_C,
35 when PCH_DP_D => DP_D,
Nico Huber995436b2016-11-20 02:21:51 +010036 when others => GMA.DP_Port'First));
Nico Huber83693c82016-10-08 22:17:55 +020037 begin
38 pragma Debug (Debug.Put_Line (GNAT.Source_Info.Enclosing_Entity));
39
40 if Port_Cfg.Display = DP then
41 if Port_Cfg.Port = DIGI_A then
42 if GMA.Config.Use_PP_VDD_Override then
43 Panel.VDD_Override;
44 else
45 Panel.On;
46 end if;
47 end if;
48
49 DP_Info.Read_Caps
50 (Link => Port_Cfg.DP,
Nico Huber995436b2016-11-20 02:21:51 +010051 Port => DP_Port,
Nico Huber83693c82016-10-08 22:17:55 +020052 Success => Success);
53 if Success then
54 DP_Info.Preferred_Link_Setting
55 (Link => Port_Cfg.DP,
56 Mode => Port_Cfg.Mode,
57 Success => Success);
58 end if;
59 else
60 Success := True;
61 end if;
62 end Preferred_Link_Setting;
63
64 procedure Next_Link_Setting
65 (Port_Cfg : in out Port_Config;
66 Success : out Boolean)
67 is
68 begin
69 pragma Debug (Debug.Put_Line (GNAT.Source_Info.Enclosing_Entity));
70
71 if Port_Cfg.Display = DP then
72 DP_Info.Next_Link_Setting
73 (Link => Port_Cfg.DP,
74 Mode => Port_Cfg.Mode,
75 Success => Success);
76 else
77 Success := False;
78 end if;
79 end Next_Link_Setting;
80
81 ----------------------------------------------------------------------------
82
83 function Default_BPC (Port_Cfg : Port_Config) return HW.GFX.BPC_Type
84 is
85 begin
86 return
87 (if Port_Cfg.Port = DIGI_A or
88 (Port_Cfg.Is_FDI and Port_Cfg.PCH_Port = PCH_LVDS)
89 then 6
90 else 8);
91 end Default_BPC;
92
93end HW.GFX.GMA.Connector_Info;