diff -Naur linux-4.14.47/drivers/gpu/drm/i915/i915_params.c linux-4.14.47.patch/drivers/gpu/drm/i915/i915_params.c
--- linux-4.14.47/drivers/gpu/drm/i915/i915_params.c	2018-05-30 22:32:31.000000000 +0200
+++ linux-4.14.47.patch/drivers/gpu/drm/i915/i915_params.c	2018-06-03 12:06:35.393470287 +0200
@@ -65,6 +65,7 @@
 	.inject_load_failure = 0,
 	.enable_dpcd_backlight = false,
 	.enable_gvt = false,
+	.glkhdmi = 0,
 };
 
 module_param_named(modeset, i915.modeset, int, 0400);
@@ -257,3 +258,10 @@
 module_param_named(enable_gvt, i915.enable_gvt, bool, 0400);
 MODULE_PARM_DESC(enable_gvt,
 	"Enable support for Intel GVT-g graphics virtualization host support(default:false)");
+
+module_param_named_unsafe(glkhdmi, i915.glkhdmi, int, 0400);
+MODULE_PARM_DESC(glkhdmi,
+	"Enable GLK HDMI workarounds "
+	"(0=none/default, "
+	"1=disable HDMI 12bpc, "
+	"2=delay after transcoder disable)");
\ No newline at end of file
diff -Naur linux-4.14.47/drivers/gpu/drm/i915/i915_params.h linux-4.14.47.patch/drivers/gpu/drm/i915/i915_params.h
--- linux-4.14.47/drivers/gpu/drm/i915/i915_params.h	2018-05-30 22:32:31.000000000 +0200
+++ linux-4.14.47.patch/drivers/gpu/drm/i915/i915_params.h	2018-06-03 11:53:15.388871861 +0200
@@ -53,6 +53,7 @@
 	func(int, mmio_debug); \
 	func(int, edp_vswing); \
 	func(int, reset); \
+	func(int, glkhdmi); \
 	func(unsigned int, inject_load_failure); \
 	/* leave bools at the end to not create holes */ \
 	func(bool, alpha_support); \
diff -Naur linux-4.14.47/drivers/gpu/drm/i915/intel_ddi.c linux-4.14.47.patch/drivers/gpu/drm/i915/intel_ddi.c
--- linux-4.14.47/drivers/gpu/drm/i915/intel_ddi.c	2018-05-30 22:32:31.000000000 +0200
+++ linux-4.14.47.patch/drivers/gpu/drm/i915/intel_ddi.c	2018-06-03 12:08:15.953048694 +0200
@@ -1531,6 +1531,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.glkhdmi == 2)
+		msleep(50);
 }
 
 bool intel_ddi_connector_get_hw_state(struct intel_connector *intel_connector)
diff -Naur linux-4.14.47/drivers/gpu/drm/i915/intel_hdmi.c linux-4.14.47.patch/drivers/gpu/drm/i915/intel_hdmi.c
--- linux-4.14.47/drivers/gpu/drm/i915/intel_hdmi.c	2018-05-30 22:32:31.000000000 +0200
+++ linux-4.14.47.patch/drivers/gpu/drm/i915/intel_hdmi.c	2018-06-03 12:09:13.756807592 +0200
@@ -1324,6 +1324,9 @@
 	struct drm_connector *connector;
 	int i;
 
+	if (i915.glkhdmi == 1)
+		return false;
+
 	if (HAS_GMCH_DISPLAY(dev_priv))
 		return false;
 
