gpu: nvgpu: fix circular dep of ce2 and gk20a headers

struct gk20a from gk20a.h needs defination of struct gk20a_ce_app
and ce2_gk20a.h needs defination of struct gk20a. This creates
a circular dependency.

Fix this by making gk20a_ce_app a pointer to skip knowing the
complete type details and using forward declarations for struct
gk20a_ce_app and struct gk20a.

The gk20a_ce_app pointer is alloc'ed in gk20a_init_ce_support()
and free'ed in gk20a_ce_destroy.

JIRA NVGPU-611

Change-Id: I4d62d5f2b2d1492db73bae69f90a1fe5586fba76
Signed-off-by: Nitin Kumbhar <nkumbhar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1917945
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Nitin Kumbhar
2018-10-03 11:48:55 +05:30
committed by Abdul Salam
parent 6480e6bc12
commit dcb2a34200
8 changed files with 35 additions and 13 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2017 NVIDIA Corporation. All rights reserved.
* Copyright (C) 2017-2018 NVIDIA Corporation. All rights reserved.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
@@ -15,6 +15,8 @@
#include "debug_ce.h"
#include "os_linux.h"
#include "gk20a/ce2_gk20a.h"
#include <linux/debugfs.h>
void gk20a_ce_debugfs_init(struct gk20a *g)
@@ -22,9 +24,9 @@ void gk20a_ce_debugfs_init(struct gk20a *g)
struct nvgpu_os_linux *l = nvgpu_os_linux_from_gk20a(g);
debugfs_create_u32("ce_app_ctx_count", S_IWUSR | S_IRUGO,
l->debugfs, &g->ce_app.ctx_count);
l->debugfs, &g->ce_app->ctx_count);
debugfs_create_u32("ce_app_state", S_IWUSR | S_IRUGO,
l->debugfs, &g->ce_app.app_state);
l->debugfs, &g->ce_app->app_state);
debugfs_create_u32("ce_app_next_ctx_id", S_IWUSR | S_IRUGO,
l->debugfs, &g->ce_app.next_ctx_id);
l->debugfs, &g->ce_app->next_ctx_id);
}