From e496c7b5b7322fb29a473312dbb57d2bd7699d6b Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Thu, 28 May 2015 16:44:23 +0200 Subject: [PATCH 1/2] drm: i915: Add an enable_backlight_control module parameter The primary use for this is to allow people to disable the i915 driver poking the backlight control hardware in cases where it seems that the i915 driver and the firmware are both poking it in incompatible ways, see e.g. : https://bugs.freedesktop.org/show_bug.cgi?id=82634 This allows allows testing if enabling it helps on system without backlight control, so that users can easily test if there system needs a QUIRK_BACKLIGHT_PRESENT quirk. Signed-off-by: Hans de Goede --- drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/i915_params.c | 6 ++++++ drivers/gpu/drm/i915/intel_panel.c | 7 ++++++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 8ae6f7f..ba5fb0a 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -2471,6 +2471,7 @@ struct i915_params { int mmio_debug; bool verbose_state_checks; bool nuclear_pageflip; + int enable_backlight_control; }; extern struct i915_params i915 __read_mostly; diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c index bb64415..d102f7b 100644 --- a/drivers/gpu/drm/i915/i915_params.c +++ b/drivers/gpu/drm/i915/i915_params.c @@ -53,6 +53,7 @@ struct i915_params i915 __read_mostly = { .mmio_debug = 0, .verbose_state_checks = 1, .nuclear_pageflip = 0, + .enable_backlight_control = -1, }; module_param_named(modeset, i915.modeset, int, 0400); @@ -184,3 +185,8 @@ MODULE_PARM_DESC(verbose_state_checks, module_param_named_unsafe(nuclear_pageflip, i915.nuclear_pageflip, bool, 0600); MODULE_PARM_DESC(nuclear_pageflip, "Force atomic modeset functionality; only planes work for now (default: false)."); + +module_param_named(enable_backlight_control, i915.enable_backlight_control, int, 0400); +MODULE_PARM_DESC(enable_backlight_control, + "Enable backlight control (intel_backlight driver). " + "(-1=auto [default], 0=disabled, 1=enabled)"); diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c index 08532d4..57853a3 100644 --- a/drivers/gpu/drm/i915/intel_panel.c +++ b/drivers/gpu/drm/i915/intel_panel.c @@ -1307,7 +1307,12 @@ int intel_panel_setup_backlight(struct drm_connector *connector, enum pipe pipe) struct intel_panel *panel = &intel_connector->panel; int ret; - if (!dev_priv->vbt.backlight.present) { + if (i915.enable_backlight_control == 0) { + DRM_DEBUG_KMS("Backlight disabled per module param\n"); + return 0; + } else if (i915.enable_backlight_control == 1) { + DRM_DEBUG_KMS("Backlight enabled per module param\n"); + } else if (!dev_priv->vbt.backlight.present) { if (dev_priv->quirks & QUIRK_BACKLIGHT_PRESENT) { DRM_DEBUG_KMS("no backlight present per VBT, but present per quirk\n"); } else { -- 2.4.1