Skip to content

prepare for atomic/nuclear modeset/pageflip

Rob Clark dri-devel 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest17 patches 51 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/17drm: fix typodrivers/gpu/drm/drm_crtc_helper.c+1 -10 replies
2/17drm: add atomic fxnsdrivers/gpu/drm/Makefile drivers/gpu/drm/armada/armada_crtc.c drivers/gpu/drm/armada/armada_output.c +63 more+652 -1020 replies
3/17drm: convert crtc and mode_config to ww_mutexdrivers/gpu/drm/Makefile drivers/gpu/drm/drm_atomic.c drivers/gpu/drm/drm_crtc.c +32 more+614 -14312 replies
4/17drm: add object property typedrivers/gpu/drm/drm_crtc.c include/drm/drm_crtc.h include/uapi/drm/drm_mode.h+88 -133 replies
5/17drm: add signed-range property typedrivers/gpu/drm/drm_crtc.c include/drm/drm_crtc.h include/uapi/drm/drm_mode.h+46 -120 replies
6/17drm: helpers to find mode objectsdrivers/gpu/drm/drm_crtc.c include/drm/drm_crtc.h+63 -673 replies
7/17drm: split propvals out and blob property supportdrivers/gpu/drm/drm_crtc.c drivers/gpu/drm/drm_fb_helper.c drivers/gpu/drm/gma500/cdv_intel_dp.c +18 more+142 -570 replies
8/17drm: Allow drm_mode_object_find() to look up an object of any typedrivers/gpu/drm/drm_crtc.c include/drm/drm_crtc.h+3 -10 replies
9/17drm: Refactor object property check codedrivers/gpu/drm/drm_crtc.c+14 -110 replies
10/17drm: allow FB's in drm_mode_object_finddrivers/gpu/drm/drm_crtc.c include/drm/drm_crtc.h+22 -171 reply
11/17drm: convert plane to properties/statedrivers/gpu/drm/armada/armada_overlay.c drivers/gpu/drm/drm_atomic.c drivers/gpu/drm/drm_crtc.c +13 more+725 -1533 replies
12/17drm: convert crtc to properties/statedrivers/gpu/drm/armada/armada_crtc.c drivers/gpu/drm/ast/ast_mode.c drivers/gpu/drm/cirrus/cirrus_mode.c +24 more+785 -2439 replies
13/17drm: push locking down into restore_fbdev_modedrivers/gpu/drm/armada/armada_fbdev.c drivers/gpu/drm/drm_fb_cma_helper.c drivers/gpu/drm/drm_fb_helper.c +7 more+21 -441 reply
14/17drm/msm: add atomic supportdrivers/gpu/drm/msm/Makefile drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c +12 more+253 -9414 replies
15/17drm: spiff out FB refcnting tracesdrivers/gpu/drm/drm_crtc.c+3 -30 replies
16/17drm: more conservative lockingdrivers/gpu/drm/drm_crtc.c drivers/gpu/drm/drm_fb_helper.c+38 -10 replies
17/17drm: Fix up the atomic legacy paths so they workdrivers/gpu/drm/drm_atomic.c drivers/gpu/drm/drm_crtc.c include/drm/drm_crtc.h+14 -30 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 00/17] prepare for atomic/nuclear modeset/pageflip

One more time, with feeling..

Previous revision of series:
http://lists.freedesktop.org/archives/dri-devel/2014-March/055806.html

And if you prefer, in git form:
http://cgit.freedesktop.org/~robclark/linux/log/?h=cold-fusion
git://people.freedesktop.org/~robclark/linux cold-fusion

This series does not include the actual atomic ioctl, but it does include all the needed infrastructure changes.

Compared to previous revision, I've split out drm_modeset_acquire_ctx from drm_atomic_state, so that we can ww acquire mode_config and crtc locks outside of atomic transactions. (Which keeps lockdep happy wrt. drm_modeset_lock_all().) I also got to the point in juggling things around where I wanted to let the compiler type checking do it's job, so 's/void *state/struct drm_atomic_state *state/g'.

At this point, I've tested this on i915 (few different generation laptops), radeon, and msm. And of course w/ ww debug (deadlock in- jection) enabled. So I think all the locking related paths should be covered.

I believe Thierry has tested a slighly older revision on tegra. I would of course appreciate more testing on other drivers for which I don't have the hw. But I think it is pretty much ready to go. I do still owe some docs updates, I will send some patches for that in the near future, but didn't want to hold up giving others a chance to start banging on this.

Rob Clark (14):
drm: fix typo
drm: add atomic fxns
drm: convert crtc and mode_config to ww_mutex
drm: add object property type
drm: add signed-range property type
drm: helpers to find mode objects
drm: split propvals out and blob property support
drm: allow FB's in drm_mode_object_find
drm: convert plane to properties/state
drm: convert crtc to properties/state
drm: push locking down into restore_fbdev_mode drm/msm: add atomic support
drm: spiff out FB refcnting traces
drm: more conservative locking

Sean Paul (1):
drm: Fix up the atomic legacy paths so they work

Ville Syrjälä (2):
drm: Allow drm_mode_object_find() to look up an object of any type
drm: Refactor object property check code

 drivers/gpu/drm/Makefile                    |    2 +-
 drivers/gpu/drm/armada/armada_crtc.c        |   14 +-
 drivers/gpu/drm/armada/armada_fbdev.c       |    4 +-
 drivers/gpu/drm/armada/armada_output.c      |    3 +-
 drivers/gpu/drm/armada/armada_overlay.c     |   14 +-
 drivers/gpu/drm/ast/ast_drv.c               |    6 +
 drivers/gpu/drm/ast/ast_drv.h               |    1 +
 drivers/gpu/drm/ast/ast_mode.c              |    1 +
 drivers/gpu/drm/cirrus/cirrus_drv.c         |    6 +
 drivers/gpu/drm/cirrus/cirrus_drv.h         |    1 +
 drivers/gpu/drm/cirrus/cirrus_mode.c        |    1 +
 drivers/gpu/drm/drm_atomic.c                |  720 +++++++++++++
 drivers/gpu/drm/drm_crtc.c                  | 1534 ++++++++++++++++++---------
 drivers/gpu/drm/drm_crtc_helper.c           |    6 +-
 drivers/gpu/drm/drm_fb_cma_helper.c         |   15 +-
 drivers/gpu/drm/drm_fb_helper.c             |   69 +-
 drivers/gpu/drm/drm_modes.c                 |    4 +-
 drivers/gpu/drm/drm_modeset_lock.c          |  159 +++
 drivers/gpu/drm/drm_plane_helper.c          |    2 +
 drivers/gpu/drm/drm_probe_helper.c          |   10 +-
 drivers/gpu/drm/drm_sysfs.c                 |    4 +-
 drivers/gpu/drm/exynos/exynos_drm_crtc.c    |   11 +-
 drivers/gpu/drm/exynos/exynos_drm_drv.c     |    7 +
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c   |    8 +-
 drivers/gpu/drm/exynos/exynos_drm_plane.c   |   11 +-
 drivers/gpu/drm/gma500/cdv_intel_crt.c      |    4 +-
 drivers/gpu/drm/gma500/cdv_intel_display.c  |    1 +
 drivers/gpu/drm/gma500/cdv_intel_dp.c       |    7 +-
 drivers/gpu/drm/gma500/cdv_intel_hdmi.c     |    7 +-
 drivers/gpu/drm/gma500/cdv_intel_lvds.c     |   16 +-
 drivers/gpu/drm/gma500/mdfld_dsi_output.c   |   12 +-
 drivers/gpu/drm/gma500/oaktrail_lvds.c      |    6 +-
 drivers/gpu/drm/gma500/psb_drv.c            |   11 +-
 drivers/gpu/drm/gma500/psb_drv.h            |    1 +
 drivers/gpu/drm/gma500/psb_intel_display.c  |    1 +
 drivers/gpu/drm/gma500/psb_intel_drv.h      |    4 +-
 drivers/gpu/drm/gma500/psb_intel_lvds.c     |   16 +-
 drivers/gpu/drm/gma500/psb_intel_sdvo.c     |   23 +-
 drivers/gpu/drm/i2c/ch7006_drv.c            |    4 +-
 drivers/gpu/drm/i915/i915_debugfs.c         |   12 +-
 drivers/gpu/drm/i915/i915_drv.c             |   16 +-
 drivers/gpu/drm/i915/i915_irq.c             |    6 +-
 drivers/gpu/drm/i915/intel_crt.c            |    4 +-
 drivers/gpu/drm/i915/intel_display.c        |   24 +-
 drivers/gpu/drm/i915/intel_dp.c             |   25 +-
 drivers/gpu/drm/i915/intel_drv.h            |    1 +
 drivers/gpu/drm/i915/intel_fbdev.c          |    6 +-
 drivers/gpu/drm/i915/intel_hdmi.c           |    7 +-
 drivers/gpu/drm/i915/intel_lvds.c           |   10 +-
 drivers/gpu/drm/i915/intel_opregion.c       |    4 +-
 drivers/gpu/drm/i915/intel_overlay.c        |    4 +-
 drivers/gpu/drm/i915/intel_panel.c          |    8 +-
 drivers/gpu/drm/i915/intel_sdvo.c           |   23 +-
 drivers/gpu/drm/i915/intel_sprite.c         |    3 +-
 drivers/gpu/drm/i915/intel_tv.c             |   12 +-
 drivers/gpu/drm/mgag200/mgag200_drv.c       |    7 +
 drivers/gpu/drm/mgag200/mgag200_drv.h       |    1 +
 drivers/gpu/drm/mgag200/mgag200_mode.c      |    1 +
 drivers/gpu/drm/msm/Makefile                |    1 +
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c    |   70 +-
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c     |    6 +
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.h     |    1 +
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c   |   14 +-
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c    |   69 +-
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c     |    6 +
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h     |    2 +-
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c   |   14 +-
 drivers/gpu/drm/msm/msm_atomic.c            |  141 +++
 drivers/gpu/drm/msm/msm_drv.c               |   33 +-
 drivers/gpu/drm/msm/msm_drv.h               |    8 +
 drivers/gpu/drm/msm/msm_gem.c               |   24 +-
 drivers/gpu/drm/msm/msm_gem.h               |   13 +
 drivers/gpu/drm/msm/msm_kms.h               |    1 +
 drivers/gpu/drm/nouveau/dispnv04/crtc.c     |    1 +
 drivers/gpu/drm/nouveau/dispnv04/overlay.c  |   13 +-
 drivers/gpu/drm/nouveau/dispnv04/tvnv17.c   |    3 +-
 drivers/gpu/drm/nouveau/nouveau_connector.c |    7 +-
 drivers/gpu/drm/nouveau/nouveau_drm.c       |    7 +
 drivers/gpu/drm/nouveau/nouveau_drm.h       |    1 +
 drivers/gpu/drm/nouveau/nv50_display.c      |    1 +
 drivers/gpu/drm/omapdrm/omap_crtc.c         |   26 +-
 drivers/gpu/drm/omapdrm/omap_drv.c          |   16 +-
 drivers/gpu/drm/omapdrm/omap_drv.h          |    4 +-
 drivers/gpu/drm/omapdrm/omap_plane.c        |   14 +-
 drivers/gpu/drm/qxl/qxl_display.c           |    6 +-
 drivers/gpu/drm/qxl/qxl_drv.c               |    9 +
 drivers/gpu/drm/radeon/radeon_connectors.c  |    9 +-
 drivers/gpu/drm/radeon/radeon_display.c     |    2 +
 drivers/gpu/drm/radeon/radeon_drv.c         |    9 +
 drivers/gpu/drm/rcar-du/rcar_du_crtc.c      |    2 +
 drivers/gpu/drm/rcar-du/rcar_du_drv.c       |    7 +
 drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c   |    3 +-
 drivers/gpu/drm/rcar-du/rcar_du_plane.c     |   12 +-
 drivers/gpu/drm/rcar-du/rcar_du_vgacon.c    |    3 +-
 drivers/gpu/drm/shmobile/shmob_drm_crtc.c   |    6 +-
 drivers/gpu/drm/shmobile/shmob_drm_drv.c    |    7 +
 drivers/gpu/drm/shmobile/shmob_drm_plane.c  |    2 +
 drivers/gpu/drm/tegra/fb.c                  |    7 +-
 drivers/gpu/drm/tilcdc/tilcdc_crtc.c        |    5 +-
 drivers/gpu/drm/tilcdc/tilcdc_drv.c         |    6 +
 drivers/gpu/drm/tilcdc/tilcdc_drv.h         |    1 +
 drivers/gpu/drm/tilcdc/tilcdc_slave.c       |    3 +-
 drivers/gpu/drm/udl/udl_connector.c         |    6 +-
 drivers/gpu/drm/udl/udl_drv.c               |    8 +
 drivers/gpu/drm/udl/udl_modeset.c           |    2 +
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c         |    7 +
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.h         |    1 +
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c         |   26 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.h         |    4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c         |    1 +
 drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c        |    1 +
 include/drm/drmP.h                          |   85 +-
 include/drm/drm_atomic.h                    |  170 +++
 include/drm/drm_crtc.h                      |  326 +++++-
 include/drm/drm_fb_helper.h                 |    3 +-
 include/drm/drm_modeset_lock.h              |  130 +++
 include/uapi/drm/drm_mode.h                 |   18 +
 117 files changed, 3401 insertions(+), 882 deletions(-)
 create mode 100644 drivers/gpu/drm/drm_atomic.c
 create mode 100644 drivers/gpu/drm/drm_modeset_lock.c
 create mode 100644 drivers/gpu/drm/msm/msm_atomic.c
 create mode 100644 include/drm/drm_atomic.h
 create mode 100644 include/drm/drm_modeset_lock.h
Signature · 6 lines
1.9.0

_______________________________________________
dri-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/dri-devel