[Lima] [PATCH 0/2] Lima DRM driver
Noralf Trønnes
noralf at tronnes.org
Thu Feb 14 21:15:14 UTC 2019
Den 13.02.2019 02.44, skrev Rob Herring:
> On Tue, Feb 12, 2019 at 7:00 PM Eric Anholt <eric at anholt.net> wrote:
>>
>> Rob Herring <robh at kernel.org> writes:
>>
[snip]
>>> FWIW, I'm working on the panfrost driver and am using the shmem
>>> helpers from Noralf. It's the early stages though. I started a patch
>>> for etnaviv to use it too, but found I need to rework it to sub-class
>>> the shmem GEM object.
>>
>> Did you just convert the shmem helpers over to doing alloc_coherent? If
>> so, I'd be interested in picking them up for v3d, and that might help
>> get another patch out of your stack.
>
> I haven't really fully addressed that yet, but yeah, my plan is just
> to switch to WC alloc and mappings. I was going to try to make it
> configurable, but there is a comment in the ARM dma mapping code which
> makes me wonder if tinydrm using streaming DMA for SPI is
> fundamentally broken (and maybe CMA is less broken?). If not broken,
> not guaranteed to work.
>
> /*
> * The whole dma_get_sgtable() idea is fundamentally unsafe - it seems
> * that the intention is to allow exporting memory allocated via the
> * coherent DMA APIs through the dma_buf API, which only accepts a
> * scattertable. This presents a couple of problems:
> * 1. Not all memory allocated via the coherent DMA APIs is backed by
> * a struct page
> * 2. Passing coherent DMA memory into the streaming APIs is not allowed
> * as we will try to flush the memory through a different alias to that
> * actually being used (and the flushes are redundant.)
> */
>
Thanks for drawing my attention to this, I wasn't aware of it. Sadly the
SPI subsystem doesn't have a way to pass in dma buffers, everything has
to go through the streaming API. Long term I guess I have to add support
for that.
Noralf.
More information about the lima
mailing list