On Fri, 27 Jun 2014, Scot Doyle <lkm...@scotdoyle.com> 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 <jagdu...@gmail.com>
> Signed-off-by: Scot Doyle <lkm...@scotdoyle.com>
> CC: Jani Nikula <jani.nik...@intel.com>
> ---
> 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.nik...@intel.com>


> +             } 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
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to