<p>Nico Huber has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/26843">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">edid: Use expression functions to rely less on proof inlining<br><br>Change-Id: I7c116762c2b3fa366318b09e60d0e1945057eec6<br>Signed-off-by: Nico Huber <nico.huber@secunet.com><br>---<br>M common/hw-gfx-edid.adb<br>M common/hw-gfx-edid.ads<br>2 files changed, 29 insertions(+), 87 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/libgfxinit refs/changes/43/26843/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/common/hw-gfx-edid.adb b/common/hw-gfx-edid.adb</span><br><span>index f6afb56..83e9cf6 100644</span><br><span>--- a/common/hw-gfx-edid.adb</span><br><span>+++ b/common/hw-gfx-edid.adb</span><br><span>@@ -108,30 +108,6 @@</span><br><span> Word16 (Raw_EDID (Offset));</span><br><span> end Read_LE16;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- function Has_Preferred_Mode (Raw_EDID : Raw_EDID_Data) return Boolean</span><br><span style="color: hsl(0, 100%, 40%);">- is</span><br><span style="color: hsl(0, 100%, 40%);">- begin</span><br><span style="color: hsl(0, 100%, 40%);">- return</span><br><span style="color: hsl(0, 100%, 40%);">- Int64 (Read_LE16 (Raw_EDID, DESCRIPTOR_1)) * 10_000</span><br><span style="color: hsl(0, 100%, 40%);">- in Frequency_Type and</span><br><span style="color: hsl(0, 100%, 40%);">- ( Raw_EDID (DESCRIPTOR_1 + 2) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 4) and 16#f0#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ( Raw_EDID (DESCRIPTOR_1 + 8) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 11) and 16#c0#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ( Raw_EDID (DESCRIPTOR_1 + 9) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 11) and 16#30#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ( Raw_EDID (DESCRIPTOR_1 + 3) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 4) and 16#0f#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ( Raw_EDID (DESCRIPTOR_1 + 5) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 7) and 16#f0#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ((Raw_EDID (DESCRIPTOR_1 + 10) and 16#f0#) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 11) and 16#0c#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ((Raw_EDID (DESCRIPTOR_1 + 10) and 16#0f#) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 11) and 16#03#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ( Raw_EDID (DESCRIPTOR_1 + 6) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 7) and 16#0f#) /= 0);</span><br><span style="color: hsl(0, 100%, 40%);">- end Has_Preferred_Mode;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> function Preferred_Mode (Raw_EDID : Raw_EDID_Data) return Mode_Type</span><br><span> is</span><br><span> Base : constant := DESCRIPTOR_1;</span><br><span>@@ -140,38 +116,25 @@</span><br><span> function Read_12</span><br><span> (Lower_8, Upper_4 : Raw_EDID_Index;</span><br><span> Shift : Natural)</span><br><span style="color: hsl(0, 100%, 40%);">- return Word16</span><br><span style="color: hsl(0, 100%, 40%);">- is</span><br><span style="color: hsl(0, 100%, 40%);">- begin</span><br><span style="color: hsl(0, 100%, 40%);">- return</span><br><span style="color: hsl(0, 100%, 40%);">- Word16 (Raw_EDID (Lower_8)) or</span><br><span style="color: hsl(0, 100%, 40%);">- (Shift_Left (Word16 (Raw_EDID (Upper_4)), Shift) and 16#0f00#);</span><br><span style="color: hsl(0, 100%, 40%);">- end Read_12;</span><br><span style="color: hsl(120, 100%, 40%);">+ return Word16 is</span><br><span style="color: hsl(120, 100%, 40%);">+ ( Word16 (Raw_EDID (Lower_8)) or</span><br><span style="color: hsl(120, 100%, 40%);">+ (Shift_Left (Word16 (Raw_EDID (Upper_4)), Shift) and 16#0f00#));</span><br><span> </span><br><span> function Read_10</span><br><span> (Lower_8, Upper_2 : Raw_EDID_Index;</span><br><span> Shift : Natural)</span><br><span style="color: hsl(0, 100%, 40%);">- return Word16</span><br><span style="color: hsl(0, 100%, 40%);">- is</span><br><span style="color: hsl(0, 100%, 40%);">- begin</span><br><span style="color: hsl(0, 100%, 40%);">- return</span><br><span style="color: hsl(0, 100%, 40%);">- Word16 (Raw_EDID (Lower_8)) or</span><br><span style="color: hsl(0, 100%, 40%);">- (Shift_Left (Word16 (Raw_EDID (Upper_2)), Shift) and 16#0300#);</span><br><span style="color: hsl(0, 100%, 40%);">- end Read_10;</span><br><span style="color: hsl(120, 100%, 40%);">+ return Word16 is</span><br><span style="color: hsl(120, 100%, 40%);">+ ( Word16 (Raw_EDID (Lower_8)) or</span><br><span style="color: hsl(120, 100%, 40%);">+ (Shift_Left (Word16 (Raw_EDID (Upper_2)), Shift) and 16#0300#));</span><br><span> </span><br><span> function Read_6</span><br><span> (Lower_4 : Raw_EDID_Index;</span><br><span> Lower_Shift : Natural;</span><br><span> Upper_2 : Raw_EDID_Index;</span><br><span> Upper_Shift : Natural)</span><br><span style="color: hsl(0, 100%, 40%);">- return Word8</span><br><span style="color: hsl(0, 100%, 40%);">- is</span><br><span style="color: hsl(0, 100%, 40%);">- begin</span><br><span style="color: hsl(0, 100%, 40%);">- return</span><br><span style="color: hsl(0, 100%, 40%);">- (Shift_Right (Word8 (Raw_EDID (Lower_4)), Lower_Shift) and 16#0f#)</span><br><span style="color: hsl(0, 100%, 40%);">- or</span><br><span style="color: hsl(0, 100%, 40%);">- (Shift_Left (Word8 (Raw_EDID (Upper_2)), Upper_Shift) and 16#30#);</span><br><span style="color: hsl(0, 100%, 40%);">- end Read_6;</span><br><span style="color: hsl(120, 100%, 40%);">+ return Word8 is</span><br><span style="color: hsl(120, 100%, 40%);">+ ((Shift_Right (Word8 (Raw_EDID (Lower_4)), Lower_Shift) and 16#0f#) or</span><br><span style="color: hsl(120, 100%, 40%);">+ (Shift_Left (Word8 (Raw_EDID (Upper_2)), Upper_Shift) and 16#30#));</span><br><span> begin</span><br><span> Mode := Mode_Type'</span><br><span> (Dotclock => Pos64 (Read_LE16 (Raw_EDID, Base)) * 10_000,</span><br><span>diff --git a/common/hw-gfx-edid.ads b/common/hw-gfx-edid.ads</span><br><span>index abbb2ee..0d73230 100644</span><br><span>--- a/common/hw-gfx-edid.ads</span><br><span>+++ b/common/hw-gfx-edid.ads</span><br><span>@@ -42,49 +42,28 @@</span><br><span> with</span><br><span> Pre => Valid (Raw_EDID);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- function Has_Preferred_Mode (Raw_EDID : Raw_EDID_Data) return Boolean</span><br><span style="color: hsl(120, 100%, 40%);">+ function Has_Preferred_Mode (Raw_EDID : Raw_EDID_Data) return Boolean is</span><br><span style="color: hsl(120, 100%, 40%);">+ (Int64 (Read_LE16 (Raw_EDID, DESCRIPTOR_1)) * 10_000 in Frequency_Type and</span><br><span style="color: hsl(120, 100%, 40%);">+ ( Raw_EDID (DESCRIPTOR_1 + 2) /= 0 or</span><br><span style="color: hsl(120, 100%, 40%);">+ (Raw_EDID (DESCRIPTOR_1 + 4) and 16#f0#) /= 0) and</span><br><span style="color: hsl(120, 100%, 40%);">+ ( Raw_EDID (DESCRIPTOR_1 + 8) /= 0 or</span><br><span style="color: hsl(120, 100%, 40%);">+ (Raw_EDID (DESCRIPTOR_1 + 11) and 16#c0#) /= 0) and</span><br><span style="color: hsl(120, 100%, 40%);">+ ( Raw_EDID (DESCRIPTOR_1 + 9) /= 0 or</span><br><span style="color: hsl(120, 100%, 40%);">+ (Raw_EDID (DESCRIPTOR_1 + 11) and 16#30#) /= 0) and</span><br><span style="color: hsl(120, 100%, 40%);">+ ( Raw_EDID (DESCRIPTOR_1 + 3) /= 0 or</span><br><span style="color: hsl(120, 100%, 40%);">+ (Raw_EDID (DESCRIPTOR_1 + 4) and 16#0f#) /= 0) and</span><br><span style="color: hsl(120, 100%, 40%);">+ ( Raw_EDID (DESCRIPTOR_1 + 5) /= 0 or</span><br><span style="color: hsl(120, 100%, 40%);">+ (Raw_EDID (DESCRIPTOR_1 + 7) and 16#f0#) /= 0) and</span><br><span style="color: hsl(120, 100%, 40%);">+ ((Raw_EDID (DESCRIPTOR_1 + 10) and 16#f0#) /= 0 or</span><br><span style="color: hsl(120, 100%, 40%);">+ (Raw_EDID (DESCRIPTOR_1 + 11) and 16#0c#) /= 0) and</span><br><span style="color: hsl(120, 100%, 40%);">+ ((Raw_EDID (DESCRIPTOR_1 + 10) and 16#0f#) /= 0 or</span><br><span style="color: hsl(120, 100%, 40%);">+ (Raw_EDID (DESCRIPTOR_1 + 11) and 16#03#) /= 0) and</span><br><span style="color: hsl(120, 100%, 40%);">+ ( Raw_EDID (DESCRIPTOR_1 + 6) /= 0 or</span><br><span style="color: hsl(120, 100%, 40%);">+ (Raw_EDID (DESCRIPTOR_1 + 7) and 16#0f#) /= 0))</span><br><span> with</span><br><span style="color: hsl(0, 100%, 40%);">- Pre => Valid (Raw_EDID),</span><br><span style="color: hsl(0, 100%, 40%);">- Post =></span><br><span style="color: hsl(0, 100%, 40%);">- (Has_Preferred_Mode'Result =</span><br><span style="color: hsl(0, 100%, 40%);">- (Int64 (Read_LE16 (Raw_EDID, DESCRIPTOR_1)) * 10_000</span><br><span style="color: hsl(0, 100%, 40%);">- in Frequency_Type and</span><br><span style="color: hsl(0, 100%, 40%);">- ( Raw_EDID (DESCRIPTOR_1 + 2) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 4) and 16#f0#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ( Raw_EDID (DESCRIPTOR_1 + 8) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 11) and 16#c0#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ( Raw_EDID (DESCRIPTOR_1 + 9) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 11) and 16#30#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ( Raw_EDID (DESCRIPTOR_1 + 3) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 4) and 16#0f#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ( Raw_EDID (DESCRIPTOR_1 + 5) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 7) and 16#f0#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ((Raw_EDID (DESCRIPTOR_1 + 10) and 16#f0#) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 11) and 16#0c#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ((Raw_EDID (DESCRIPTOR_1 + 10) and 16#0f#) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 11) and 16#03#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ( Raw_EDID (DESCRIPTOR_1 + 6) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 7) and 16#0f#) /= 0)));</span><br><span style="color: hsl(120, 100%, 40%);">+ Pre => Valid (Raw_EDID);</span><br><span> function Preferred_Mode (Raw_EDID : Raw_EDID_Data) return Mode_Type</span><br><span> with</span><br><span style="color: hsl(0, 100%, 40%);">- Pre =></span><br><span style="color: hsl(0, 100%, 40%);">- Int64 (Read_LE16 (Raw_EDID, DESCRIPTOR_1)) * 10_000</span><br><span style="color: hsl(0, 100%, 40%);">- in Frequency_Type and</span><br><span style="color: hsl(0, 100%, 40%);">- ( Raw_EDID (DESCRIPTOR_1 + 2) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 4) and 16#f0#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ( Raw_EDID (DESCRIPTOR_1 + 8) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 11) and 16#c0#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ( Raw_EDID (DESCRIPTOR_1 + 9) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 11) and 16#30#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ( Raw_EDID (DESCRIPTOR_1 + 3) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 4) and 16#0f#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ( Raw_EDID (DESCRIPTOR_1 + 5) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 7) and 16#f0#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ((Raw_EDID (DESCRIPTOR_1 + 10) and 16#f0#) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 11) and 16#0c#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ((Raw_EDID (DESCRIPTOR_1 + 10) and 16#0f#) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 11) and 16#03#) /= 0) and</span><br><span style="color: hsl(0, 100%, 40%);">- ( Raw_EDID (DESCRIPTOR_1 + 6) /= 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- (Raw_EDID (DESCRIPTOR_1 + 7) and 16#0f#) /= 0);</span><br><span style="color: hsl(120, 100%, 40%);">+ Pre => Valid (Raw_EDID) and then Has_Preferred_Mode (Raw_EDID);</span><br><span> </span><br><span> end HW.GFX.EDID;</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/26843">change 26843</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/26843"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: libgfxinit </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I7c116762c2b3fa366318b09e60d0e1945057eec6 </div>
<div style="display:none"> Gerrit-Change-Number: 26843 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Nico Huber <nico.h@gmx.de> </div>