gma hsw+: Treat DDI E and PCH DAC disabling separately

We only use DDI E for analog VGA outputs through the PCH DAC. DDI E
might be configured differently, though, by a previously running dri-
ver, so we have to treat the two entities seperately on the All_Off()
path.

Change-Id: I603ecd29c48af43bc21acaadbedaeae451acbcf3
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/20822
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
diff --git a/common/haswell_shared/hw-gfx-gma-connectors-ddi.adb b/common/haswell_shared/hw-gfx-gma-connectors-ddi.adb
index fa62a98..b6d7284 100644
--- a/common/haswell_shared/hw-gfx-gma-connectors-ddi.adb
+++ b/common/haswell_shared/hw-gfx-gma-connectors-ddi.adb
@@ -732,7 +732,7 @@
    begin
       pragma Debug (Debug.Put_Line (GNAT.Source_Info.Enclosing_Entity));
 
-      if Port = DIGI_E then
+      if Config.Has_PCH_DAC and then Port = DIGI_E then
          PCH.VGA.Off;
          PCH.Transcoder.Off (PCH.FDI_A);
          -- PCH.VGA.Clock_Off; -- Can't tell what Linux does, if anything.
@@ -743,7 +743,9 @@
 
       if Port = DIGI_E then
          SPLL.Off;
-         PCH.FDI.Off (PCH.FDI_A, PCH.FDI.Clock_Off);
+         if Config.Has_PCH_DAC then
+            PCH.FDI.Off (PCH.FDI_A, PCH.FDI.Clock_Off);
+         end if;
       end if;
    end Off;