On Fri, 27 Jun 2014, Scot Doyle <lkml14@xxxxxxxxxxxxx> wrote: > Add a quirk to assert the presence of a controllable backlight. Use it to > ignore the VBT backlight presence check during backlight setup. > > Tested-by: James Duley <jagduley@xxxxxxxxx> > Signed-off-by: Scot Doyle <lkml14@xxxxxxxxxxxxx> > CC: Jani Nikula <jani.nikula@xxxxxxxxx> > --- > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index 8cea596..723b1fe 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -657,6 +657,7 @@ enum intel_sbi_destination { > #define QUIRK_PIPEA_FORCE (1<<0) > #define QUIRK_LVDS_SSC_DISABLE (1<<1) > #define QUIRK_INVERT_BRIGHTNESS (1<<2) > +#define QUIRK_BACKLIGHT_PRESENT (1<<3) > > struct intel_fbdev; > struct intel_fbc_work; > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index 065984d..c583b07 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -12290,6 +12290,14 @@ static void quirk_invert_brightness(struct drm_device *dev) > DRM_INFO("applying inverted panel brightness quirk\n"); > } > > +/* Some VBT's incorrectly indicate no backlight is present */ > +static void quirk_backlight_present(struct drm_device *dev) > +{ > + struct drm_i915_private *dev_priv = dev->dev_private; > + dev_priv->quirks |= QUIRK_BACKLIGHT_PRESENT; > + DRM_INFO("applying backlight present quirk\n"); > +} > + > struct intel_quirk { > int device; > int subsystem_vendor; > diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c > index 38a9857..dfc6b5f 100644 > --- a/drivers/gpu/drm/i915/intel_panel.c > +++ b/drivers/gpu/drm/i915/intel_panel.c > @@ -1118,8 +1118,13 @@ int intel_panel_setup_backlight(struct drm_connector *connector) > int ret; > > if (!dev_priv->vbt.backlight.present) { > - DRM_DEBUG_KMS("native backlight control not available per VBT\n"); > - return 0; > + if (dev_priv->quirks & QUIRK_BACKLIGHT_PRESENT) { > + DRM_DEBUG_KMS("no backlight present per VBT, but " > + "present per quirk\n"); Usually strings are not wrapped so that you can grep the source for them. Reviewed-by: Jani Nikula <jani.nikula@xxxxxxxxx> > + } else { > + DRM_DEBUG_KMS("no backlight present per VBT\n"); > + return 0; > + } > } > > /* set level and max in panel struct */ > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Jani Nikula, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx