diff options
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.patch | 118 |
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 + |