Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/doc: Document legacy_cursor_update better

It's the horror and shouldn't be used. Realized we're not clear on
this in a discussion with Rob about what msm is doing to better
support async commits.

v2: Refine existing todo item to include this (Thomas)

Cc: Sean Paul <sean@poorly.run>
Cc: Rob Clark <robdclark@gmail.com>
Acked-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20201023123925.2374863-3-daniel.vetter@ffwll.ch

+15 -1
+4
Documentation/gpu/todo.rst
··· 105 105 One issue with the helpers is that they require that drivers handle completion 106 106 events for atomic commits correctly. But fixing these bugs is good anyway. 107 107 108 + Somewhat related is the legacy_cursor_update hack, which should be replaced with 109 + the new atomic_async_check/commit functionality in the helpers in drivers that 110 + still look at that flag. 111 + 108 112 Contact: Daniel Vetter, respective driver maintainers 109 113 110 114 Level: Advanced
+11 -1
include/drm/drm_atomic.h
··· 308 308 * struct drm_atomic_state - the global state object for atomic updates 309 309 * @ref: count of all references to this state (will not be freed until zero) 310 310 * @dev: parent DRM device 311 - * @legacy_cursor_update: hint to enforce legacy cursor IOCTL semantics 312 311 * @async_update: hint for asynchronous plane update 313 312 * @planes: pointer to array of structures with per-plane data 314 313 * @crtcs: pointer to array of CRTC pointers ··· 335 336 * drm_atomic_crtc_needs_modeset(). 336 337 */ 337 338 bool allow_modeset : 1; 339 + /** 340 + * @legacy_cursor_update: 341 + * 342 + * Hint to enforce legacy cursor IOCTL semantics. 343 + * 344 + * WARNING: This is thoroughly broken and pretty much impossible to 345 + * implement correctly. Drivers must ignore this and should instead 346 + * implement &drm_plane_helper_funcs.atomic_async_check and 347 + * &drm_plane_helper_funcs.atomic_async_commit hooks. New users of this 348 + * flag are not allowed. 349 + */ 338 350 bool legacy_cursor_update : 1; 339 351 bool async_update : 1; 340 352 /**