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(-) >