diff options
author | Mahantesh Kumbar <mkumbar@nvidia.com> | 2018-06-20 14:42:01 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-07-10 02:40:10 -0400 |
commit | 4cd59404a2d4ab1c31605d96cff848dd4e93c3b4 (patch) | |
tree | 24884407db02f117d90cccb28b9e713731f18274 /drivers/gpu/nvgpu/common | |
parent | 876953fbb85f9440bbcc1d7d59435593886b53c4 (diff) |
gpu: nvgpu: falcon code cleanup
-Created common falcon function nvgpu_flcn_bl_bootstrap() to
bootstrap falcon bootloader
-Created HAL gk20a_falcon_bl_bootstrap() which does actual
bootloader bootstrap by fetching parameters and loading
code/parameters as needed.
-Created HAL ops bl_bootstrap under nvgpu_falcon_ops.
-Created struct nvgpu_falcon_bl_info to hold info required
for bootloader to pass to common function
-Removed falcons bootstrap code in multiple file & made
changes to fill struct nvgpu_falcon_bl_info & call
nvgpu_flcn_bl_bootstrap().
Change-Id: Iee275233915ff11f9afb5207ac0c3338ca9dacc1
Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1756104
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-misra-checker <svc-misra-checker@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/common')
-rw-r--r-- | drivers/gpu/nvgpu/common/falcon/falcon.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/falcon/falcon.c b/drivers/gpu/nvgpu/common/falcon/falcon.c index 41e394f9..8e37a709 100644 --- a/drivers/gpu/nvgpu/common/falcon/falcon.c +++ b/drivers/gpu/nvgpu/common/falcon/falcon.c | |||
@@ -357,6 +357,24 @@ void nvgpu_flcn_dump_stats(struct nvgpu_falcon *flcn) | |||
357 | flcn->flcn_id); | 357 | flcn->flcn_id); |
358 | } | 358 | } |
359 | 359 | ||
360 | int nvgpu_flcn_bl_bootstrap(struct nvgpu_falcon *flcn, | ||
361 | struct nvgpu_falcon_bl_info *bl_info) | ||
362 | { | ||
363 | struct nvgpu_falcon_ops *flcn_ops = &flcn->flcn_ops; | ||
364 | int status = 0; | ||
365 | |||
366 | if (flcn_ops->bl_bootstrap != NULL) { | ||
367 | status = flcn_ops->bl_bootstrap(flcn, bl_info); | ||
368 | } | ||
369 | else { | ||
370 | nvgpu_warn(flcn->g, "Invalid op on falcon 0x%x ", | ||
371 | flcn->flcn_id); | ||
372 | status = -EINVAL; | ||
373 | } | ||
374 | |||
375 | return status; | ||
376 | } | ||
377 | |||
360 | void nvgpu_flcn_sw_init(struct gk20a *g, u32 flcn_id) | 378 | void nvgpu_flcn_sw_init(struct gk20a *g, u32 flcn_id) |
361 | { | 379 | { |
362 | struct nvgpu_falcon *flcn = NULL; | 380 | struct nvgpu_falcon *flcn = NULL; |