[PATCH 0/2] drm: Treewide plane/crtc legacy state sweeping

Ville Syrjälä ville.syrjala at linux.intel.com
Fri Oct 25 07:46:23 UTC 2024


On Wed, Oct 02, 2024 at 09:21:58PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> An attempt to hide the drm_plane/crtc legacy state better.
> 
> This also highlights the fact that a lot of supposedly
> atomic drivers are poking around in the legacy crtc state,
> which is rather questionable. For planes we did force the
> legacy state to NULL already to force drivers to behave.
> But even then it seems capable of confusing people with
> its high profile location directly under drm_plane.
> 
> This might end up as some kind of conflict
> galore, but the alternative would involve trying
> to wean the atomic drivers off one by one,
> which would probably take forever. At least with
> this the issue becomes visible and shouldn't be
> forgotten as easily.

Ping, anyone have thoughts on this? I'd like to get something
like this in at some point to make the legacy state (ab)users
easily visible...

> 
> The cc list was getting way out of hand, so I had
> to trim it a bit. Hopefully I didn't chop off too
> many names...
> 
> Cc: Abhinav Kumar <quic_abhinavk at quicinc.com>
> Cc: Alain Volmat <alain.volmat at foss.st.com>
> Cc: Alex Deucher <alexander.deucher at amd.com>
> Cc: Alexey Brodkin <abrodkin at synopsys.com>
> Cc: amd-gfx at lists.freedesktop.org
> Cc: Andy Yan <andy.yan at rock-chips.com>
> Cc: "Christian König" <christian.koenig at amd.com>
> Cc: Danilo Krummrich <dakr at redhat.com>
> Cc: Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
> Cc: freedreno at lists.freedesktop.org
> Cc: Hans de Goede <hdegoede at redhat.com>
> Cc: "Heiko Stübner" <heiko at sntech.de>
> Cc: Inki Dae <inki.dae at samsung.com>
> Cc: Jyri Sarha <jyri.sarha at iki.fi>
> Cc: Karol Herbst <kherbst at redhat.com>
> Cc: linux-amlogic at lists.infradead.org
> Cc: linux-arm-msm at vger.kernel.org
> Cc: linux-arm-msm at vger.kernel.orga
> Cc: linux-mediatek at lists.infradead.org
> Cc: linux-renesas-soc at vger.kernel.org
> Cc: Liviu Dudau <liviu.dudau at arm.com>
> Cc: Lyude Paul <lyude at redhat.com>
> Cc: "Maíra Canal" <mairacanal at riseup.net>
> Cc: Marijn Suijten <marijn.suijten at somainline.org>
> Cc: nouveau at lists.freedesktop.org
> Cc: nouveau at lists.freedesktop.orga
> Cc: Patrik Jakobsson <patrik.r.jakobsson at gmail.com>
> Cc: Rob Clark <robdclark at gmail.com>
> Cc: Russell King <linux at armlinux.org.uk>
> Cc: Sandy Huang <hjc at rock-chips.com>
> Cc: Sean Paul <sean at poorly.run>
> Cc: spice-devel at lists.freedesktop.org
> Cc: virtualization at lists.linux.dev
> Cc: xen-devel at lists.xenproject.org
> Cc: Xinhui Pan <Xinhui.Pan at amd.com>
> Cc: Zack Rusin <zack.rusin at broadcom.com>
> 
> Ville Syrjälä (2):
>   drm: Move plane->{fb,old_fb,crtc} to legacy sub-structure
>   drm: Move crtc->{x,y,mode,enabled} to legacy sub-structure
> 
>  .../gpu/drm/amd/amdgpu/amdgpu_connectors.c    |  7 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_display.c   | 20 ++---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_pll.c       |  2 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c      |  2 +-
>  drivers/gpu/drm/amd/amdgpu/dce_v10_0.c        | 35 ++++----
>  drivers/gpu/drm/amd/amdgpu/dce_v11_0.c        | 35 ++++----
>  drivers/gpu/drm/amd/amdgpu/dce_v6_0.c         | 37 ++++-----
>  drivers/gpu/drm/amd/amdgpu/dce_v8_0.c         | 35 ++++----
>  .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 14 ++--
>  .../amd/display/amdgpu_dm/amdgpu_dm_crtc.c    |  2 +-
>  drivers/gpu/drm/amd/pm/amdgpu_dpm_internal.c  |  4 +-
>  drivers/gpu/drm/arm/hdlcd_drv.c               |  2 +-
>  drivers/gpu/drm/arm/malidp_hw.c               |  2 +-
>  drivers/gpu/drm/armada/armada_crtc.c          | 12 ++-
>  drivers/gpu/drm/ast/ast_dp.c                  |  8 +-
>  drivers/gpu/drm/drm_atomic.c                  |  6 +-
>  drivers/gpu/drm/drm_atomic_helper.c           |  8 +-
>  drivers/gpu/drm/drm_client_modeset.c          | 10 +--
>  drivers/gpu/drm/drm_crtc.c                    | 31 +++----
>  drivers/gpu/drm/drm_crtc_helper.c             | 80 ++++++++++---------
>  drivers/gpu/drm/drm_fb_helper.c               | 12 +--
>  drivers/gpu/drm/drm_framebuffer.c             |  4 +-
>  drivers/gpu/drm/drm_plane.c                   | 69 ++++++++--------
>  drivers/gpu/drm/drm_plane_helper.c            |  6 +-
>  drivers/gpu/drm/drm_vblank.c                  |  2 +-
>  drivers/gpu/drm/exynos/exynos5433_drm_decon.c |  4 +-
>  drivers/gpu/drm/gma500/cdv_intel_display.c    |  2 +-
>  drivers/gpu/drm/gma500/cdv_intel_dp.c         |  6 +-
>  drivers/gpu/drm/gma500/cdv_intel_hdmi.c       |  3 +-
>  drivers/gpu/drm/gma500/cdv_intel_lvds.c       |  6 +-
>  drivers/gpu/drm/gma500/gma_display.c          | 22 ++---
>  drivers/gpu/drm/gma500/oaktrail_crtc.c        |  2 +-
>  drivers/gpu/drm/gma500/psb_intel_display.c    |  2 +-
>  drivers/gpu/drm/gma500/psb_intel_lvds.c       |  6 +-
>  drivers/gpu/drm/gma500/psb_intel_sdvo.c       |  8 +-
>  drivers/gpu/drm/i2c/ch7006_drv.c              |  7 +-
>  drivers/gpu/drm/i2c/sil164_drv.c              |  2 +-
>  .../drm/i915/display/intel_modeset_setup.c    |  4 +-
>  drivers/gpu/drm/imx/lcdc/imx-lcdc.c           | 31 ++++---
>  drivers/gpu/drm/mediatek/mtk_crtc.c           |  6 +-
>  drivers/gpu/drm/meson/meson_overlay.c         |  2 +-
>  drivers/gpu/drm/meson/meson_plane.c           |  8 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 18 +++--
>  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c       |  6 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c     | 16 ++--
>  drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c     |  4 +-
>  drivers/gpu/drm/nouveau/dispnv04/crtc.c       | 25 +++---
>  drivers/gpu/drm/nouveau/dispnv04/cursor.c     |  2 +-
>  drivers/gpu/drm/nouveau/dispnv04/dfp.c        |  2 +-
>  drivers/gpu/drm/nouveau/dispnv04/disp.c       |  4 +-
>  .../gpu/drm/nouveau/dispnv04/tvmodesnv17.c    |  4 +-
>  drivers/gpu/drm/nouveau/dispnv04/tvnv17.c     |  7 +-
>  drivers/gpu/drm/nouveau/nouveau_connector.c   |  6 +-
>  drivers/gpu/drm/qxl/qxl_display.c             |  6 +-
>  drivers/gpu/drm/radeon/atombios_crtc.c        | 28 +++----
>  drivers/gpu/drm/radeon/cik.c                  | 12 +--
>  drivers/gpu/drm/radeon/evergreen.c            | 16 ++--
>  drivers/gpu/drm/radeon/r100.c                 | 16 ++--
>  drivers/gpu/drm/radeon/r600_cs.c              |  2 +-
>  drivers/gpu/drm/radeon/r600_dpm.c             |  4 +-
>  drivers/gpu/drm/radeon/radeon_connectors.c    |  7 +-
>  drivers/gpu/drm/radeon/radeon_cursor.c        | 29 +++----
>  drivers/gpu/drm/radeon/radeon_device.c        |  2 +-
>  drivers/gpu/drm/radeon/radeon_display.c       | 26 +++---
>  drivers/gpu/drm/radeon/radeon_drv.c           |  2 +-
>  drivers/gpu/drm/radeon/radeon_legacy_crtc.c   | 16 ++--
>  .../gpu/drm/radeon/radeon_legacy_encoders.c   |  2 +-
>  drivers/gpu/drm/radeon/radeon_pm.c            |  2 +-
>  drivers/gpu/drm/radeon/rs600.c                | 10 +--
>  drivers/gpu/drm/radeon/rs690.c                | 22 ++---
>  drivers/gpu/drm/radeon/rs780_dpm.c            |  6 +-
>  drivers/gpu/drm/radeon/rv515.c                | 30 +++----
>  drivers/gpu/drm/radeon/rv770.c                |  2 +-
>  drivers/gpu/drm/radeon/si.c                   | 14 ++--
>  .../gpu/drm/renesas/rcar-du/rcar_du_crtc.c    |  2 +-
>  .../gpu/drm/renesas/shmobile/shmob_drm_crtc.c |  2 +-
>  drivers/gpu/drm/rockchip/rockchip_drm_vop.c   |  6 +-
>  drivers/gpu/drm/sti/sti_crtc.c                |  4 +-
>  drivers/gpu/drm/sti/sti_cursor.c              |  2 +-
>  drivers/gpu/drm/sti/sti_gdp.c                 |  2 +-
>  drivers/gpu/drm/sti/sti_hqvdp.c               |  2 +-
>  drivers/gpu/drm/sti/sti_tvout.c               |  6 +-
>  drivers/gpu/drm/sti/sti_vid.c                 |  2 +-
>  drivers/gpu/drm/tilcdc/tilcdc_crtc.c          | 10 +--
>  drivers/gpu/drm/tiny/arcpgu.c                 |  2 +-
>  drivers/gpu/drm/vboxvideo/vbox_mode.c         |  2 +-
>  drivers/gpu/drm/vc4/vc4_dpi.c                 |  2 +-
>  drivers/gpu/drm/vc4/vc4_plane.c               |  4 +-
>  drivers/gpu/drm/virtio/virtgpu_display.c      |  4 +-
>  drivers/gpu/drm/vkms/vkms_composer.c          |  4 +-
>  drivers/gpu/drm/vkms/vkms_crtc.c              |  2 +-
>  drivers/gpu/drm/vkms/vkms_writeback.c         |  4 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_kms.c           |  8 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c           | 18 +++--
>  drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c          |  9 ++-
>  drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c          |  4 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_vkms.c          |  2 +-
>  drivers/gpu/drm/xen/xen_drm_front_kms.c       |  2 +-
>  include/drm/drm_crtc.h                        | 75 ++++++++---------
>  include/drm/drm_plane.h                       | 52 ++++++------
>  100 files changed, 599 insertions(+), 547 deletions(-)
> 
> -- 
> 2.45.2

-- 
Ville Syrjälä
Intel


More information about the Freedreno mailing list