Commit 47ad9092 authored by Gustavo Sousa's avatar Gustavo Sousa Committed by Matt Roper
Browse files

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: default avatarGustavo Sousa <gustavo.sousa@intel.com>
Reviewed-by: default avatarDnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241219221429.109668-2-gustavo.sousa@intel.com


Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
parent 15133582
Loading
Loading
Loading
Loading
+23 −6
Original line number Diff line number Diff line
@@ -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;
	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 = DISPLAY_VER(display) >= 30;
			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);