drm/i915/bios: ignore HDMI on port A

Submitted by Jani Nikula on Sept. 21, 2017, 1:11 p.m.

Details

Message ID 20170921131149.25872-1-jani.nikula@intel.com
State New
Headers show
Series "drm/i915/bios: ignore HDMI on port A" ( rev: 1 ) in Intel GFX

Not browsing as part of any series.

Commit Message

Jani Nikula Sept. 21, 2017, 1:11 p.m.
The hardware state readout oopses after several warnings when trying to
use HDMI on port A, if such a combination is configured in VBT. Filter
the combo out already at the VBT parsing phase.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102889
Cc: stable@vger.kernel.org
Cc: Imre Deak <imre.deak@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_bios.c | 5 +++++
 1 file changed, 5 insertions(+)

Patch hide | download patch | download mbox

diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
index 5949750a35ee..f85f736569f1 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -1162,6 +1162,11 @@  static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
 	is_hdmi = is_dvi && (child->device_type & DEVICE_TYPE_NOT_HDMI_OUTPUT) == 0;
 	is_edp = is_dp && (child->device_type & DEVICE_TYPE_INTERNAL_CONNECTOR);
 
+	if (port == PORT_A && is_hdmi) {
+		DRM_DEBUG_KMS("VBT claims port A supports HDMI, ignoring\n");
+		is_hdmi = false;
+	}
+
 	info->supports_dvi = is_dvi;
 	info->supports_hdmi = is_hdmi;
 	info->supports_dp = is_dp;

Comments

On Thu, Sep 21, 2017 at 04:11:49PM +0300, Jani Nikula wrote:
> The hardware state readout oopses after several warnings when trying to
> use HDMI on port A, if such a combination is configured in VBT. Filter
> the combo out already at the VBT parsing phase.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102889
> Cc: stable@vger.kernel.org
> Cc: Imre Deak <imre.deak@intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_bios.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
> index 5949750a35ee..f85f736569f1 100644
> --- a/drivers/gpu/drm/i915/intel_bios.c
> +++ b/drivers/gpu/drm/i915/intel_bios.c
> @@ -1162,6 +1162,11 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
>  	is_hdmi = is_dvi && (child->device_type & DEVICE_TYPE_NOT_HDMI_OUTPUT) == 0;
>  	is_edp = is_dp && (child->device_type & DEVICE_TYPE_INTERNAL_CONNECTOR);
>  
> +	if (port == PORT_A && is_hdmi) {

s/is_hdmi/is_dvi/

> +		DRM_DEBUG_KMS("VBT claims port A supports HDMI, ignoring\n");
> +		is_hdmi = false;

+ is_dvi = false;

> +	}
> +
>  	info->supports_dvi = is_dvi;
>  	info->supports_hdmi = is_hdmi;
>  	info->supports_dp = is_dp;
> -- 
> 2.11.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx