On Wed, 2011-12-07 at 07:29 -0600, Rob Clark wrote:
> On Wed, Dec 7, 2011 at 3:31 AM, Tomi Valkeinen <tomi.valkei...@ti.com> wrote:
> > Hi,
> >
> > On Mon, 2011-12-05 at 19:19 -0600, Rob Clark wrote:
> >> From: Rob Clark <r...@ti.com>
> >>
> >> Support for DMM and tiled buffers.  The DMM/TILER block in omap4+ SoC
> >> provides support for remapping physically discontiguous buffers for
> >> various DMA initiators (DSS, IVAHD, etc) which do not otherwise support
> >> non-physically contiguous buffers, as well as providing support for
> >> tiled buffers.
> >>
> >> See the descriptions in the following two patches for more details.
> >
> > Why is the tiler/dmm driver integrated into the drm driver?
> 
> Basically because of a big list of reasons to keep it integrated, and
> no good reason that I could think of to make it a standalone driver.

Well, I think it's good architecture to keep independent things
separate. Also we have other display frameworks in the kernel than DRM.

> 1) Because the function/usage is most like a GTT in other systems..
> the usage is really graphics/multimedia related so GEM is a natural
> way to expose it to userspace.  Other places we want to use tiler
> buffers, like camera, are neatly handled by using dmabuf to export the
> GEM buffer to a different device.
> 
> 2) We went down the separate driver path in the past, and it really
> exposes a lot of problems.  See the hacks that were done in the past
> to get wakeup/resume sequencing correct when tiler was a separate
> driver.  (hint: the table of page addresses needs to be reprogrammed
> before any access to buffer mapped in DMM is done.. this can be
> accomplished quite simply by restoring the LUT before enabling any
> video pipes when it is in a single driver... although that is still in
> the TODO)
> 
> 3) Doing some of the more advanced stuff, like page flipping using
> DMM's synchronized refill to update page addresses synchronized with
> scannout will, I think, end up being some kinda weird API.. I don't
> think I'd want to make that a public API exported by one driver
> consumed by another, but not such a problem if it is just something
> used internally by one driver.
> 
> 4) The LUT isn't really big enough to be managed statically like we
> did in the past.. it needs to be managed dynamically, mapping and
> evicting buffers.  This is something that is typical with other gfx
> drivers in their management of their GTT..
> 
> 5) I wouldn't really want to duplicate the userspace mmap'ing games
> for 2d buffers in a lot of different drivers.

I can't really argue your points as I'm not familiar with the problems
with the tiler. So I'm not questioning the decision to integrate the
tiler code into drm, just expressing my toughts =).

If the tiler driver had only kernel internal API, and no userspace APIs,
I don't see why it'd be much more difficult to have as a separate driver
than integrated into DRM. Well, except if the tiler code itself uses
features offered by DRM extensively, and having the tiler code as an
independent driver would mean replicating all those features.

I guess it's not quite a fair comparison, but I'm comparing tiler to the
vrfb driver (well, lib is perhaps a better word for it), which doesn't
depend on any framework and can be used by any kernel component.

 Tomi

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to