On Fri, 06 Jun 2014, ville.syrj...@linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrj...@linux.intel.com>
>
> My Fujitsu-Siemens Lifebook S6010 definitely has a VGA connector, but
> the VBT says different. Ignore the VBT for 830M since it seems such
> old machines would generally have a VGA connector.
>
> This is a regression caused by:
>  commit 9c2a03c2a194c086949f25d332937ac8dc4d9f7e
>  Author: Jesse Barnes <jbar...@virtuousgeek.org>
>  Date:   Fri Apr 4 16:12:07 2014 -0700
>
>     drm/i915: use VBT to determine whether to enumerate the VGA port
>
> While at it refactor the code a bit to be more pleasing to the eye.

Going through some old patches I spotted this one. It no longer applies,
and the crt presence check has been changes. Do those changes fix the
issue here as well?

Jani.


>
> v2: Move the check into intel_crt_init() (Daniel)
>
> Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_crt.c     | 22 ++++++++++++++++++++--
>  drivers/gpu/drm/i915/intel_display.c |  3 +--
>  2 files changed, 21 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_crt.c 
> b/drivers/gpu/drm/i915/intel_crt.c
> index 5a045d3..5104e9f 100644
> --- a/drivers/gpu/drm/i915/intel_crt.c
> +++ b/drivers/gpu/drm/i915/intel_crt.c
> @@ -801,6 +801,25 @@ static const struct dmi_system_id intel_no_crt[] = {
>       { }
>  };
>  
> +static bool has_crt_support(struct drm_device *dev)
> +{
> +     struct drm_i915_private *dev_priv = dev->dev_private;
> +
> +     /* no hardware support whatsoever */
> +     if (IS_ULT(dev) || IS_CHERRYVIEW(dev))
> +             return false;
> +
> +     /* Skip machines without VGA that falsely report hotplug events */
> +     if (dmi_check_system(intel_no_crt))
> +             return false;
> +
> +     /* Fujitsu-Siemens Lifebook S6010 VBT lies */
> +     if (IS_I830(dev))
> +             return true;
> +
> +     return dev_priv->vbt.int_crt_support;
> +}
> +
>  void intel_crt_init(struct drm_device *dev)
>  {
>       struct drm_connector *connector;
> @@ -808,8 +827,7 @@ void intel_crt_init(struct drm_device *dev)
>       struct intel_connector *intel_connector;
>       struct drm_i915_private *dev_priv = dev->dev_private;
>  
> -     /* Skip machines without VGA that falsely report hotplug events */
> -     if (dmi_check_system(intel_no_crt))
> +     if (!has_crt_support(dev))
>               return;
>  
>       crt = kzalloc(sizeof(struct intel_crt), GFP_KERNEL);
> diff --git a/drivers/gpu/drm/i915/intel_display.c 
> b/drivers/gpu/drm/i915/intel_display.c
> index b5cbb28..1060caa 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -11376,8 +11376,7 @@ static void intel_setup_outputs(struct drm_device 
> *dev)
>  
>       intel_lvds_init(dev);
>  
> -     if (!IS_ULT(dev) && !IS_CHERRYVIEW(dev) && 
> dev_priv->vbt.int_crt_support)
> -             intel_crt_init(dev);
> +     intel_crt_init(dev);
>  
>       if (HAS_DDI(dev)) {
>               int found;
> -- 
> 1.8.5.5
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to