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,