iosys-map: Add offset to iosys_map_memcpy_to()

In certain situations it's useful to be able to write to an
offset of the mapping. Add a dst_offset to iosys_map_memcpy_to().

Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Christian König <christian.koenig@amd.com>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: dri-devel@lists.freedesktop.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20220216174147.3073235-2-lucas.demarchi@intel.com
This commit is contained in:
Lucas De Marchi
2022-02-16 09:41:32 -08:00
parent 2f8a6699c9
commit cccd73d607
3 changed files with 11 additions and 10 deletions

View File

@@ -220,22 +220,23 @@ static inline void iosys_map_clear(struct iosys_map *map)
}
/**
* iosys_map_memcpy_to - Memcpy into iosys mapping
* iosys_map_memcpy_to - Memcpy into offset of iosys_map
* @dst: The iosys_map structure
* @dst_offset: The offset from which to copy
* @src: The source buffer
* @len: The number of byte in src
*
* Copies data into a iosys mapping. The source buffer is in system
* memory. Depending on the buffer's location, the helper picks the correct
* method of accessing the memory.
* Copies data into a iosys_map with an offset. The source buffer is in
* system memory. Depending on the buffer's location, the helper picks the
* correct method of accessing the memory.
*/
static inline void iosys_map_memcpy_to(struct iosys_map *dst, const void *src,
size_t len)
static inline void iosys_map_memcpy_to(struct iosys_map *dst, size_t dst_offset,
const void *src, size_t len)
{
if (dst->is_iomem)
memcpy_toio(dst->vaddr_iomem, src, len);
memcpy_toio(dst->vaddr_iomem + dst_offset, src, len);
else
memcpy(dst->vaddr, src, len);
memcpy(dst->vaddr + dst_offset, src, len);
}
/**