[PATCH v2 00/22] drm/i915: Fix pre-g4x GPU reset, again (v2)

ville.syrjala at linux.intel.com ville.syrjala at linux.intel.com
Thu Jul 6 20:24:20 UTC 2017


From: Ville Syrjälä <ville.syrjala at linux.intel.com>

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



More information about the dri-devel mailing list