Hi, This is v2 of the atomic modesetting series for omapdrm. Laurent was not able to finish the work before having to leave abroad, so I continued the work on the series, fixing up the remaining issues and doing some additional cleanups. It is a bit late in the kernel development cycle, but I'm hoping we could get this into v4.2 for two reasons: * After these patches some long remaining issues in omapdrm are gone. We finally get tear-free page flipping. * After these patches the driver is so, SO much cleaner, that fixing any new bugs found will be considerably easier. There is some going back-and-forth in these patches, but that's expected with such a big change. The kernel should compile after each patch, but omapdrm will not function perfectly after each patch. The issues shouldn't be huge, though, but things like fps dropping into half do happen in the middle of the series. 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. I have been testing this with Pandaboard, using single and dual outputs, without any issues. These patches can also be found from: git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux.git omapdrm-atomic Tomi Cc: Daniel Vetter <daniel.vetter@xxxxxxxx> Cc: Rob Clark <robdclark@xxxxxxxxx> Cc: Thierry Reding <treding@xxxxxxxxxx> Cc: Benjamin Gaignard <benjamin.gaignard@xxxxxxxxxx> Laurent Pinchart (37): 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 drm: omapdrm: Support unlinking page flip events prematurely drm: omapdrm: Remove nested PM get/sync when configuring encoders drm: omapdrm: Simplify DSS power management drm: omapdrm: Move encoder setup to encoder operations drm: omapdrm: Don't flush CRTC when enabling or disabling it drm: omapdrm: Don't setup planes manually from CRTC .enable()/.disable() Tomi Valkeinen (8): drm: omapdrm: omap_plane_setup() cannot fail, use WARN drm: omapdrm: inline omap_plane_setup into update/disable drm: omapdrm: if omap_plane_atomic_update fails, disable plane drm: omapdrm: remove omap_crtc_wait_page_flip drm: omapdrm: add omap_atomic_wait_for_gos() drm: omapdrm: don't wait in crtc_atomic_flush drm: omapdrm: merge omap_crtc_flush and omap_crtc_atomic_flush drm: omapdrm: add lock for fb pinning drivers/gpu/drm/omapdrm/omap_connector.c | 12 +- drivers/gpu/drm/omapdrm/omap_crtc.c | 539 +++++++++--------------------- drivers/gpu/drm/omapdrm/omap_debugfs.c | 6 +- drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 19 +- drivers/gpu/drm/omapdrm/omap_drv.c | 233 ++++++++++++- drivers/gpu/drm/omapdrm/omap_drv.h | 59 +--- drivers/gpu/drm/omapdrm/omap_encoder.c | 99 ++---- drivers/gpu/drm/omapdrm/omap_fb.c | 27 +- 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 | 424 +++++++++-------------- 13 files changed, 664 insertions(+), 874 deletions(-) -- 2.1.4 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel