diff mbox series

[RFC,v2,2/2] drm/i915/vrr: Attach and set drm crtc vrr_enabled property

Message ID 20220425064612.2993587-3-bhanuprakash.modem@intel.com (mailing list archive)
State New, archived
Headers show
Series Attach and Set vrr_enabled property | expand

Commit Message

Modem, Bhanuprakash April 25, 2022, 6:46 a.m. UTC
This function attaches & sets the vrr_enabled property for crtc
based on the platform support and the request from userspace.

V2: Check for platform support before updating the prop.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
 drivers/gpu/drm/i915/display/intel_crtc.c | 3 +++
 drivers/gpu/drm/i915/display/intel_vrr.c  | 8 ++++++++
 2 files changed, 11 insertions(+)
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c
index 4442aa355f86..36deaca9af66 100644
--- a/drivers/gpu/drm/i915/display/intel_crtc.c
+++ b/drivers/gpu/drm/i915/display/intel_crtc.c
@@ -366,6 +366,9 @@  int intel_crtc_init(struct drm_i915_private *dev_priv, enum pipe pipe)
 						BIT(DRM_SCALING_FILTER_DEFAULT) |
 						BIT(DRM_SCALING_FILTER_NEAREST_NEIGHBOR));
 
+	if (HAS_VRR(dev_priv))
+		drm_mode_crtc_attach_vrr_enabled_property(&crtc->base);
+
 	intel_color_init(crtc);
 
 	intel_crtc_drrs_init(crtc);
diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c b/drivers/gpu/drm/i915/display/intel_vrr.c
index 396f2f994fa0..7263b35550de 100644
--- a/drivers/gpu/drm/i915/display/intel_vrr.c
+++ b/drivers/gpu/drm/i915/display/intel_vrr.c
@@ -160,6 +160,10 @@  void intel_vrr_enable(struct intel_encoder *encoder,
 	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
 	u32 trans_vrr_ctl;
 
+	if (HAS_VRR(dev_priv))
+		drm_mode_crtc_set_vrr_enabled_property(crtc_state->uapi.crtc,
+						       crtc_state->vrr.enable);
+
 	if (!crtc_state->vrr.enable)
 		return;
 
@@ -211,6 +215,10 @@  void intel_vrr_disable(const struct intel_crtc_state *old_crtc_state)
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
 	enum transcoder cpu_transcoder = old_crtc_state->cpu_transcoder;
 
+	if (HAS_VRR(dev_priv))
+		drm_mode_crtc_set_vrr_enabled_property(old_crtc_state->uapi.crtc,
+						       false);
+
 	if (!old_crtc_state->vrr.enable)
 		return;