Documentation/gpu: Add asynchronous flip documentation for i915
Add the details of the implementation of asynchronous flips for i915. v7: -Rebased. v8: -Rebased. v9: -Rebased. v10: Move all documentation changes to this patch. (Ville) Signed-off-by: Karthik B S <karthik.b.s@intel.com> Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200921110210.21182-8-karthik.b.s@intel.com
This commit is contained in:
Родитель
e5cb1afba4
Коммит
6914c9685e
|
@ -118,6 +118,12 @@ Atomic Plane Helpers
|
|||
.. kernel-doc:: drivers/gpu/drm/i915/display/intel_atomic_plane.c
|
||||
:internal:
|
||||
|
||||
Asynchronous Page Flip
|
||||
----------------------
|
||||
|
||||
.. kernel-doc:: drivers/gpu/drm/i915/display/intel_display.c
|
||||
:doc: asynchronous flip implementation
|
||||
|
||||
Output Probing
|
||||
--------------
|
||||
|
||||
|
|
|
@ -14929,6 +14929,24 @@ static bool intel_cpu_transcoders_need_modeset(struct intel_atomic_state *state,
|
|||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* DOC: asynchronous flip implementation
|
||||
*
|
||||
* Asynchronous page flip is the implementation for the DRM_MODE_PAGE_FLIP_ASYNC
|
||||
* flag. Currently async flip is only supported via the drmModePageFlip IOCTL.
|
||||
* Correspondingly, support is currently added for primary plane only.
|
||||
*
|
||||
* Async flip can only change the plane surface address, so anything else
|
||||
* changing is rejected from the intel_atomic_check_async() function.
|
||||
* Once this check is cleared, flip done interrupt is enabled using
|
||||
* the skl_enable_flip_done() function.
|
||||
*
|
||||
* As soon as the surface address register is written, flip done interrupt is
|
||||
* generated and the requested events are sent to the usersapce in the interrupt
|
||||
* handler itself. The timestamp and sequence sent during the flip done event
|
||||
* correspond to the last vblank and have no relation to the actual time when
|
||||
* the flip done event was sent.
|
||||
*/
|
||||
static int intel_atomic_check_async(struct intel_atomic_state *state)
|
||||
{
|
||||
struct drm_i915_private *i915 = to_i915(state->base.dev);
|
||||
|
|
Загрузка…
Ссылка в новой задаче