[PATCH 3/3] drm: omapdrm: Do no allocate non-scanout GEMs through DMM/TILER

Tomi Valkeinen tomi.valkeinen at ideasonboard.com
Tue Aug 30 18:23:28 UTC 2022


On 30/08/2022 21:08, Ivaylo Dimitrov wrote:

>>>          flags &= ~OMAP_BO_TILED_MASK;
>>>          flags |= 0x00000008;
>>>          flags |= OMAP_BO_WC;
>>>
>>>          bo = omap_bo_new(dev, size, flags);
>>>
>>> As you can see we use 0x00000008 (OMAP_BO_MEM_CONTIG) unconditionally.
>>> This was a hack added since even non-scanout buffers sometimes need
>>> to be contiguous (video decoder surfaces), but we had no way back
> 
> Hmm, why would video decoder need linear memory? No MMU?

Not sure about this case, but many/most IPs don't have MMU. E.g. CSI-2 
or parallel capture.

>>> If you tell me what the code should look like, I can rebuild the
>>> lib and post a copy.
>>>
>>> Long term, I'd like to start using DMA-BUF Heaps for CMA memory
>>> allocations in gralloc and elsewhere, then drop out the DMM/TILER
>>> support from OMAPDRM, since it never really belonged there in
>>> the first place (being a IOMMU unrelated to the display/GPU).
>>>
> 
> Umm, how will we rotate scanout buffers then?

Didn't we discuss this earlier in this thread. Or some other thread. 
Related to VRFB... I'm not sure =).

Anyway, neither VRFB nor DMM/TILER are part of the DSS. They're part of 
the memory subsystem. They can be used without DSS being in the setup. 
Thus the code for VRFB and DMM/TILER should not be in the DSS driver.

The DSS driver should still, of course, support DMM/TILER (and maybe 
VRFB some day) in the "use" sense, i.e. so that DSS can use the 
DMM/TILER provided from another driver.

But how exactly that's to be implemented, I don't know.

  Tomi


More information about the dri-devel mailing list