[PATCH 00/31] Convert omapdrm to the atomic updates API

Daniel Vetter daniel at ffwll.ch
Thu Apr 16 02:12:45 PDT 2015


On Thu, Apr 16, 2015 at 01:09:17AM +0300, Laurent Pinchart wrote:
> Hello,
> 
> This patch set converts the omapdrm to the atomic update API in 31 small(ish)
> and hopefully reviewable steps.
> 
> The series is based on the latest drm/next branch and depends on the pending
> "drm: omapdrm: Store the rotation property in dev->mode_config" patch by
> Daniel Vetter.
> 
> The omapdrm loses support for its custom fences in the process. This isn't
> deemed to be an issue, as the custom fences API is used by the SGX driver
> only, which requires out-of-tree patches anyway. Fences support will be
> reimplemented at a later point on top of the atomic updates conversion using
> the mainline fence API.
> 
> One known issue is a race condition between asynchronous commits and
> drm_release() which can trigger a warning if a commit is applied between the
> drm_events_release() call and the WARN_ON(!list_empty(&file_priv->event_list)).
> Investigation is ongoing to find out the best way to fix the problem, the
> problem seems not to be limited to omapdrm (but can be more or less difficult
> to reproduce depending on the driver). Ideas would be welcome, I've CC'ed
> maintainers of possibly affected drivers.

Known issue, every driver has to currently hand-roll their pending events
code, and many don't :( One of my goals with rewriting drm_irq.c was to
make it possible to fix this up, but somehow that gets pushed down the
priority list forever ...
-Daniel

> 
> There's not much else to be said, details are explained in individual patches.
> 
> The patches can be found in my git tree at
> 
> 	git://linuxtv.org/pinchartl/fbdev.git omapdrm/next
> 
> Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
> Cc: Rob Clark <robdclark at gmail.com>
> Cc: Thierry Reding <treding at nvidia.com>
> Cc: Benjamin Gaignard <benjamin.gaignard at linaro.org>
> 
> Laurent Pinchart (31):
>   drm: omapdrm: Store the rotation property in dev->mode_config
>   drm: omapdrm: Apply settings synchronously
>   drm: omapdrm: Rename omap_crtc_page_flip_locked to omap_crtc_page_flip
>   drm: omapdrm: Rename omap_crtc page flip-related fields
>   drm: omapdrm: Simplify IRQ registration
>   drm: omapdrm: Cancel pending page flips when closing device
>   drm: omapdrm: Rework page flip handling
>   drm: omapdrm: Turn vblank on/off when enabling/disabling CRTC
>   drm: omapdrm: Fix page flip race with CRTC disable
>   drm: omapdrm: Clean up #include's
>   drm: omapdrm: Rename CRTC DSS operations with an omap_crtc_dss_ prefix
>   drm: omapdrm: Rework CRTC enable/disable for atomic updates
>   drm: omapdrm: Implement encoder .disable() and .enable() operations
>   drm: omapdrm: Wire up atomic state object scaffolding
>   drm: omapdrm: Implement planes atomic operations
>   drm: omapdrm: Handle primary plane config through atomic plane ops
>   drm: omapdrm: Switch plane update to atomic helpers
>   drm: omapdrm: Switch mode config to atomic helpers
>   drm: omapdrm: Switch connector DPMS to atomic helpers
>   drm: omapdrm: Replace encoder mode_fixup with atomic_check
>   drm: omapdrm: Implement asynchronous commit support
>   drm: omapdrm: Switch page flip to atomic helpers
>   drm: omapdrm: Drop manual framebuffer pin handling
>   drm: omapdrm: Switch crtc and plane set_property to atomic helpers
>   drm: omapdrm: Move plane info and win out of the plane structure
>   drm: omapdrm: Move crtc info out of the crtc structure
>   drm: omapdrm: Remove omap_crtc enabled field
>   drm: omapdrm: Remove omap_plane enabled field
>   drm: omapdrm: Make the omap_crtc_flush function static
>   drm: omapdrm: Don't get/put dispc in omap_crtc_flush()
>   drm: omapdrm: omap_crtc_flush() isn't called with modeset locked
> 
>  drivers/gpu/drm/omapdrm/omap_connector.c  |  12 +-
>  drivers/gpu/drm/omapdrm/omap_crtc.c       | 580 +++++++++++++-----------------
>  drivers/gpu/drm/omapdrm/omap_debugfs.c    |   6 +-
>  drivers/gpu/drm/omapdrm/omap_dmm_tiler.c  |  19 +-
>  drivers/gpu/drm/omapdrm/omap_drv.c        | 162 ++++++++-
>  drivers/gpu/drm/omapdrm/omap_drv.h        |  52 +--
>  drivers/gpu/drm/omapdrm/omap_encoder.c    |  60 ++--
>  drivers/gpu/drm/omapdrm/omap_fb.c         |   8 +-
>  drivers/gpu/drm/omapdrm/omap_fbdev.c      |   6 +-
>  drivers/gpu/drm/omapdrm/omap_gem.c        |   4 +-
>  drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c |   4 +-
>  drivers/gpu/drm/omapdrm/omap_irq.c        | 106 ++----
>  drivers/gpu/drm/omapdrm/omap_plane.c      | 426 +++++++++-------------
>  13 files changed, 656 insertions(+), 789 deletions(-)
> 
> -- 
> Regards,
> 
> Laurent Pinchart
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the dri-devel mailing list