Re: [PATCH v2 09/15] drm/i915: Ignore VBT int_crt_support on 830M

Ville Syrjälä
2014-10-24T14:12:25Z

On Fri, Oct 24, 2014 at 04:23:22PM +0300, Jani Nikula wrote:
> On Fri, 06 Jun 2014, ville.syrjala@linux.intel.com wrote:
> > From: Ville Syrjälä <ville.syrjala@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 <jbarnes@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?

This was fixed in:

commit 84b4e042c4707bd1bf05094a51111403d680dc39
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date: Wed Jun 25 08:24:29 2014 -0700

drm/i915: only apply crt_present check on VLV

>
> Jani.
>
>
> >
> > v2: Move the check into intel_crt_init() (Daniel)
> >
> > Signed-off-by: Ville Syrjälä <ville.syrjala@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

--
Ville Syrjälä
Intel OTC