On 2/17/22 10:41, Thomas Zimmermann wrote:
Hi
Am 17.02.22 um 10:25 schrieb Lucas De Marchi:
[...]
>> $ git grep "TODO: Use mapping abstraction properly" | wc -l
>> 15
>>
>> If you point me the proper way, I'll be happy to post a patch to
>> change it.
>
> It depends what you want to do with the address. There are APIs to copy
> from/to. I also added a few to read/write to an offset. It seems the
> problem here is that you need to pass that to a helper,
> drm_fb_xrgb8888_to_mono_reversed(). I think the proper solution would be
> to change the helper to accept an iosys_map* as argument rather than a
> void*.
There are several of these TODOs in the DRM code, because our
format-conversion helpers are still from the time before
dma_buf_map/iosys_map. The easiest workaround is to take the raw pointer
and give it to them. One day, DRM's public blit and conversion
interfaces will take an iosys_map and handle the different memory types
internally.
Yes, as Lucas mentioned there are copy from/to helpers but didn't want to
use it because would be another unnecessary copy just to avoid to take the
map->vaddr raw pointer and pass directly to the format-conversion helper.
Javierm, that's when the internal _line() helpers will become
useful.
They can use system memory directly, and for I/O memory the
blit/conversion helpers allocate an internal temporary per-line buffer.
The code you made for the new driver has this designed outlined already.
Indeed. I understand now what you meant when proposing to add those helpers.
Best regards
Thomas
Best regards,
--
Javier Martinez Canillas
Linux Engineering
Red Hat