summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/display/intel_dmc_wl.c
diff options
context:
space:
mode:
authorGustavo Sousa <gustavo.sousa@intel.com>2024-12-19 19:14:13 -0300
committerMatt Roper <matthew.d.roper@intel.com>2025-01-07 14:29:20 -0800
commit47ad90921586dbe1f37dab3f4352df8e42d2fa30 (patch)
tree7d6425fa8282ed24ec28f1f8844a8a2f50b858cb /drivers/gpu/drm/i915/display/intel_dmc_wl.c
parent15133582465fe19252eb1dd90c4570bb42e795ab (diff)
drm/i915/dmc_wl: Use enum values for enable_dmc_wl
Currently, after sanitization, enable_dmc_wl will behave like a boolean parameter (enabled vs disabled). However, in upcoming changes, we will allow more values for debugging purposes. For that, let's make the sanitized value an enumeration. Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com> Reviewed-by: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20241219221429.109668-2-gustavo.sousa@intel.com Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_dmc_wl.c')
-rw-r--r--drivers/gpu/drm/i915/display/intel_dmc_wl.c29
1 files changed, 23 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_dmc_wl.c b/drivers/gpu/drm/i915/display/intel_dmc_wl.c
index 02de3ae15074..0850a7d866cc 100644
--- a/drivers/gpu/drm/i915/display/intel_dmc_wl.c
+++ b/drivers/gpu/drm/i915/display/intel_dmc_wl.c
@@ -50,6 +50,15 @@
#define DMC_WAKELOCK_CTL_TIMEOUT_US 5000
#define DMC_WAKELOCK_HOLD_TIME 50
+/*
+ * Possible non-negative values for the enable_dmc_wl param.
+ */
+enum {
+ ENABLE_DMC_WL_DISABLED,
+ ENABLE_DMC_WL_ENABLED,
+ ENABLE_DMC_WL_MAX,
+};
+
struct intel_dmc_wl_range {
u32 start;
u32 end;
@@ -270,12 +279,20 @@ static bool __intel_dmc_wl_supported(struct intel_display *display)
static void intel_dmc_wl_sanitize_param(struct intel_display *display)
{
- if (!HAS_DMC_WAKELOCK(display))
- display->params.enable_dmc_wl = 0;
- else if (display->params.enable_dmc_wl >= 0)
- display->params.enable_dmc_wl = !!display->params.enable_dmc_wl;
- else
- display->params.enable_dmc_wl = DISPLAY_VER(display) >= 30;
+ if (!HAS_DMC_WAKELOCK(display)) {
+ display->params.enable_dmc_wl = ENABLE_DMC_WL_DISABLED;
+ } else if (display->params.enable_dmc_wl < 0) {
+ if (DISPLAY_VER(display) >= 30)
+ display->params.enable_dmc_wl = ENABLE_DMC_WL_ENABLED;
+ else
+ display->params.enable_dmc_wl = ENABLE_DMC_WL_DISABLED;
+ } else if (display->params.enable_dmc_wl >= ENABLE_DMC_WL_MAX) {
+ display->params.enable_dmc_wl = ENABLE_DMC_WL_ENABLED;
+ }
+
+ drm_WARN_ON(display->drm,
+ display->params.enable_dmc_wl < 0 ||
+ display->params.enable_dmc_wl >= ENABLE_DMC_WL_MAX);
drm_dbg_kms(display->drm, "Sanitized enable_dmc_wl value: %d\n",
display->params.enable_dmc_wl);