The struct has the action to be performed - squash, crawl
or modeset and the corresponding cdclk which is the desired
cdclk. This is the structure that gets populated during
atomic check once it is determined what the cdclk change looks
like

Signed-off-by: Anusha Srivatsa <anusha.sriva...@intel.com>
---
 drivers/gpu/drm/i915/display/intel_cdclk.h | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.h 
b/drivers/gpu/drm/i915/display/intel_cdclk.h
index c674879a84a5..3869f93e8ad2 100644
--- a/drivers/gpu/drm/i915/display/intel_cdclk.h
+++ b/drivers/gpu/drm/i915/display/intel_cdclk.h
@@ -11,13 +11,27 @@
 #include "intel_display.h"
 #include "intel_global_state.h"
 
+#define        MAX_CDCLK_ACTIONS       1
+
 struct drm_i915_private;
 struct intel_atomic_state;
 struct intel_crtc_state;
 
+enum cdclk_sequence {
+       CDCLK_INVALID_ACTION = -1,
+
+       CDCLK_SQUASH_ONLY = 0,
+       CDCLK_CRAWL_ONLY,
+       CDCLK_LEGACY,
+};
+
 struct intel_cdclk_config {
        unsigned int cdclk, vco, ref, bypass;
        u8 voltage_level;
+       struct cdclk_step {
+               enum cdclk_sequence action;
+               u32 cdclk;
+       } steps[MAX_CDCLK_ACTIONS];
 };
 
 struct intel_cdclk_state {
-- 
2.25.1

Reply via email to