From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> OK, so here's the full version of my rw_semaphore GPU vs. display reset fix. The only issue I'm aware of is that SKL watermark code still uses obj->state and thus I have no clue what would happen if one tries to run this on SKL. Untangling that would likely mean making the SKL wm code more in line with the g4x/vlv/chv code (ie. track things in the crtc state). I decided not to embark on that quest at this time. Entire series available here: git://github.com/vsyrjala/linux.git reset_commit_rwsem_4 Ville Syrjälä (22): drm/i915: Pass the new crtc state to color management code drm/i915: Pass the crtc state explicitly to intel_pipe_update_start/end() drm/i915: Eliminate obj->state usage in g4x/vlv/chv wm computation drm/i915: Pass proper old/new states to intel_plane_atomic_check_with_state() drm/i915: Eliminate obj->state usage from pre/post plane update drm/i915: Eliminate crtc->state usage from intel_update_pipe_config() drm/i915: Eliminate crtc->state usage from intel_atomic_commit_tail and .crtc_update() drm: Add drm_dynarray drm/atomic: Convert state->connectors to drm_dynarray drm/atomic: Remove pointless private object NULL state check drm/atomic: Convert private_objs to drm_dynarray drm/atomic: Make private objs proper objects drm/atomic: Pass old state to __drm_atomic_helper_crtc_duplicate_state() & co. explicitly drm/arm: s/old_state/old_mali_state/ drm/mediatek: s/old_state/old_mtk_state/ drm/atomic: Pass old state explicitly to .atomic_duplicate_state() drm/atomic: Fix up the kernel docs for the state duplication functions drm: Return the connector from drm_connector_get() drm/i915% Store vma gtt offset in plane state drm/i915: Refactor __intel_atomic_commit_tail() drm/atomic: Introduce drm_atomic_helper_duplicate_commited_state() drm/i915: Solve the GPU reset vs. modeset deadlocks with an rw_semaphore Documentation/gpu/drm-utils.rst | 15 ++ Documentation/gpu/index.rst | 1 + drivers/gpu/drm/Makefile | 2 +- drivers/gpu/drm/arm/malidp_crtc.c | 18 +- drivers/gpu/drm/arm/malidp_planes.c | 10 +- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 10 +- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 5 +- drivers/gpu/drm/drm_atomic.c | 174 +++++++----- drivers/gpu/drm/drm_atomic_helper.c | 318 ++++++++++++++++++++-- drivers/gpu/drm/drm_crtc_helper.c | 12 +- drivers/gpu/drm/drm_dp_mst_topology.c | 65 +++-- drivers/gpu/drm/drm_dynarray.c | 97 +++++++ drivers/gpu/drm/drm_fb_helper.c | 7 +- drivers/gpu/drm/drm_plane_helper.c | 12 +- drivers/gpu/drm/exynos/exynos_drm_plane.c | 8 +- drivers/gpu/drm/i915/i915_drv.h | 11 + drivers/gpu/drm/i915/intel_atomic.c | 16 +- drivers/gpu/drm/i915/intel_atomic_plane.c | 47 ++-- drivers/gpu/drm/i915/intel_display.c | 342 ++++++++++++++++-------- drivers/gpu/drm/i915/intel_drv.h | 52 +++- drivers/gpu/drm/i915/intel_pm.c | 30 +-- drivers/gpu/drm/i915/intel_sdvo.c | 9 +- drivers/gpu/drm/i915/intel_sprite.c | 37 +-- drivers/gpu/drm/imx/ipuv3-crtc.c | 6 +- drivers/gpu/drm/imx/ipuv3-plane.c | 8 +- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 6 +- drivers/gpu/drm/mediatek/mtk_drm_plane.c | 10 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c | 10 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 14 +- drivers/gpu/drm/nouveau/nouveau_connector.c | 8 +- drivers/gpu/drm/nouveau/nouveau_connector.h | 3 +- drivers/gpu/drm/nouveau/nv50_display.c | 16 +- drivers/gpu/drm/rcar-du/rcar_du_plane.c | 10 +- drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 10 +- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 6 +- drivers/gpu/drm/tegra/dc.c | 16 +- drivers/gpu/drm/tegra/dsi.c | 8 +- drivers/gpu/drm/tegra/sor.c | 8 +- drivers/gpu/drm/vc4/vc4_crtc.c | 6 +- drivers/gpu/drm/vc4/vc4_plane.c | 10 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 26 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 9 +- include/drm/drm_atomic.h | 179 ++++++++----- include/drm/drm_atomic_helper.h | 31 ++- include/drm/drm_connector.h | 23 +- include/drm/drm_crtc.h | 16 +- include/drm/drm_dp_mst_helper.h | 10 + include/drm/drm_dynarray.h | 54 ++++ include/drm/drm_plane.h | 16 +- 49 files changed, 1324 insertions(+), 493 deletions(-) create mode 100644 Documentation/gpu/drm-utils.rst create mode 100644 drivers/gpu/drm/drm_dynarray.c create mode 100644 include/drm/drm_dynarray.h -- 2.13.0 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel