mirror of
https://github.com/torvalds/linux.git
synced 2024-12-27 21:33:00 +00:00
drm/amd/display: Add Freesync video documentation
Recently, we added support for an experimental feature named Freesync video; for more details on that, refer to: commit6f59f229f8
("drm/amd/display: Skip modeset for front porch change") commitd10cd527f5
("drm/amd/display: Add freesync video modes based on preferred modes") commit0eb1af2e82
("drm/amd/display: Add module parameter for freesync video mode") Nevertheless, we did not document it in detail in our driver. This commit introduces a kernel-doc and expands the module parameter description. Cc: Aurabindo Pillai <aurabindo.pillai@amd.com> Cc: Sean Paul <seanpaul@chromium.org> Cc: Harry Wentland <Harry.Wentland@amd.com> Signed-off-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Reviewed by: Aurabindo Pillai <aurabindo.pillai@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
26c0504ad3
commit
5fd953a3f6
@ -66,3 +66,9 @@ Display Core
|
||||
============
|
||||
|
||||
**WIP**
|
||||
|
||||
FreeSync Video
|
||||
--------------
|
||||
|
||||
.. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
:doc: FreeSync Video
|
||||
|
@ -837,8 +837,23 @@ module_param_named(tmz, amdgpu_tmz, int, 0444);
|
||||
|
||||
/**
|
||||
* DOC: freesync_video (uint)
|
||||
* Enabled the optimization to adjust front porch timing to achieve seamless mode change experience
|
||||
* when setting a freesync supported mode for which full modeset is not needed.
|
||||
* Enable the optimization to adjust front porch timing to achieve seamless
|
||||
* mode change experience when setting a freesync supported mode for which full
|
||||
* modeset is not needed.
|
||||
*
|
||||
* The Display Core will add a set of modes derived from the base FreeSync
|
||||
* video mode into the corresponding connector's mode list based on commonly
|
||||
* used refresh rates and VRR range of the connected display, when users enable
|
||||
* this feature. From the userspace perspective, they can see a seamless mode
|
||||
* change experience when the change between different refresh rates under the
|
||||
* same resolution. Additionally, userspace applications such as Video playback
|
||||
* can read this modeset list and change the refresh rate based on the video
|
||||
* frame rate. Finally, the userspace can also derive an appropriate mode for a
|
||||
* particular refresh rate based on the FreeSync Mode and add it to the
|
||||
* connector's mode list.
|
||||
*
|
||||
* Note: This is an experimental feature.
|
||||
*
|
||||
* The default value: 0 (off).
|
||||
*/
|
||||
MODULE_PARM_DESC(
|
||||
|
@ -5646,6 +5646,36 @@ static void apply_dsc_policy_for_stream(struct amdgpu_dm_connector *aconnector,
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* DOC: FreeSync Video
|
||||
*
|
||||
* When a userspace application wants to play a video, the content follows a
|
||||
* standard format definition that usually specifies the FPS for that format.
|
||||
* The below list illustrates some video format and the expected FPS,
|
||||
* respectively:
|
||||
*
|
||||
* - TV/NTSC (23.976 FPS)
|
||||
* - Cinema (24 FPS)
|
||||
* - TV/PAL (25 FPS)
|
||||
* - TV/NTSC (29.97 FPS)
|
||||
* - TV/NTSC (30 FPS)
|
||||
* - Cinema HFR (48 FPS)
|
||||
* - TV/PAL (50 FPS)
|
||||
* - Commonly used (60 FPS)
|
||||
* - Multiples of 24 (48,72,96 FPS)
|
||||
*
|
||||
* The list of standards video format is not huge and can be added to the
|
||||
* connector modeset list beforehand. With that, userspace can leverage
|
||||
* FreeSync to extends the front porch in order to attain the target refresh
|
||||
* rate. Such a switch will happen seamlessly, without screen blanking or
|
||||
* reprogramming of the output in any other way. If the userspace requests a
|
||||
* modesetting change compatible with FreeSync modes that only differ in the
|
||||
* refresh rate, DC will skip the full update and avoid blink during the
|
||||
* transition. For example, the video player can change the modesetting from
|
||||
* 60Hz to 30Hz for playing TV/NTSC content when it goes full screen without
|
||||
* causing any display blink. This same concept can be applied to a mode
|
||||
* setting change.
|
||||
*/
|
||||
static struct drm_display_mode *
|
||||
get_highest_refresh_rate_mode(struct amdgpu_dm_connector *aconnector,
|
||||
bool use_probed_modes)
|
||||
|
Loading…
Reference in New Issue
Block a user