On Fri, Jun 06, 2014 at 10:44:12PM +0300, ville.syrjala@xxxxxxxxxxxxxxx wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > 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@xxxxxxxxxxxxxxxx> > 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. > > v2: Move the check into intel_crt_init() (Daniel) > > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx> We'll probably get more of these ... -Daniel > --- > 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 > -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx