[PATCH 00/36] kms locking rework

Rob Clark robdclark at gmail.com
Fri Jan 11 15:17:05 PST 2013


On Thu, Jan 10, 2013 at 2:47 PM, Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> Hi all,
>
> Concurrent EDID reads and pageflips ftw!
>
> Changes since the rfc:
> - radeon/ttm/exynos prep patches/fixes merged.
> - arm driver patches at least compile-tested.
> - error handling fixed in a few cases, all spotted by Richard Wilbur,
> - radeon/nouveau tested on one card each, didn't blow up right away.
> - i-g-t extended to cover the corner-cases, seems to hold up.
> - DocBook updated as a new patch on top.
> - one more patch to teach the fb helpers manners and not interfere so much with
>   i-g-t tests.
>
> Imo this is ready for inclusion, so (especially driver maintainers) please
> review and test.

I've read through the series..  I'll have to make a few little updates
vs the dss/kms rewrite patch in omapdrm which should hopefully be
merged soon, but that shouldn't be a big deal.

Reviewed-by: Rob Clark <rob at ti.com>

> Yours, Daniel
>
> Daniel Vetter (35):
>   drm: review locking rules in drm_crtc.c
>   drm/doc: integrate drm_crtc.c kerneldoc
>   drm/<drivers>: reorder framebuffer init sequence
>   drm/vmwgfx: reorder framebuffer init sequence
>   drm/gma500: move fbcon restore to lastclose
>   drm/nouveau: protect evo_wait/evo_kick sections with a channel mutex
>   drm/nouveau: try to protect nbo->pin_refcount
>   drm/<drivers>: Unified handling of unimplemented fb->create_handle
>   drm: encapsulate crtc->set_config calls
>   drm: add drm_modeset_lock|unlock_all
>   drm/i915: use drm_modeset_lock_all
>   drm/gma500: use drm_modeset_lock_all
>   drm/ast: use drm_modeset_lock_all
>   drm/shmobile: use drm_modeset_lock_all
>   drm/vmgfx: use drm_modeset_lock_all
>   drm: add per-crtc locks
>   drm: only take the crtc lock for ->cursor_set
>   drm: only take the crtc lock for ->cursor_move
>   drm: revamp locking around fb creation/destruction
>   drm: create drm_framebuffer_lookup
>   drm: revamp framebuffer cleanup interfaces
>   drm: reference framebuffers which are on the idr
>   drm: nest modeset locks within fpriv->fbs_lock
>   drm: push modeset_lock_all into ->fb_create driver callbacks
>   drm: don't take modeset locks in getfb ioctl
>   drm: fb refcounting for dirtyfb_ioctl
>   drm: refcounting for sprite framebuffers
>   drm: refcounting for crtc framebuffers
>   drm/i915: dump refcount into framebuffer debugfs file
>   drm/vmwgfx: add proper framebuffer refcounting
>   drm: optimize drm_framebuffer_remove
>   drm: only grab the crtc lock for pageflips
>   drm: don't hold crtc mutexes for connector ->detect callbacks
>   drm/doc: updates for new framebuffer lifetime rules
>   drm/fb_helper: check whether fbcon is bound
>
>  Documentation/DocBook/drm.tmpl            |   63 ++-
>  drivers/gpu/drm/ast/ast_drv.c             |    4 +-
>  drivers/gpu/drm/ast/ast_drv.h             |    2 +
>  drivers/gpu/drm/ast/ast_fb.c              |    1 +
>  drivers/gpu/drm/ast/ast_main.c            |   12 +-
>  drivers/gpu/drm/cirrus/cirrus_fbdev.c     |    1 +
>  drivers/gpu/drm/cirrus/cirrus_main.c      |   12 +-
>  drivers/gpu/drm/drm_crtc.c                |  792 +++++++++++++++++------------
>  drivers/gpu/drm/drm_fb_cma_helper.c       |   15 +-
>  drivers/gpu/drm/drm_fb_helper.c           |   65 ++-
>  drivers/gpu/drm/drm_fops.c                |    1 +
>  drivers/gpu/drm/exynos/exynos_drm_fbdev.c |    4 +-
>  drivers/gpu/drm/gma500/framebuffer.c      |   29 +-
>  drivers/gpu/drm/gma500/psb_device.c       |    8 +-
>  drivers/gpu/drm/gma500/psb_drv.c          |   14 +-
>  drivers/gpu/drm/i2c/ch7006_drv.c          |    2 +-
>  drivers/gpu/drm/i915/i915_debugfs.c       |   15 +-
>  drivers/gpu/drm/i915/intel_display.c      |   21 +-
>  drivers/gpu/drm/i915/intel_dp.c           |    2 +
>  drivers/gpu/drm/i915/intel_fb.c           |    5 +-
>  drivers/gpu/drm/i915/intel_lvds.c         |    4 +-
>  drivers/gpu/drm/i915/intel_overlay.c      |   14 +-
>  drivers/gpu/drm/i915/intel_sprite.c       |    8 +-
>  drivers/gpu/drm/mgag200/mgag200_fb.c      |    1 +
>  drivers/gpu/drm/mgag200/mgag200_main.c    |   16 +-
>  drivers/gpu/drm/nouveau/nouveau_bo.c      |   22 +-
>  drivers/gpu/drm/nouveau/nouveau_bo.h      |    2 +
>  drivers/gpu/drm/nouveau/nouveau_display.c |   10 +-
>  drivers/gpu/drm/nouveau/nouveau_fbcon.c   |    1 +
>  drivers/gpu/drm/nouveau/nv04_display.c    |    2 +-
>  drivers/gpu/drm/nouveau/nv17_tv.c         |    2 +-
>  drivers/gpu/drm/nouveau/nv50_display.c    |   10 +
>  drivers/gpu/drm/radeon/radeon_cursor.c    |    8 +-
>  drivers/gpu/drm/radeon/radeon_display.c   |    2 +-
>  drivers/gpu/drm/radeon/radeon_fb.c        |    2 +
>  drivers/gpu/drm/shmobile/shmob_drm_drv.c  |    4 +-
>  drivers/gpu/drm/udl/udl_fb.c              |    4 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_drv.c       |    2 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c     |   38 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_kms.c       |   87 ++--
>  drivers/staging/omapdrm/omap_debugfs.c    |    2 +
>  drivers/staging/omapdrm/omap_fb.c         |   16 +-
>  drivers/staging/omapdrm/omap_fbdev.c      |    8 +-
>  include/drm/drmP.h                        |   13 +
>  include/drm/drm_crtc.h                    |   30 ++
>  45 files changed, 830 insertions(+), 546 deletions(-)
>
> --
> 1.7.10.4
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel


More information about the dri-devel mailing list