drm/i915: Check backlight type while doing eDP backlight initializaiton
If LFP backlight type setting from VBT was "VESA eDP AUX Interface". Driver should check panel capability and try to initialize aux backlight. No matter i915_modparams.enable_dpcd_backlight was enabled or not. v2: access dev_priv->vbt.backlight.type directly and remove unused function. v3: 1. Modify i915.enable_dpcd_backlight type from bool to int and give default value as 0 (disable). 2. Add a judgement to check LFP backlight type was aux interface or not. Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Cc: Jani Nikula <jani.nikula@intel.com> Cc: Jose Roberto de Souza <jose.souza@intel.com> Cc: Cooper Chiou <cooper.chiou@intel.com> Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/1561045456-12171-1-git-send-email-shawn.c.lee@intel.com
This commit is contained in:
parent
93d7a3b4be
commit
5ccf2027bb
|
@ -42,6 +42,7 @@ enum intel_backlight_type {
|
|||
INTEL_BACKLIGHT_DISPLAY_DDI,
|
||||
INTEL_BACKLIGHT_DSI_DCS,
|
||||
INTEL_BACKLIGHT_PANEL_DRIVER_INTERFACE,
|
||||
INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE,
|
||||
};
|
||||
|
||||
struct edp_power_seq {
|
||||
|
|
|
@ -264,8 +264,11 @@ intel_dp_aux_display_control_capable(struct intel_connector *connector)
|
|||
int intel_dp_aux_init_backlight_funcs(struct intel_connector *intel_connector)
|
||||
{
|
||||
struct intel_panel *panel = &intel_connector->panel;
|
||||
struct drm_i915_private *dev_priv = to_i915(intel_connector->base.dev);
|
||||
|
||||
if (!i915_modparams.enable_dpcd_backlight)
|
||||
if (i915_modparams.enable_dpcd_backlight == 0 ||
|
||||
(i915_modparams.enable_dpcd_backlight == -1 &&
|
||||
dev_priv->vbt.backlight.type != INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE))
|
||||
return -ENODEV;
|
||||
|
||||
if (!intel_dp_aux_display_control_capable(intel_connector))
|
||||
|
|
|
@ -169,8 +169,9 @@ i915_param_named_unsafe(inject_load_failure, uint, 0400,
|
|||
"Force an error after a number of failure check points (0:disabled (default), N:force failure at the Nth failure check point)");
|
||||
#endif
|
||||
|
||||
i915_param_named(enable_dpcd_backlight, bool, 0600,
|
||||
"Enable support for DPCD backlight control (default:false)");
|
||||
i915_param_named(enable_dpcd_backlight, int, 0600,
|
||||
"Enable support for DPCD backlight control"
|
||||
"(-1=use per-VBT LFP backlight type setting, 0=disabled [default], 1=enabled)");
|
||||
|
||||
#if IS_ENABLED(CONFIG_DRM_I915_GVT)
|
||||
i915_param_named(enable_gvt, bool, 0400,
|
||||
|
|
|
@ -64,6 +64,7 @@ struct drm_printer;
|
|||
param(int, reset, 2) \
|
||||
param(unsigned int, inject_load_failure, 0) \
|
||||
param(int, fastboot, -1) \
|
||||
param(int, enable_dpcd_backlight, 0) \
|
||||
param(char *, force_probe, CONFIG_DRM_I915_FORCE_PROBE) \
|
||||
/* leave bools at the end to not create holes */ \
|
||||
param(bool, alpha_support, IS_ENABLED(CONFIG_DRM_I915_ALPHA_SUPPORT)) \
|
||||
|
@ -76,7 +77,6 @@ struct drm_printer;
|
|||
param(bool, verbose_state_checks, true) \
|
||||
param(bool, nuclear_pageflip, false) \
|
||||
param(bool, enable_dp_mst, true) \
|
||||
param(bool, enable_dpcd_backlight, false) \
|
||||
param(bool, enable_gvt, false)
|
||||
|
||||
#define MEMBER(T, member, ...) T member;
|
||||
|
|
Loading…
Reference in New Issue