From 628e2c79017b83032a840fb85e136d3216dec9c4 Mon Sep 17 00:00:00 2001 From: Mahantesh Kumbar Date: Sun, 23 Sep 2018 14:26:26 +0530 Subject: gpu: nvgpu: falcon engine EMEM support -Added HAL copy_from_emem & copy_to_emem to struct nvgpu_falcon_engine_dependency_ops data struct to point to engine specific EMEM access functions. -Added function nvgpu_flcn_copy_from_emem() & nvgpu_flcn_copy_to_emem() at interface layer to access EMEM using flacon engine EMEM HAL's. JIRA NVGPU-1161 Change-Id: Ifb72a617277e73f25f1772c969791b642585e7fb Signed-off-by: Mahantesh Kumbar Reviewed-on: https://git-master.nvidia.com/r/1807336 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/common/falcon/falcon.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'drivers/gpu/nvgpu/common') diff --git a/drivers/gpu/nvgpu/common/falcon/falcon.c b/drivers/gpu/nvgpu/common/falcon/falcon.c index a0f88de3..b1d6558a 100644 --- a/drivers/gpu/nvgpu/common/falcon/falcon.c +++ b/drivers/gpu/nvgpu/common/falcon/falcon.c @@ -219,6 +219,34 @@ bool nvgpu_flcn_get_idle_status(struct nvgpu_falcon *flcn) return status; } +int nvgpu_flcn_copy_from_emem(struct nvgpu_falcon *flcn, + u32 src, u8 *dst, u32 size, u8 port) +{ + struct nvgpu_falcon_engine_dependency_ops *flcn_dops = + &flcn->flcn_engine_dep_ops; + int status = -EINVAL; + + if (flcn_dops->copy_from_emem != NULL) { + status = flcn_dops->copy_from_emem(flcn, src, dst, size, port); + } + + return status; +} + +int nvgpu_flcn_copy_to_emem(struct nvgpu_falcon *flcn, + u32 dst, u8 *src, u32 size, u8 port) +{ + struct nvgpu_falcon_engine_dependency_ops *flcn_dops = + &flcn->flcn_engine_dep_ops; + int status = -EINVAL; + + if (flcn_dops->copy_to_emem != NULL) { + status = flcn_dops->copy_to_emem(flcn, dst, src, size, port); + } + + return status; +} + int nvgpu_flcn_copy_from_dmem(struct nvgpu_falcon *flcn, u32 src, u8 *dst, u32 size, u8 port) { -- cgit v1.2.2