drm/i915/dmc_wl: Use enum values for enable_dmc_wl
authorGustavo Sousa <gustavo.sousa@intel.com>
Thu, 19 Dec 2024 22:14:13 +0000 (19:14 -0300)
committerMatt Roper <matthew.d.roper@intel.com>
Tue, 7 Jan 2025 22:29:20 +0000 (14:29 -0800)
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>
drivers/gpu/drm/i915/display/intel_dmc_wl.c

index 02de3ae150749bd7ecd9f4b93b6016429c3e845d..0850a7d866cc8034f662c9c6c4f497660b6256e1 100644 (file)
 #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);