diff -Naur linux-4.16.13/drivers/gpu/drm/i915/i915_params.c linux-4.16.13.patch/drivers/gpu/drm/i915/i915_params.c
--- linux-4.16.13/drivers/gpu/drm/i915/i915_params.c	2018-05-30 08:17:45.000000000 +0200
+++ linux-4.16.13.patch/drivers/gpu/drm/i915/i915_params.c	2018-05-30 18:55:49.983470906 +0200
@@ -175,6 +175,12 @@
 i915_param_named(enable_gvt, bool, 0400,
 	"Enable support for Intel GVT-g graphics virtualization host support(default:false)");
 
+i915_param_named_unsafe(glkhdmi, int, 0400,
+	"Enable GLK HDMI workarounds "
+	"(0=none/default, "
+	"1=disable HDMI 12bpc, "
+	"2=delay after transcoder disable)");
+
 static __always_inline void _print_param(struct drm_printer *p,
 					 const char *name,
 					 const char *type,
diff -Naur linux-4.16.13/drivers/gpu/drm/i915/i915_params.h linux-4.16.13.patch/drivers/gpu/drm/i915/i915_params.h
--- linux-4.16.13/drivers/gpu/drm/i915/i915_params.h	2018-05-30 08:17:45.000000000 +0200
+++ linux-4.16.13.patch/drivers/gpu/drm/i915/i915_params.h	2018-05-30 18:51:38.444592063 +0200
@@ -69,7 +69,8 @@
 	param(bool, nuclear_pageflip, false) \
 	param(bool, enable_dp_mst, true) \
 	param(bool, enable_dpcd_backlight, false) \
-	param(bool, enable_gvt, false)
+	param(bool, enable_gvt, false) \
+	param(int, glkhdmi, 0)
 
 #define MEMBER(T, member, ...) T member;
 struct i915_params {
diff -Naur linux-4.16.13/drivers/gpu/drm/i915/intel_ddi.c linux-4.16.13.patch/drivers/gpu/drm/i915/intel_ddi.c
--- linux-4.16.13/drivers/gpu/drm/i915/intel_ddi.c	2018-05-30 08:17:45.000000000 +0200
+++ linux-4.16.13.patch/drivers/gpu/drm/i915/intel_ddi.c	2018-05-30 18:51:38.448592045 +0200
@@ -1613,6 +1613,9 @@
 	val &= ~(TRANS_DDI_FUNC_ENABLE | TRANS_DDI_PORT_MASK | TRANS_DDI_DP_VC_PAYLOAD_ALLOC);
 	val |= TRANS_DDI_PORT_NONE;
 	I915_WRITE(reg, val);
+
+	if (i915_modparams.glkhdmi == 2)
+		msleep(50);
 }
 
 bool intel_ddi_connector_get_hw_state(struct intel_connector *intel_connector)
diff -Naur linux-4.16.13/drivers/gpu/drm/i915/intel_hdmi.c linux-4.16.13.patch/drivers/gpu/drm/i915/intel_hdmi.c
--- linux-4.16.13/drivers/gpu/drm/i915/intel_hdmi.c	2018-05-30 08:17:45.000000000 +0200
+++ linux-4.16.13.patch/drivers/gpu/drm/i915/intel_hdmi.c	2018-05-30 18:51:38.448592045 +0200
@@ -1350,6 +1350,9 @@
 	struct drm_connector *connector;
 	int i;
 
+	if (i915_modparams.glkhdmi == 1)
+		return false;
+
 	if (HAS_GMCH_DISPLAY(dev_priv))
 		return false;
 
