[Freedreno] [PATCH 00/23] drm: Eliminate plane->fb/crtc usage for atomic drivers

Noralf Trønnes noralf at tronnes.org
Thu Mar 22 16:51:35 UTC 2018


Den 22.03.2018 16.22, skrev Ville Syrjala:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> I really just wanted to fix i915 to re-enable its planes afer load
> detection (a two line patch). This is what I actually ended up with
> after I ran into a framebuffer refcount leak with said two line patch.
>
> I've tested this on a few i915 boxes and so far it's looking
> good. Everything else is just compile tested.
>
> Entire series available here:
> git://github.com/vsyrjala/linux.git plane_fb_crtc_nuke
>
> Cc: Alex Deucher <alexander.deucher at amd.com>
> Cc: amd-gfx at lists.freedesktop.org
> Cc: Benjamin Gaignard <benjamin.gaignard at linaro.org>
> Cc: Boris Brezillon <boris.brezillon at free-electrons.com>
> Cc: chris at chris-wilson.co.uk
> Cc: "Christian König" <christian.koenig at amd.com>
> Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
> Cc: Dave Airlie <airlied at gmail.com>
> Cc: David Airlie <airlied at linux.ie>
> Cc: "David (ChunMing) Zhou" <David1.Zhou at amd.com>
> Cc: Eric Anholt <eric at anholt.net>
> Cc: freedreno at lists.freedesktop.org
> Cc: Gerd Hoffmann <kraxel at redhat.com>
> Cc: Harry Wentland <harry.wentland at amd.com>
> Cc: Inki Dae <inki.dae at samsung.com>
> Cc: Joonyoung Shim <jy0922.shim at samsung.com>
> Cc: Kyungmin Park <kyungmin.park at samsung.com>
> Cc: linux-arm-msm at vger.kernel.org
> Cc: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> Cc: martin.peres at free.fr
> Cc: Rob Clark <robdclark at gmail.com>
> Cc: Seung-Woo Kim <sw0312.kim at samsung.com>
> Cc: Shawn Guo <shawnguo at kernel.org>
> Cc: Sinclair Yeh <syeh at vmware.com>
> Cc: Thomas Hellstrom <thellstrom at vmware.com>
> Cc: Vincent Abriou <vincent.abriou at st.com>
> Cc: virtualization at lists.linux-foundation.org
> Cc: VMware Graphics <linux-graphics-maintainer at vmware.com>
>
> Ville Syrjälä (23):
>    Revert "drm/atomic-helper: Fix leak in disable_all"
>    drm/atomic-helper: Make drm_atomic_helper_disable_all() update the
>      plane->fb pointers
>    drm: Clear crtc->primary->crtc when disabling the crtc via setcrtc()
>    drm/atomic-helper: WARN if legacy plane fb pointers are bogus when
>      committing duplicated state
>    drm: Add local 'plane' variable for primary/cursor planes
>    drm: Adjust whitespace for legibility
>    drm: Make the fb refcount handover less magic
>    drm: Use plane->state->fb over plane->fb
>    drm/i915: Stop consulting plane->fb
>    drm/msm: Stop consulting plane->fb
>    drm/sti: Stop consulting plane->fb
>    drm/vmwgfx: Stop consulting plane->fb
>    drm/zte: Stop consulting plane->fb
>    drm/atmel-hlcdc: Stop using plane->fb
>    drm: Stop updating plane->crtc/fb/old_fb on atomic drivers
>    drm/amdgpu/dc: Stop updating plane->fb
>    drm/i915: Stop updating plane->fb/crtc
>    drm/exynos: Stop updating plane->crtc
>    drm/msm: Stop updating plane->fb/crtc
>    drm/virtio: Stop updating plane->fb
>    drm/vc4: Stop updating plane->fb/crtc
>    drm/i915: Restore planes after load detection
>    drm/i915: Make force_load_detect effective even w/ DMI quirks/hotplug

tinydrm is also using plane->fb:

$ grep -r "plane\.fb" drivers/gpu/drm/tinydrm/
drivers/gpu/drm/tinydrm/repaper.c:      if (tdev->pipe.plane.fb != fb)
drivers/gpu/drm/tinydrm/mipi-dbi.c:     if (tdev->pipe.plane.fb != fb)
drivers/gpu/drm/tinydrm/mipi-dbi.c:     struct drm_framebuffer *fb = 
mipi->tinydrm.pipe.plane.fb;
drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c: pipe->plane.fb = fb;
drivers/gpu/drm/tinydrm/ili9225.c:      if (tdev->pipe.plane.fb != fb)
drivers/gpu/drm/tinydrm/st7586.c:       if (tdev->pipe.plane.fb != fb)

Noralf.

>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  2 -
>   drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c   | 12 +---
>   drivers/gpu/drm/drm_atomic.c                      | 55 ++--------------
>   drivers/gpu/drm/drm_atomic_helper.c               | 79 ++++++++++-------------
>   drivers/gpu/drm/drm_crtc.c                        | 51 ++++++++++-----
>   drivers/gpu/drm/drm_fb_helper.c                   |  7 --
>   drivers/gpu/drm/drm_framebuffer.c                 |  5 --
>   drivers/gpu/drm/drm_plane.c                       | 64 +++++++++++-------
>   drivers/gpu/drm/drm_plane_helper.c                |  4 +-
>   drivers/gpu/drm/exynos/exynos_drm_plane.c         |  2 -
>   drivers/gpu/drm/i915/intel_crt.c                  |  6 ++
>   drivers/gpu/drm/i915/intel_display.c              |  9 +--
>   drivers/gpu/drm/i915/intel_fbdev.c                |  2 +-
>   drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c         |  3 +-
>   drivers/gpu/drm/msm/disp/mdp4/mdp4_plane.c        |  2 -
>   drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c        |  2 -
>   drivers/gpu/drm/sti/sti_plane.c                   |  9 +--
>   drivers/gpu/drm/vc4/vc4_crtc.c                    |  3 -
>   drivers/gpu/drm/virtio/virtgpu_display.c          |  2 -
>   drivers/gpu/drm/vmwgfx/vmwgfx_kms.c               |  6 +-
>   drivers/gpu/drm/zte/zx_vou.c                      |  2 +-
>   include/drm/drm_atomic.h                          |  3 -
>   22 files changed, 143 insertions(+), 187 deletions(-)
>



More information about the Freedreno mailing list