Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff -pruN a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c
- --- a/drivers/gpu/drm/i915/i915_params.c 2018-05-25 07:46:20.000000000 -0700
- +++ b/drivers/gpu/drm/i915/i915_params.c 2018-05-26 16:52:37.204352639 -0700
- @@ -175,6 +175,10 @@ i915_param_named(enable_dpcd_backlight,
- 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=add 50ms delay after transcoder disable to give the level shifter time to settle)");
- +
- static __always_inline void _print_param(struct drm_printer *p,
- const char *name,
- const char *type,
- diff -pruN a/drivers/gpu/drm/i915/i915_params.h b/drivers/gpu/drm/i915/i915_params.h
- --- a/drivers/gpu/drm/i915/i915_params.h 2018-05-25 07:46:20.000000000 -0700
- +++ b/drivers/gpu/drm/i915/i915_params.h 2018-05-26 16:52:37.204352639 -0700
- @@ -69,7 +69,8 @@ struct drm_printer;
- 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, CONFIG_I915_GLK_HDMI_NOSIGNAL_WORKAROUND)
- #define MEMBER(T, member, ...) T member;
- struct i915_params {
- diff -pruN a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
- --- a/drivers/gpu/drm/i915/intel_ddi.c 2018-05-25 07:46:20.000000000 -0700
- +++ b/drivers/gpu/drm/i915/intel_ddi.c 2018-05-26 16:52:37.207352625 -0700
- @@ -1613,6 +1613,9 @@ void intel_ddi_disable_transcoder_func(s
- 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 -pruN a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
- --- a/drivers/gpu/drm/i915/intel_hdmi.c 2018-05-25 07:46:20.000000000 -0700
- +++ b/drivers/gpu/drm/i915/intel_hdmi.c 2018-05-26 16:52:37.213352599 -0700
- @@ -1350,6 +1350,9 @@ static bool hdmi_12bpc_possible(const st
- struct drm_connector *connector;
- int i;
- + if (i915_modparams.glkhdmi == 1)
- + return false;
- +
- if (HAS_GMCH_DISPLAY(dev_priv))
- return false;
- diff -pruN a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig
- --- a/drivers/gpu/drm/i915/Kconfig 2018-05-25 07:46:20.000000000 -0700
- +++ b/drivers/gpu/drm/i915/Kconfig 2018-05-26 16:52:37.197352669 -0700
- @@ -126,6 +126,23 @@ config DRM_I915_GVT_KVMGT
- Choose this option if you want to enable KVMGT support for
- Intel GVT-g.
- +choice
- + prompt "Workaround for Gemini-Lake HDMI no signal"
- + depends on DRM_I915
- + config GLK_HDMI_WORKAROUND_0
- + bool "None"
- + config GLK_HDMI_WORKAROUND_1
- + bool "Disable 12bpc HDMI support"
- + config GLK_HDMI_WORKAROUND_2
- + bool "Add 50ms delay after disabling the transcoder"
- +endchoice
- +
- +config I915_GLK_HDMI_NOSIGNAL_WORKAROUND
- + int
- + default 0 if GLK_HDMI_WORKAROUND_0
- + default 1 if GLK_HDMI_WORKAROUND_1
- + default 2 if GLK_HDMI_WORKAROUND_2
- +
- menu "drm/i915 Debugging"
- depends on DRM_I915
- depends on EXPERT
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement