aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0981-drm-Document-variable-refresh-properties.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0981-drm-Document-variable-refresh-properties.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0981-drm-Document-variable-refresh-properties.patch118
1 files changed, 118 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0981-drm-Document-variable-refresh-properties.patch b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0981-drm-Document-variable-refresh-properties.patch
new file mode 100644
index 00000000..02a289e9
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0981-drm-Document-variable-refresh-properties.patch
@@ -0,0 +1,118 @@
+From f9df0128a837d612fa402226fa84fa727dd53968 Mon Sep 17 00:00:00 2001
+From: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
+Date: Thu, 4 Oct 2018 14:38:42 -0400
+Subject: [PATCH 0981/2940] drm: Document variable refresh properties
+
+These include the drm_connector 'vrr_capable' and the drm_crtc
+'vrr_enabled' properties.
+
+Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
+Reviewed-by: Harry Wentland <harry.wentland@amd.com>
+Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Chaudhary Amit Kumar <Chaudharyamit.Kumar@amd.com>
+---
+ Documentation/gpu/drm-kms.rst | 7 ++++
+ drivers/gpu/drm/drm_connector.c | 68 +++++++++++++++++++++++++++++++++
+ 2 files changed, 75 insertions(+)
+
+diff --git a/Documentation/gpu/drm-kms.rst b/Documentation/gpu/drm-kms.rst
+index 5dee6b8a4c12..ace1d2765cef 100644
+--- a/Documentation/gpu/drm-kms.rst
++++ b/Documentation/gpu/drm-kms.rst
+@@ -563,6 +563,13 @@ Explicit Fencing Properties
+ .. kernel-doc:: drivers/gpu/drm/drm_atomic.c
+ :doc: explicit fencing properties
+
++
++Variable Refresh Properties
++---------------------------
++
++.. kernel-doc:: drivers/gpu/drm/drm_connector.c
++ :doc: Variable refresh properties
++
+ Existing KMS Properties
+ -----------------------
+
+diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
+index 92bebc4c9a8d..2308dfb880f2 100644
+--- a/drivers/gpu/drm/drm_connector.c
++++ b/drivers/gpu/drm/drm_connector.c
+@@ -1250,6 +1250,74 @@ int drm_mode_create_scaling_mode_property(struct drm_device *dev)
+ }
+ EXPORT_SYMBOL(drm_mode_create_scaling_mode_property);
+
++/**
++ * DOC: Variable refresh properties
++ *
++ * Variable refresh rate capable displays can dynamically adjust their
++ * refresh rate by extending the duration of their vertical front porch
++ * until page flip or timeout occurs. This can reduce or remove stuttering
++ * and latency in scenarios where the page flip does not align with the
++ * vblank interval.
++ *
++ * An example scenario would be an application flipping at a constant rate
++ * of 48Hz on a 60Hz display. The page flip will frequently miss the vblank
++ * interval and the same contents will be displayed twice. This can be
++ * observed as stuttering for content with motion.
++ *
++ * If variable refresh rate was active on a display that supported a
++ * variable refresh range from 35Hz to 60Hz no stuttering would be observable
++ * for the example scenario. The minimum supported variable refresh rate of
++ * 35Hz is below the page flip frequency and the vertical front porch can
++ * be extended until the page flip occurs. The vblank interval will be
++ * directly aligned to the page flip rate.
++ *
++ * Not all userspace content is suitable for use with variable refresh rate.
++ * Large and frequent changes in vertical front porch duration may worsen
++ * perceived stuttering for input sensitive applications.
++ *
++ * Panel brightness will also vary with vertical front porch duration. Some
++ * panels may have noticeable differences in brightness between the minimum
++ * vertical front porch duration and the maximum vertical front porch duration.
++ * Large and frequent changes in vertical front porch duration may produce
++ * observable flickering for such panels.
++ *
++ * Userspace control for variable refresh rate is supported via properties
++ * on the &drm_connector and &drm_crtc objects.
++ *
++ * "vrr_capable":
++ * Optional &drm_connector boolean property that drivers should attach
++ * with drm_connector_attach_vrr_capable_property() on connectors that
++ * could support variable refresh rates. Drivers should update the
++ * property value by calling drm_connector_set_vrr_capable_property().
++ *
++ * Absence of the property should indicate absence of support.
++ *
++ * "vrr_enabled":
++ * Default &drm_crtc boolean property that notifies the driver that the
++ * content on the CRTC is suitable for variable refresh rate presentation.
++ * The driver will take this property as a hint to enable variable
++ * refresh rate support if the receiver supports it, ie. if the
++ * "vrr_capable" property is true on the &drm_connector object. The
++ * vertical front porch duration will be extended until page-flip or
++ * timeout when enabled.
++ *
++ * The minimum vertical front porch duration is defined as the vertical
++ * front porch duration for the current mode.
++ *
++ * The maximum vertical front porch duration is greater than or equal to
++ * the minimum vertical front porch duration. The duration is derived
++ * from the minimum supported variable refresh rate for the connector.
++ *
++ * The driver may place further restrictions within these minimum
++ * and maximum bounds.
++ *
++ * The semantics for the vertical blank timestamp differ when
++ * variable refresh rate is active. The vertical blank timestamp
++ * is defined to be an estimate using the current mode's fixed
++ * refresh rate timings. The semantics for the page-flip event
++ * timestamp remain the same.
++ */
++
+ /**
+ * drm_connector_attach_vrr_capable_property - creates the
+ * vrr_capable property
+--
+2.17.1
+