[RFC 0/8] TI TILER-DMM driver

Sin, David davidsin at ti.com
Wed Jul 28 11:23:06 EDT 2010


> -----Original Message-----
> From: Hans Verkuil [mailto:hverkuil at xs4all.nl] 
> Sent: Saturday, July 24, 2010 6:13 AM
> To: Sin, David
> Cc: linux-arm-kernel at lists.arm.linux.org.uk; 
> linux-omap at vger.kernel.org; Tony Lindgren; Russell King; 
> Kanigeri, Hari; Ohad Ben-Cohen; Hiremath, Vaibhav; Shilimkar, Santosh
> Subject: Re: [RFC 0/8] TI TILER-DMM driver
> 
> Hi David,
> 
> On Saturday 24 July 2010 01:22:20 David Sin wrote:
> > TILER is a hardware block made by Texas Instruments.  Its 
> purpose is to 
> > organize video/image memory in a 2-dimensional fashion to 
> limit memory 
> > bandwidth and facilitate 0 effort rotation and mirroring.  
> The TILER 
> > driver facilitates allocating, freeing, as well as mapping 
> 2D blocks (areas) 
> > in the TILER container(s).  It also facilitates rotating 
> and mirroring 
> > the allocated blocks or its rectangular subsections.
> 
> Since this driver is part of the media/video subsystem you 
> should cross-post
> it to the linux-media mailinglist as well.
> 
> The main question that I have is how this driver is to be 
> used in practice.
> How does it fit into the bigger video4linux picture? Is this 
> something that
> is mainly used from other v4l or fb drivers? Or is it 
> controlled by userspace?

[dhs] I missed this one -- my apologies.  As I stated to Vaibhav, any device can use TILER memory, but there is a big advantage, performance-wise, for 2-Dimensional macro block based buffers.  This HW is intended for image/video hardware accelerators (e.g. OMAP4 IVA-HD).  Plus there's the added advantage of doing zero-copy flips and rotations for the OMAP display and image sub-systems.

In this RFC, there are only kernel APIs to allocate TILER memory.  Eventually, we would like to provide a way to obtain TILER memory to the user space.

> 
> Regards,
> 
> 	Hans
> 
> > 
> > List of pending items in proposed order:
> > 
> > * Add area packing support (multiple blocks can reside in 
> the same band/area)
> >   to optimize area use
> > * Add group-ID support (to specify which blocks can reside 
> together in the
> >   same area)
> > * Add multiple search directions to TCM-SiTA
> > * Add 1D block support (including adding 1D search algo to TCM-SiTA)
> > * Optimize mutex handling (don.t hold mutex during memory
> >   allocation/mapping/cache flushing)
> > * Add block reference counting, support for sharing blocks
> > * Move all kernel-API-s to tiler-iface.c
> > * Support orphaned block support (in preparation for 
> process cleanup support)
> > * Change block identification from physical address to key-ID pair
> >   (in preparation for user space support, and process security)
> > * Add support for process security (blocks from separate 
> processes never
> >   reside in the same band)
> > * Support file interface (ioctl and mmap)
> > * Support for buffers (ordered list of blocks that are 
> mapped to userspace
> >   together, such as YUV420sp)
> > * Support 1D user buffer mapping into TILER container
> > * Support for block pre-reservation (to further optimize area use)
> > 
> > David Sin (1):
> >   TILER-DMM: DMM-PAT driver for TI TILER
> > 
> > Lajos Molnar (6):
> >   TILER-DMM: Container manager interface and utility definitons
> >   TILER-DMM: TILER Memory Manager interface and implementation
> >   TILER-DMM: TILER interface file and documentation
> >   TILER-DMM: Geometry and view manipulation functions.
> >   TILER-DMM: Main TILER driver implementation.
> >   TILER-DMM: Linking TILER driver into the Linux kernel build
> > 
> > Ravi Ramachandra (1):
> >   TILER-DMM: Sample TCM implementation: Simple TILER Allocator
> > 
> >  Documentation/arm/TILER                   |  144 +++++++++
> >  arch/arm/mach-omap2/include/mach/dmm.h    |  128 ++++++++
> >  arch/arm/mach-omap2/include/mach/tiler.h  |  201 +++++++++++++
> >  drivers/media/Kconfig                     |    6 +
> >  drivers/media/Makefile                    |    2 +
> >  drivers/media/video/tiler/Kconfig         |   65 ++++
> >  drivers/media/video/tiler/Makefile        |    7 +
> >  drivers/media/video/tiler/_tiler.h        |   51 ++++
> >  drivers/media/video/tiler/dmm.c           |  200 +++++++++++++
> >  drivers/media/video/tiler/tcm.h           |  209 +++++++++++++
> >  drivers/media/video/tiler/tcm/Makefile    |    1 +
> >  drivers/media/video/tiler/tcm/_tcm-sita.h |   64 ++++
> >  drivers/media/video/tiler/tcm/tcm-sita.c  |  459 
> +++++++++++++++++++++++++++++
> >  drivers/media/video/tiler/tcm/tcm-sita.h  |   37 +++
> >  drivers/media/video/tiler/tcm/tcm-utils.h |   54 ++++
> >  drivers/media/video/tiler/tiler-geom.c    |  360 
> ++++++++++++++++++++++
> >  drivers/media/video/tiler/tiler-iface.c   |  106 +++++++
> >  drivers/media/video/tiler/tiler-main.c    |  426 
> ++++++++++++++++++++++++++
> >  drivers/media/video/tiler/tmm-pat.c       |  274 +++++++++++++++++
> >  drivers/media/video/tiler/tmm.h           |  109 +++++++
> >  20 files changed, 2903 insertions(+), 0 deletions(-)
> >  create mode 100644 Documentation/arm/TILER
> >  create mode 100644 arch/arm/mach-omap2/include/mach/dmm.h
> >  create mode 100644 arch/arm/mach-omap2/include/mach/tiler.h
> >  create mode 100644 drivers/media/video/tiler/Kconfig
> >  create mode 100644 drivers/media/video/tiler/Makefile
> >  create mode 100644 drivers/media/video/tiler/_tiler.h
> >  create mode 100644 drivers/media/video/tiler/dmm.c
> >  create mode 100644 drivers/media/video/tiler/tcm.h
> >  create mode 100644 drivers/media/video/tiler/tcm/Makefile
> >  create mode 100644 drivers/media/video/tiler/tcm/_tcm-sita.h
> >  create mode 100644 drivers/media/video/tiler/tcm/tcm-sita.c
> >  create mode 100644 drivers/media/video/tiler/tcm/tcm-sita.h
> >  create mode 100644 drivers/media/video/tiler/tcm/tcm-utils.h
> >  create mode 100644 drivers/media/video/tiler/tiler-geom.c
> >  create mode 100644 drivers/media/video/tiler/tiler-iface.c
> >  create mode 100644 drivers/media/video/tiler/tiler-main.c
> >  create mode 100644 drivers/media/video/tiler/tmm-pat.c
> >  create mode 100644 drivers/media/video/tiler/tmm.h
> > 
> > --
> > To unsubscribe from this list: send the line "unsubscribe 
> linux-omap" in
> > the body of a message to majordomo at vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > 
> > 
> 
> -- 
> Hans Verkuil - video4linux developer - sponsored by TANDBERG, 
> part of Cisco
> 


More information about the linux-arm-kernel mailing list