[PATCH 00/38] nonblocking atomic commits for everyone!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

Now without the RFC tag, but with polish:
- kerneldoc for everything!
- tested on virtio, hdlcd, rockchip and i915.

The big upshot is still that the helpers are really picky about drivers sending
out drm events correctly, and that is the area where most of the debug work was
needed in testing these drivers.

What's needed now:
- review and bikesheds (not too many of the latter pls).
- testing on arcpgu, fsl-du & sun4i. Those are among the drivers which didn't
  implement nonblocking and hence will be forcefully upgraded to use these
  helpers. Which might unearth bugs (I tried to fix them, but can't test).

Cheers, Daniel

Daniel Vetter (37):
  drm/atomic-helper: use for_each_*_in_state more
  drm/i915: Use drm_atomic_get_existing_plane_state
  drm/msm: Use for_each_*_in_state
  drm/rcar-du: Use for_each_*_in_state
  drm/vc4: Use for_each_plane_in_state
  drm/omap: Use for_each_plane_in_state
  drm/exynos: Use for_each_crtc_in_state
  drm/atomic: Add __drm_atomic_get_current_plane_state
  drm: Consolidate connector arrays in drm_atomic_state
  drm: Consolidate plane arrays in drm_atomic_state
  drm: Consolidate crtc arrays in drm_atomic_state
  drm/atomic-helper: Massage swap_state signature somewhat
  drm/arc: Nuke event_list
  drm/arc: Actually bother with handling atomic events.
  drm/hdlcd: Clean up crtc hooks
  drm/hdlcd: Fix up crtc_state->event handling
  drm/fsl-du: Implement some semblance of vblank event handling
  drm/hisilicon: Implement some semblance of vblank event handling
  drm/sun4i: Implement some semblance of vblank event handling
  drm/atomic: kerneldoc for drm_atomic_crtc_needs_modeset
  drm/atomic-helper: nonblocking commit support
  drm/hdlcd: Use helper support for nonblocking commits
  drm/arc: Implement nonblocking commit correctly
  drm/i915: Signal drm events for atomic
  drm/i915: Roll out the helper nonblock tracking
  drm/i915: nonblocking commit
  drm/i915: Use atomic commits for legacy page_flips
  drm/i915: Move fb_bits updating later in atomic_commit
  drm/rockchip: Disarm vop->is_enabled
  drm/rockchip: Fix crtc_state->event signalling
  drm/rockchip: convert to helper nonblocking atomic commit
  drm/rockchip: Nuke pending event handling in preclose
  drm/virtio: Don't reinvent a flipping wheel
  drm: Replace fb_helper->atomic with mode_config->atomic_commit
  drm: Resurrect atomic rmfb code
  drm/sti: Don't call drm_helper_disable_unused_functions
  drm/crtc-helper: disable_unused_functions really isn't for atomic

Gustavo Padovan (1):
  drm/fence: add fence to drm_pending_event

 drivers/gpu/drm/arc/arcpgu.h                    |   1 -
 drivers/gpu/drm/arc/arcpgu_crtc.c               |  19 +-
 drivers/gpu/drm/arc/arcpgu_drv.c                |  27 +-
 drivers/gpu/drm/arm/hdlcd_crtc.c                |  37 +-
 drivers/gpu/drm/arm/hdlcd_drv.c                 |  27 +-
 drivers/gpu/drm/arm/hdlcd_drv.h                 |   1 -
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c    |   2 +-
 drivers/gpu/drm/drm_atomic.c                    | 168 ++++++--
 drivers/gpu/drm/drm_atomic_helper.c             | 532 ++++++++++++++++++++----
 drivers/gpu/drm/drm_crtc.c                      |   9 +
 drivers/gpu/drm/drm_crtc_helper.c               |   3 +
 drivers/gpu/drm/drm_crtc_internal.h             |   1 +
 drivers/gpu/drm/drm_fb_helper.c                 |   6 +-
 drivers/gpu/drm/drm_fops.c                      |  22 +-
 drivers/gpu/drm/exynos/exynos_drm_drv.c         |  10 +-
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c      |  23 +-
 drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c |  20 +-
 drivers/gpu/drm/i915/intel_atomic.c             |   6 +-
 drivers/gpu/drm/i915/intel_display.c            | 178 +++++---
 drivers/gpu/drm/i915/intel_fbdev.c              |   2 -
 drivers/gpu/drm/i915/intel_sprite.c             |  14 +
 drivers/gpu/drm/mediatek/mtk_drm_drv.c          |   2 +-
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c         |  20 +-
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c        |  10 +-
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c         |  12 +-
 drivers/gpu/drm/msm/msm_atomic.c                |  37 +-
 drivers/gpu/drm/nouveau/nouveau_usif.c          |   1 -
 drivers/gpu/drm/omapdrm/omap_drv.c              |  13 +-
 drivers/gpu/drm/rcar-du/rcar_du_kms.c           |  10 +-
 drivers/gpu/drm/rcar-du/rcar_du_plane.c         |  20 +-
 drivers/gpu/drm/rockchip/rockchip_drm_drv.c     |  25 --
 drivers/gpu/drm/rockchip/rockchip_drm_drv.h     |  11 -
 drivers/gpu/drm/rockchip/rockchip_drm_fb.c      |  73 +---
 drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c   |   3 -
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c     |  68 +--
 drivers/gpu/drm/sti/sti_drv.c                   |   3 +-
 drivers/gpu/drm/sun4i/sun4i_crtc.c              |  12 +
 drivers/gpu/drm/tegra/drm.c                     |   2 +-
 drivers/gpu/drm/vc4/vc4_crtc.c                  |  11 +-
 drivers/gpu/drm/vc4/vc4_drv.h                   |   2 +-
 drivers/gpu/drm/vc4/vc4_kms.c                   |  12 +-
 drivers/gpu/drm/vc4/vc4_plane.c                 |   5 +-
 drivers/gpu/drm/virtio/virtgpu_display.c        |  48 +--
 include/drm/drmP.h                              |   4 +-
 include/drm/drm_atomic.h                        |  79 +++-
 include/drm/drm_atomic_helper.h                 |  12 +-
 include/drm/drm_crtc.h                          | 149 ++++++-
 include/drm/drm_fb_helper.h                     |  11 -
 include/drm/drm_modeset_helper_vtables.h        |  39 ++
 49 files changed, 1165 insertions(+), 637 deletions(-)

-- 
2.8.1

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux