Patches 2-5, 9-12, 14-19: Reviewed-by: Harry Wentland <harry.wentland@xxxxxxx> Patches 1,13: Questions in response to those patches Patches 6-8: Acked-by: Harry Wentland <harry.wentland@xxxxxxx> Looks like a nice cleanup. Harry On Wednesday, March 22, 2017 10:50:39 PM EDT Daniel Vetter wrote: > Hi all, > > This is something I kinda had on my todo list ever since atomic landed. The > legacy_backoff() hack really doesn't work if you need to acquire additional > locks, which does restrict drivers in how they handle and protect legacy > paths, and kinda forces us to be overzealous with taking locks for legacy > paths, just in case. > > This patch set here fixes this, with 2 huge exceptions: > - get/set_property calls aren't fixed. The locking in there is a mess and > needs some serious attention. My goal would be that for atomic we take no > lock at all, and entirely rely upon the magic of drm_modeset_lock and > atomic to just grab the minimal set required to update a property. > > - fbdev emulation helpers. It abused the modeset_lock_all bkl as its own > lock, which prevents us from pushing it down just around the (atomic) > modeset calls, and hence from switching over to handling the acquire > context in an explicit fashion. Thierry started to fix this with the > addition of proper locking for fbdev emulation, but it needs a pile more > work. > > Survived light testing with full ww mutex debugging, I'll rely on CI to > catch the remaining mixups :-) > > Cheers, Daniel > > Daniel Vetter (19): > drm: Wire up proper acquire ctx for plane functions > drm: Add acquire ctx parameter to ->update_plane > drm: drm_plane_force_disable is not for atomic drivers > drm: Add acquire ctx parameter to ->plane_disable > drm/atomic-helper: remove backoff hack from disable/update_plane > drm/vmwgfx: Drop the cursor locking hack > drm/tegra: Don't use modeset_lock_crtc > drm/tilcdc: Drop calls to modeset_lock_crtc > drm: Make drm_modeset_lock_crtc internal > drm: Roll out acquire context for the page_flip ioctl > drm: Add acquire ctx parameter to ->page_flip(_target) > drm/atomic-helper: remove backoff hack from page_flip > drm: simplify the locking in the GETCRTC ioctl > drm: Remove drm_modeset_(un)lock_crtc > drm: Remove drm_modeset_legacy_acquire_ctx and crtc->acquire_ctx > drm: Restrict drm_mode_set_config_internal to non-atomic drivers > drm: Add explicit acquire ctx handling around ->set_config > drm: Add acquire ctx parameter to ->set_config > drm/atomic-helper: Remove the backoff hack from set_config > > drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 8 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 6 +- > drivers/gpu/drm/armada/armada_crtc.c | 3 +- > drivers/gpu/drm/armada/armada_overlay.c | 6 +- > drivers/gpu/drm/bochs/bochs_kms.c | 3 +- > drivers/gpu/drm/drm_atomic.c | 14 --- > drivers/gpu/drm/drm_atomic_helper.c | 132 > +++++----------------------- drivers/gpu/drm/drm_crtc.c | > 61 ++++++++----- > drivers/gpu/drm/drm_crtc_helper.c | 4 +- > drivers/gpu/drm/drm_modeset_lock.c | 102 --------------------- > drivers/gpu/drm/drm_plane.c | 87 ++++++++++++++---- > drivers/gpu/drm/drm_plane_helper.c | 11 ++- > drivers/gpu/drm/gma500/gma_display.c | 7 +- > drivers/gpu/drm/gma500/gma_display.h | 3 +- > drivers/gpu/drm/i915/intel_display.c | 9 +- > drivers/gpu/drm/i915/intel_pipe_crc.c | 2 +- > drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 8 +- > drivers/gpu/drm/nouveau/dispnv04/crtc.c | 7 +- > drivers/gpu/drm/nouveau/dispnv04/overlay.c | 18 ++-- > drivers/gpu/drm/nouveau/nouveau_display.c | 3 +- > drivers/gpu/drm/nouveau/nouveau_display.h | 4 +- > drivers/gpu/drm/radeon/radeon_display.c | 8 +- > drivers/gpu/drm/shmobile/shmob_drm_crtc.c | 3 +- > drivers/gpu/drm/shmobile/shmob_drm_plane.c | 8 +- > drivers/gpu/drm/tegra/dc.c | 8 +- > drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 12 +-- > drivers/gpu/drm/udl/udl_modeset.c | 3 +- > drivers/gpu/drm/vc4/vc4_crtc.c | 5 +- > drivers/gpu/drm/vc4/vc4_plane.c | 6 +- > drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 25 ------ > drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 3 +- > drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 6 +- > drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 6 +- > include/drm/drm_atomic_helper.h | 15 ++-- > include/drm/drm_crtc.h | 18 ++-- > include/drm/drm_crtc_helper.h | 3 +- > include/drm/drm_modeset_lock.h | 5 -- > include/drm/drm_plane.h | 7 +- > include/drm/drm_plane_helper.h | 6 +- > 39 files changed, 265 insertions(+), 380 deletions(-) _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel