Re: [PATCH v2 00/17] drm: cleanup: Use DRM_MODESET_LOCK_ALL_* helpers where possible

From: Sean Paul
Date: Fri Oct 01 2021 - 14:37:12 EST


On Fri, Sep 24, 2021 at 08:43:07AM +0200, Fernando Ramos wrote:
> Hi all,
>
> One of the things in the DRM TODO list ("Documentation/gpu/todo.rst") was to
> "use DRM_MODESET_LOCAL_ALL_* helpers instead of boilerplate". That's what this
> patch series is about.
>
> You will find two types of changes here:
>
> - Replacing "drm_modeset_lock_all_ctx()" (and surrounding boilerplate) with
> "DRM_MODESET_LOCK_ALL_BEGIN()/END()" in the remaining places (as it has
> already been done in previous commits such as b7ea04d2)
>
> - Replacing "drm_modeset_lock_all()" with "DRM_MODESET_LOCK_ALL_BEGIN()/END()"
> in the remaining places (as it has already been done in previous commits
> such as 57037094)
>
> Most of the changes are straight forward, except for a few cases in the "amd"
> and "i915" drivers where some extra dancing was needed to overcome the
> limitation that the DRM_MODESET_LOCK_ALL_BEGIN()/END() macros can only be used
> once inside the same function (the reason being that the macro expansion
> includes *labels*, and you can not have two labels named the same inside one
> function)
>
> Notice that, even after this patch series, some places remain where
> "drm_modeset_lock_all()" and "drm_modeset_lock_all_ctx()" are still present,
> all inside drm core (which makes sense), except for two (in "amd" and "i915")
> which cannot be replaced due to the way they are being used.
>
> Changes in v2:
>
> - Fix commit message typo
> - Use the value returned by DRM_MODESET_LOCK_ALL_END when possible
> - Split drm/i915 patch into two simpler ones
> - Remove drm_modeset_(un)lock_all()
> - Fix build problems in non-x86 platforms
>
> Fernando Ramos (17):
> drm: cleanup: drm_modeset_lock_all_ctx() --> DRM_MODESET_LOCK_ALL_BEGIN()
> drm/i915: cleanup: drm_modeset_lock_all_ctx() --> DRM_MODESET_LOCK_ALL_BEGIN()
> drm/msm: cleanup: drm_modeset_lock_all_ctx() --> DRM_MODESET_LOCK_ALL_BEGIN()
> drm: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() drm/vmwgfx: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN()
> drm/tegra: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN()
> drm/shmobile: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN()
> drm/radeon: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN()
> drm/omapdrm: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN()
> drm/nouveau: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN()
> drm/msm: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN()
> drm/i915: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN()
> drm/i915: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() part 2
> drm/gma500: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN()
> drm/amd: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN()
> drm: cleanup: remove drm_modeset_(un)lock_all()
> doc: drm: remove TODO entry regarding DRM_MODSET_LOCK_ALL cleanup
>

Thank you for revising, Fernando! I've pushed the set to drm-misc-next (along
with the necessary drm-tip conflict resolutions).

Sean

> Documentation/gpu/todo.rst | 17 ----
> Documentation/locking/ww-mutex-design.rst | 2 +-
> drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 21 +++--
> .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 50 +++++-----
> .../amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 25 ++---
> drivers/gpu/drm/drm_client_modeset.c | 14 ++-
> drivers/gpu/drm/drm_crtc_helper.c | 18 ++--
> drivers/gpu/drm/drm_fb_helper.c | 10 +-
> drivers/gpu/drm/drm_framebuffer.c | 6 +-
> drivers/gpu/drm/drm_modeset_lock.c | 94 +------------------
> drivers/gpu/drm/gma500/psb_device.c | 18 ++--
> drivers/gpu/drm/i915/display/intel_audio.c | 16 ++--
> drivers/gpu/drm/i915/display/intel_display.c | 23 ++---
> .../drm/i915/display/intel_display_debugfs.c | 46 +++++----
> drivers/gpu/drm/i915/display/intel_overlay.c | 46 ++++-----
> drivers/gpu/drm/i915/display/intel_pipe_crc.c | 7 +-
> drivers/gpu/drm/i915/i915_drv.c | 13 ++-
> drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 10 +-
> .../gpu/drm/msm/disp/msm_disp_snapshot_util.c | 12 +--
> drivers/gpu/drm/nouveau/dispnv50/disp.c | 15 ++-
> drivers/gpu/drm/omapdrm/omap_fb.c | 9 +-
> drivers/gpu/drm/radeon/radeon_device.c | 21 +++--
> drivers/gpu/drm/radeon/radeon_dp_mst.c | 10 +-
> drivers/gpu/drm/shmobile/shmob_drm_drv.c | 6 +-
> drivers/gpu/drm/tegra/dsi.c | 6 +-
> drivers/gpu/drm/tegra/hdmi.c | 6 +-
> drivers/gpu/drm/tegra/sor.c | 11 ++-
> drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | 11 ++-
> drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 12 ++-
> include/drm/drm_modeset_lock.h | 2 -
> 30 files changed, 265 insertions(+), 292 deletions(-)
>
>
> base-commit: 6880fa6c56601bb8ed59df6c30fd390cc5f6dd8f
> --
> 2.33.0
>

--
Sean Paul, Software Engineer, Google / Chromium OS