[PATCH v2 00/16] omapdrm: Implement dma_buf import

Laurent Pinchart laurent.pinchart at ideasonboard.com
Mon Dec 14 12:39:28 PST 2015


Hello,

This patch series implements support for dma_buf import in the omapdrm driver.
The patches are based on top of the latest drm-next branch and can be found in
my git tree at

        git://linuxtv.org/pinchartl/fbdev.git omapdrm/dmabuf-import

The first two patches are unrelated fixes and enhancements, but I've included
them in the series to avoid merge conflicts.

The next 13 patches are miscellaneous fixes, cleanups and refactoring to
prepare for patch 16/16 that implements dma_buf import.

The code has been successfully tested with the vivid driver as an exporter,
using a hacked version that uses uncached CPU mappings in vivid when filling
the buffers. vivid is a test driver that generates a test pattern using the
CPU with cached mappings by default, resulting in corruption on the screen due
to missing cache handling. As the problem doesn't occur when sharing buffers
not touched by the CPU or touched through uncached mappings only, it will be
addressed separately.

Changes since v1:

- Added patch 11/16 ("drm: omapdrm: gem: Fix GEM object destroy in error path")
- Drop the dma-buf reexport check, reexport is handled by the DRM core
- Make the OMAP_BO_USER_MASK definition private

Laurent Pinchart (16):
  drm: omapdrm: Fix plane state free in plane reset handler
  drm: omapdrm: Make fbdev emulation optional
  drm: omapdrm: gem: Remove unused function prototypes
  drm: omapdrm: gem: Remove forward declarations
  drm: omapdrm: gem: Group functions by purpose
  drm: omapdrm: gem: Move global usergart variable to omap_drm_private
  drm: omapdrm: gem: Remove omap_drm_private has_dmm field
  drm: omapdrm: gem: Mask out private flags passed from userspace
  drm: omapdrm: gem: Clean up GEM objects memory flags
  drm: omapdrm: gem: Free the correct memory object
  drm: omapdrm: gem: Fix GEM object destroy in error path
  drm: omapdrm: gem: Don't free mmap offset twice
  drm: omapdrm: gem: Simplify error handling when creating GEM object
  drm: omapdrm: gem: Remove check for impossible condition
  drm: omapdrm: gem: Refactor GEM object allocation
  drm: omapdrm: gem: Implement dma_buf import

 drivers/gpu/drm/omapdrm/Makefile          |   3 +-
 drivers/gpu/drm/omapdrm/omap_debugfs.c    |   4 +
 drivers/gpu/drm/omapdrm/omap_drv.c        |  17 +-
 drivers/gpu/drm/omapdrm/omap_drv.h        |  16 +-
 drivers/gpu/drm/omapdrm/omap_fbdev.c      |   6 +-
 drivers/gpu/drm/omapdrm/omap_gem.c        | 501 +++++++++++++++++++-----------
 drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c |  53 +++-
 drivers/gpu/drm/omapdrm/omap_plane.c      |  55 ++--
 8 files changed, 421 insertions(+), 234 deletions(-)

-- 
Regards,

Laurent Pinchart



More information about the dri-devel mailing list