From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 1/5] quirk asserts controllable backlight presence, overriding VBT Date: Sat, 28 Jun 2014 16:52:28 +0300 Message-ID: <877g41jg4j.fsf@intel.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 5C32D89EAE for ; Sat, 28 Jun 2014 06:52:37 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Scot Doyle , intel-gfx@lists.freedesktop.org, James Duley List-Id: intel-gfx@lists.freedesktop.org On Fri, 27 Jun 2014, Scot Doyle 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 > Signed-off-by: Scot Doyle > CC: Jani Nikula > --- > 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 > + } 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@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Jani Nikula, Intel Open Source Technology Center