Re: [PATCH 19/21] drm/i915: Never allow VGA on LPT LP PCH

Paulo Zanoni
2013-11-08T13:37:37Z

2013/11/8 Ben Widawsky <benjamin.widawsky@intel.com>:
> Sometimes the VBT lies, I guess? I can't explain why this occurs, but it
> does on the early platforms we have.

We don't decide to init/not-init VGA based on the VBT. Function
intel_setup_outputs has "if (!IS_ULT(dev)) intel_crtc_init(dev)". As
far as I remember, we're temporarily assuming BDW has the LPT-LP PCH
right? AFAIK, only ULT machines are supposed to have a LP PCH, so
maybe we should be treating your BDW machines as ULTs? Did you
physically check whether we have the CRT port or not? Maybe we should
request some clarification on how these PCH-LP/ULT combinations will
be handled in BDW.

>
> Since it seems never unsafe to do this, I don't feel we need any quirk
> or warnings.
>
> Cc: Paulo Zanoni <przanoni@gmail.com>
> Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
> ---
> drivers/gpu/drm/i915/intel_display.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 6ced1a1..00b0bf9 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -5671,6 +5671,7 @@ static void lpt_disable_clkout_dp(struct drm_device *dev)
>
> static void lpt_init_pch_refclk(struct drm_device *dev)
> {
> + struct drm_i915_private *dev_priv = dev->dev_private;
> struct drm_mode_config *mode_config = &dev->mode_config;
> struct intel_encoder *encoder;
> bool has_vga = false;
> @@ -5683,7 +5684,7 @@ static void lpt_init_pch_refclk(struct drm_device *dev)
> }
> }
>
> - if (has_vga)
> + if (dev_priv->pch_id != INTEL_PCH_LPT_LP_DEVICE_ID_TYPE && has_vga)

As suggested above, this is really not the place to do this. Please
see intel_setup_outputs().

> lpt_enable_clkout_dp(dev, true, true);
> else
> lpt_disable_clkout_dp(dev);
> --
> 1.8.4.2
>

--
Paulo Zanoni