drm/nouveau/core: add gpuobj memcpy helper functions
Add memcpy functions to copy a buffer to a gpuobj and vice-versa. This will be used by the secure boot code. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
96fc422c27
commit
5d2083d2f9
|
@ -37,4 +37,8 @@ int nvkm_gpuobj_wrap(struct nvkm_memory *, struct nvkm_gpuobj **);
|
||||||
int nvkm_gpuobj_map(struct nvkm_gpuobj *, struct nvkm_vm *, u32 access,
|
int nvkm_gpuobj_map(struct nvkm_gpuobj *, struct nvkm_vm *, u32 access,
|
||||||
struct nvkm_vma *);
|
struct nvkm_vma *);
|
||||||
void nvkm_gpuobj_unmap(struct nvkm_vma *);
|
void nvkm_gpuobj_unmap(struct nvkm_vma *);
|
||||||
|
void nvkm_gpuobj_memcpy_to(struct nvkm_gpuobj *dst, u32 dstoffset, void *src,
|
||||||
|
u32 length);
|
||||||
|
void nvkm_gpuobj_memcpy_from(void *dst, struct nvkm_gpuobj *src, u32 srcoffset,
|
||||||
|
u32 length);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -253,3 +253,23 @@ nvkm_gpuobj_wrap(struct nvkm_memory *memory, struct nvkm_gpuobj **pgpuobj)
|
||||||
(*pgpuobj)->size = nvkm_memory_size(memory);
|
(*pgpuobj)->size = nvkm_memory_size(memory);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
nvkm_gpuobj_memcpy_to(struct nvkm_gpuobj *dst, u32 dstoffset, void *src,
|
||||||
|
u32 length)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < length; i += 4)
|
||||||
|
nvkm_wo32(dst, dstoffset + i, *(u32 *)(src + i));
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
nvkm_gpuobj_memcpy_from(void *dst, struct nvkm_gpuobj *src, u32 srcoffset,
|
||||||
|
u32 length)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < length; i += 4)
|
||||||
|
((u32 *)src)[i / 4] = nvkm_ro32(src, srcoffset + i);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue