From 012f46ef74795de0ce6d6ae393e38ef762915f73 Mon Sep 17 00:00:00 2001 From: Aparna Das Date: Tue, 26 Mar 2019 12:24:42 -0700 Subject: [PATCH] gpu: nvgpu: vgpu: create common ivc unit Move ivc comm related functions to ivc/comm_vgpu.c. These functions call os specific ivc counterparts. Jira GVSCI-334 Change-Id: I886dddb71c43975cb83a3508005ab1136b7adadc Signed-off-by: Aparna Das Reviewed-on: https://git-master.nvidia.com/r/2082183 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/Makefile | 1 + drivers/gpu/nvgpu/Makefile.sources | 2 +- drivers/gpu/nvgpu/common/vgpu/clk_vgpu.c | 1 + drivers/gpu/nvgpu/common/vgpu/debugger_vgpu.c | 1 + drivers/gpu/nvgpu/common/vgpu/ecc_vgpu.c | 1 + .../gpu/nvgpu/common/vgpu/fifo/fifo_vgpu.c | 1 + .../gpu/nvgpu/common/vgpu/fifo/ramfc_vgpu.c | 2 +- .../gpu/nvgpu/common/vgpu/fifo/runlist_vgpu.c | 1 + .../nvgpu/common/vgpu/fifo/vgpu_fifo_gv11b.c | 1 + drivers/gpu/nvgpu/common/vgpu/gr/ctx_vgpu.c | 1 + .../nvgpu/common/vgpu/gr/fecs_trace_vgpu.c | 2 +- drivers/gpu/nvgpu/common/vgpu/gr/gr_vgpu.c | 2 + .../gpu/nvgpu/common/vgpu/gr/subctx_vgpu.c | 1 + .../nvgpu/common/vgpu/gv11b/vgpu_tsg_gv11b.c | 1 + drivers/gpu/nvgpu/common/vgpu/ivc/comm_vgpu.c | 63 +++++++++++++++++++ drivers/gpu/nvgpu/common/vgpu/ivc/comm_vgpu.h | 34 ++++++++++ drivers/gpu/nvgpu/common/vgpu/mm/mm_vgpu.c | 1 + drivers/gpu/nvgpu/common/vgpu/mm/vm_vgpu.c | 6 +- .../vgpu/perf/cyclestats_snapshot_vgpu.c | 1 + .../gpu/nvgpu/common/vgpu/perf/perf_vgpu.c | 1 + drivers/gpu/nvgpu/common/vgpu/tsg_vgpu.c | 1 + drivers/gpu/nvgpu/common/vgpu/vgpu.c | 35 +---------- drivers/gpu/nvgpu/include/nvgpu/vgpu/vgpu.h | 6 -- drivers/gpu/nvgpu/os/linux/vgpu/sysfs_vgpu.c | 1 + drivers/gpu/nvgpu/os/linux/vgpu/vgpu_linux.c | 1 + 25 files changed, 122 insertions(+), 46 deletions(-) create mode 100644 drivers/gpu/nvgpu/common/vgpu/ivc/comm_vgpu.c create mode 100644 drivers/gpu/nvgpu/common/vgpu/ivc/comm_vgpu.h diff --git a/drivers/gpu/nvgpu/Makefile b/drivers/gpu/nvgpu/Makefile index 30bd8470a..0a9253b36 100644 --- a/drivers/gpu/nvgpu/Makefile +++ b/drivers/gpu/nvgpu/Makefile @@ -491,6 +491,7 @@ nvgpu-$(CONFIG_TEGRA_GR_VIRTUALIZATION) += \ common/vgpu/mm/mm_vgpu.o \ common/vgpu/mm/vm_vgpu.o \ common/vgpu/vgpu.o \ + common/vgpu/ivc/comm_vgpu.o \ common/vgpu/ptimer/ptimer_vgpu.o \ common/vgpu/debugger_vgpu.o \ common/vgpu/tsg_vgpu.o \ diff --git a/drivers/gpu/nvgpu/Makefile.sources b/drivers/gpu/nvgpu/Makefile.sources index 61e5b52c0..dd873393e 100644 --- a/drivers/gpu/nvgpu/Makefile.sources +++ b/drivers/gpu/nvgpu/Makefile.sources @@ -293,7 +293,6 @@ srcs += common/sim.c \ hal/mc/mc_gv11b.c \ hal/mc/mc_gv100.c \ hal/mc/mc_tu104.c \ - common/vgpu/vgpu.c \ hal/bus/bus_gk20a.c \ hal/bus/bus_gm20b.c \ hal/bus/bus_gp10b.c \ @@ -406,6 +405,7 @@ endif ifeq ($(IGPU_VIRT_SUPPORT), 1) srcs += common/vgpu/vgpu.c \ + common/vgpu/ivc/comm_vgpu.c \ common/vgpu/ptimer/ptimer_vgpu.c \ common/vgpu/fifo/fifo_vgpu.c \ common/vgpu/fifo/runlist_vgpu.c \ diff --git a/drivers/gpu/nvgpu/common/vgpu/clk_vgpu.c b/drivers/gpu/nvgpu/common/vgpu/clk_vgpu.c index c9e9a2dd7..756108213 100644 --- a/drivers/gpu/nvgpu/common/vgpu/clk_vgpu.c +++ b/drivers/gpu/nvgpu/common/vgpu/clk_vgpu.c @@ -26,6 +26,7 @@ #include #include "clk_vgpu.h" +#include "common/vgpu/ivc/comm_vgpu.h" static unsigned long vgpu_clk_get_rate(struct gk20a *g, u32 api_domain) { diff --git a/drivers/gpu/nvgpu/common/vgpu/debugger_vgpu.c b/drivers/gpu/nvgpu/common/vgpu/debugger_vgpu.c index 4e9a2324d..46f893985 100644 --- a/drivers/gpu/nvgpu/common/vgpu/debugger_vgpu.c +++ b/drivers/gpu/nvgpu/common/vgpu/debugger_vgpu.c @@ -31,6 +31,7 @@ #include #include "debugger_vgpu.h" +#include "common/vgpu/ivc/comm_vgpu.h" int vgpu_exec_regops(struct gk20a *g, struct channel_gk20a *ch, diff --git a/drivers/gpu/nvgpu/common/vgpu/ecc_vgpu.c b/drivers/gpu/nvgpu/common/vgpu/ecc_vgpu.c index b81bfef46..e65ac4398 100644 --- a/drivers/gpu/nvgpu/common/vgpu/ecc_vgpu.c +++ b/drivers/gpu/nvgpu/common/vgpu/ecc_vgpu.c @@ -26,6 +26,7 @@ #include #include "common/vgpu/ecc_vgpu.h" +#include "common/vgpu/ivc/comm_vgpu.h" int vgpu_ecc_get_info(struct gk20a *g) { diff --git a/drivers/gpu/nvgpu/common/vgpu/fifo/fifo_vgpu.c b/drivers/gpu/nvgpu/common/vgpu/fifo/fifo_vgpu.c index 2eb4a463b..d0ed8b5f4 100644 --- a/drivers/gpu/nvgpu/common/vgpu/fifo/fifo_vgpu.c +++ b/drivers/gpu/nvgpu/common/vgpu/fifo/fifo_vgpu.c @@ -42,6 +42,7 @@ #include "fifo_vgpu.h" #include "common/vgpu/gr/subctx_vgpu.h" +#include "common/vgpu/ivc/comm_vgpu.h" #include diff --git a/drivers/gpu/nvgpu/common/vgpu/fifo/ramfc_vgpu.c b/drivers/gpu/nvgpu/common/vgpu/fifo/ramfc_vgpu.c index 0a8c2dc0a..dc47faf0b 100644 --- a/drivers/gpu/nvgpu/common/vgpu/fifo/ramfc_vgpu.c +++ b/drivers/gpu/nvgpu/common/vgpu/fifo/ramfc_vgpu.c @@ -22,12 +22,12 @@ * DEALINGS IN THE SOFTWARE. */ -#include #include #include #include #include "ramfc_vgpu.h" +#include "common/vgpu/ivc/comm_vgpu.h" int vgpu_ramfc_setup(struct channel_gk20a *ch, u64 gpfifo_base, u32 gpfifo_entries, u64 pbdma_acquire_timeout, u32 flags) diff --git a/drivers/gpu/nvgpu/common/vgpu/fifo/runlist_vgpu.c b/drivers/gpu/nvgpu/common/vgpu/fifo/runlist_vgpu.c index 85c48c4d6..e6ad47af3 100644 --- a/drivers/gpu/nvgpu/common/vgpu/fifo/runlist_vgpu.c +++ b/drivers/gpu/nvgpu/common/vgpu/fifo/runlist_vgpu.c @@ -32,6 +32,7 @@ #include #include "runlist_vgpu.h" +#include "common/vgpu/ivc/comm_vgpu.h" static int vgpu_submit_runlist(struct gk20a *g, u64 handle, u8 runlist_id, u16 *runlist, u32 num_entries) diff --git a/drivers/gpu/nvgpu/common/vgpu/fifo/vgpu_fifo_gv11b.c b/drivers/gpu/nvgpu/common/vgpu/fifo/vgpu_fifo_gv11b.c index dffb44845..85e80dda3 100644 --- a/drivers/gpu/nvgpu/common/vgpu/fifo/vgpu_fifo_gv11b.c +++ b/drivers/gpu/nvgpu/common/vgpu/fifo/vgpu_fifo_gv11b.c @@ -29,6 +29,7 @@ #include "gv11b/fifo_gv11b.h" #include "common/vgpu/fifo/vgpu_fifo_gv11b.h" +#include "common/vgpu/ivc/comm_vgpu.h" #ifdef CONFIG_TEGRA_GK20A_NVHOST diff --git a/drivers/gpu/nvgpu/common/vgpu/gr/ctx_vgpu.c b/drivers/gpu/nvgpu/common/vgpu/gr/ctx_vgpu.c index 7876c9117..73beab88a 100644 --- a/drivers/gpu/nvgpu/common/vgpu/gr/ctx_vgpu.c +++ b/drivers/gpu/nvgpu/common/vgpu/gr/ctx_vgpu.c @@ -33,6 +33,7 @@ #include #include "ctx_vgpu.h" +#include "common/vgpu/ivc/comm_vgpu.h" int vgpu_gr_alloc_gr_ctx(struct gk20a *g, struct nvgpu_gr_ctx *gr_ctx, diff --git a/drivers/gpu/nvgpu/common/vgpu/gr/fecs_trace_vgpu.c b/drivers/gpu/nvgpu/common/vgpu/gr/fecs_trace_vgpu.c index a75f246c3..16862dc92 100644 --- a/drivers/gpu/nvgpu/common/vgpu/gr/fecs_trace_vgpu.c +++ b/drivers/gpu/nvgpu/common/vgpu/gr/fecs_trace_vgpu.c @@ -31,7 +31,7 @@ #include #include "fecs_trace_vgpu.h" - +#include "common/vgpu/ivc/comm_vgpu.h" int vgpu_fecs_trace_init(struct gk20a *g) { diff --git a/drivers/gpu/nvgpu/common/vgpu/gr/gr_vgpu.c b/drivers/gpu/nvgpu/common/vgpu/gr/gr_vgpu.c index 6f9852fac..80aa9ff8c 100644 --- a/drivers/gpu/nvgpu/common/vgpu/gr/gr_vgpu.c +++ b/drivers/gpu/nvgpu/common/vgpu/gr/gr_vgpu.c @@ -50,6 +50,8 @@ #include "subctx_vgpu.h" #include "common/vgpu/perf/cyclestats_snapshot_vgpu.h" +#include "common/vgpu/ivc/comm_vgpu.h" + #include "common/gr/zcull_priv.h" static int vgpu_gr_set_ctxsw_preemption_mode(struct gk20a *g, diff --git a/drivers/gpu/nvgpu/common/vgpu/gr/subctx_vgpu.c b/drivers/gpu/nvgpu/common/vgpu/gr/subctx_vgpu.c index 028ef00fe..4e0ac4cc8 100644 --- a/drivers/gpu/nvgpu/common/vgpu/gr/subctx_vgpu.c +++ b/drivers/gpu/nvgpu/common/vgpu/gr/subctx_vgpu.c @@ -26,6 +26,7 @@ #include #include "subctx_vgpu.h" +#include "common/vgpu/ivc/comm_vgpu.h" int vgpu_alloc_subctx_header(struct gk20a *g, struct nvgpu_gr_subctx **gr_subctx, diff --git a/drivers/gpu/nvgpu/common/vgpu/gv11b/vgpu_tsg_gv11b.c b/drivers/gpu/nvgpu/common/vgpu/gv11b/vgpu_tsg_gv11b.c index 9c8ea4ade..907f35243 100644 --- a/drivers/gpu/nvgpu/common/vgpu/gv11b/vgpu_tsg_gv11b.c +++ b/drivers/gpu/nvgpu/common/vgpu/gv11b/vgpu_tsg_gv11b.c @@ -26,6 +26,7 @@ #include #include "vgpu_tsg_gv11b.h" +#include "common/vgpu/ivc/comm_vgpu.h" int vgpu_gv11b_tsg_bind_channel(struct tsg_gk20a *tsg, struct channel_gk20a *ch) diff --git a/drivers/gpu/nvgpu/common/vgpu/ivc/comm_vgpu.c b/drivers/gpu/nvgpu/common/vgpu/ivc/comm_vgpu.c new file mode 100644 index 000000000..0fb4f3084 --- /dev/null +++ b/drivers/gpu/nvgpu/common/vgpu/ivc/comm_vgpu.c @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include +#include +#include + +#include "comm_vgpu.h" + +int vgpu_comm_init(struct gk20a *g) +{ + size_t queue_sizes[] = { TEGRA_VGPU_QUEUE_SIZES }; + + return vgpu_ivc_init(g, 3, queue_sizes, TEGRA_VGPU_QUEUE_CMD, + ARRAY_SIZE(queue_sizes)); +} + +void vgpu_comm_deinit(void) +{ + size_t queue_sizes[] = { TEGRA_VGPU_QUEUE_SIZES }; + + vgpu_ivc_deinit(TEGRA_VGPU_QUEUE_CMD, ARRAY_SIZE(queue_sizes)); +} + +int vgpu_comm_sendrecv(struct tegra_vgpu_cmd_msg *msg, size_t size_in, + size_t size_out) +{ + void *handle; + size_t size = size_in; + void *data = msg; + int err; + + err = vgpu_ivc_sendrecv(vgpu_ivc_get_server_vmid(), + TEGRA_VGPU_QUEUE_CMD, &handle, &data, &size); + if (err == 0) { + WARN_ON(size < size_out); + nvgpu_memcpy((u8 *)msg, (u8 *)data, size_out); + vgpu_ivc_release(handle); + } + + return err; +} diff --git a/drivers/gpu/nvgpu/common/vgpu/ivc/comm_vgpu.h b/drivers/gpu/nvgpu/common/vgpu/ivc/comm_vgpu.h new file mode 100644 index 000000000..699b3ba09 --- /dev/null +++ b/drivers/gpu/nvgpu/common/vgpu/ivc/comm_vgpu.h @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#ifndef COMM_VGPU_H +#define COMM_VGPU_H + +struct gk20a; +struct tegra_vgpu_cmd_msg; + +int vgpu_comm_init(struct gk20a *g); +void vgpu_comm_deinit(void); +int vgpu_comm_sendrecv(struct tegra_vgpu_cmd_msg *msg, size_t size_in, + size_t size_out); + +#endif diff --git a/drivers/gpu/nvgpu/common/vgpu/mm/mm_vgpu.c b/drivers/gpu/nvgpu/common/vgpu/mm/mm_vgpu.c index 1e0ff57b8..1754a6a4b 100644 --- a/drivers/gpu/nvgpu/common/vgpu/mm/mm_vgpu.c +++ b/drivers/gpu/nvgpu/common/vgpu/mm/mm_vgpu.c @@ -35,6 +35,7 @@ #include "mm_vgpu.h" #include "gk20a/mm_gk20a.h" #include "gm20b/mm_gm20b.h" +#include "common/vgpu/ivc/comm_vgpu.h" static int vgpu_init_mm_setup_sw(struct gk20a *g) { diff --git a/drivers/gpu/nvgpu/common/vgpu/mm/vm_vgpu.c b/drivers/gpu/nvgpu/common/vgpu/mm/vm_vgpu.c index c712470bf..ad123ac7c 100644 --- a/drivers/gpu/nvgpu/common/vgpu/mm/vm_vgpu.c +++ b/drivers/gpu/nvgpu/common/vgpu/mm/vm_vgpu.c @@ -27,14 +27,14 @@ #include #include #include - -#include - #include #include +#include #include +#include "common/vgpu/ivc/comm_vgpu.h" + /* * This is called by the common VM init routine to handle vGPU specifics of * intializing a VM on a vGPU. This alone is not enough to init a VM. See diff --git a/drivers/gpu/nvgpu/common/vgpu/perf/cyclestats_snapshot_vgpu.c b/drivers/gpu/nvgpu/common/vgpu/perf/cyclestats_snapshot_vgpu.c index 03e27735a..6d1bc418f 100644 --- a/drivers/gpu/nvgpu/common/vgpu/perf/cyclestats_snapshot_vgpu.c +++ b/drivers/gpu/nvgpu/common/vgpu/perf/cyclestats_snapshot_vgpu.c @@ -31,6 +31,7 @@ #include #include "cyclestats_snapshot_vgpu.h" +#include "common/vgpu/ivc/comm_vgpu.h" static struct tegra_hv_ivm_cookie *css_cookie; diff --git a/drivers/gpu/nvgpu/common/vgpu/perf/perf_vgpu.c b/drivers/gpu/nvgpu/common/vgpu/perf/perf_vgpu.c index 79c25b3c2..a72318ca1 100644 --- a/drivers/gpu/nvgpu/common/vgpu/perf/perf_vgpu.c +++ b/drivers/gpu/nvgpu/common/vgpu/perf/perf_vgpu.c @@ -26,6 +26,7 @@ #include #include "perf_vgpu.h" +#include "common/vgpu/ivc/comm_vgpu.h" static int vgpu_sendrecv_perfbuf_cmd(struct gk20a *g, u64 offset, u32 size) { diff --git a/drivers/gpu/nvgpu/common/vgpu/tsg_vgpu.c b/drivers/gpu/nvgpu/common/vgpu/tsg_vgpu.c index c2e8ddc8e..d8f4efac6 100644 --- a/drivers/gpu/nvgpu/common/vgpu/tsg_vgpu.c +++ b/drivers/gpu/nvgpu/common/vgpu/tsg_vgpu.c @@ -29,6 +29,7 @@ #include #include "fifo/fifo_vgpu.h" +#include "common/vgpu/ivc/comm_vgpu.h" int vgpu_tsg_open(struct tsg_gk20a *tsg) { diff --git a/drivers/gpu/nvgpu/common/vgpu/vgpu.c b/drivers/gpu/nvgpu/common/vgpu/vgpu.c index 844575617..40fa1766a 100644 --- a/drivers/gpu/nvgpu/common/vgpu/vgpu.c +++ b/drivers/gpu/nvgpu/common/vgpu/vgpu.c @@ -34,40 +34,7 @@ #include #include "common/vgpu/gr/fecs_trace_vgpu.h" - -int vgpu_comm_init(struct gk20a *g) -{ - size_t queue_sizes[] = { TEGRA_VGPU_QUEUE_SIZES }; - - return vgpu_ivc_init(g, 3, queue_sizes, TEGRA_VGPU_QUEUE_CMD, - ARRAY_SIZE(queue_sizes)); -} - -void vgpu_comm_deinit(void) -{ - size_t queue_sizes[] = { TEGRA_VGPU_QUEUE_SIZES }; - - vgpu_ivc_deinit(TEGRA_VGPU_QUEUE_CMD, ARRAY_SIZE(queue_sizes)); -} - -int vgpu_comm_sendrecv(struct tegra_vgpu_cmd_msg *msg, size_t size_in, - size_t size_out) -{ - void *handle; - size_t size = size_in; - void *data = msg; - int err; - - err = vgpu_ivc_sendrecv(vgpu_ivc_get_server_vmid(), - TEGRA_VGPU_QUEUE_CMD, &handle, &data, &size); - if (!err) { - WARN_ON(size < size_out); - nvgpu_memcpy((u8 *)msg, (u8 *)data, size_out); - vgpu_ivc_release(handle); - } - - return err; -} +#include "common/vgpu/ivc/comm_vgpu.h" u64 vgpu_connect(void) { diff --git a/drivers/gpu/nvgpu/include/nvgpu/vgpu/vgpu.h b/drivers/gpu/nvgpu/include/nvgpu/vgpu/vgpu.h index 0419dc3d3..b6fbcf7da 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/vgpu/vgpu.h +++ b/drivers/gpu/nvgpu/include/nvgpu/vgpu/vgpu.h @@ -32,7 +32,6 @@ struct device; struct tegra_vgpu_gr_intr_info; struct tegra_vgpu_fifo_intr_info; -struct tegra_vgpu_cmd_msg; struct nvgpu_mem; struct gk20a; struct vm_gk20a; @@ -64,11 +63,6 @@ static inline u64 vgpu_get_handle(struct gk20a *g) return priv->virt_handle; } -int vgpu_comm_init(struct gk20a *g); -void vgpu_comm_deinit(void); -int vgpu_comm_sendrecv(struct tegra_vgpu_cmd_msg *msg, size_t size_in, - size_t size_out); -u64 vgpu_connect(void); int vgpu_get_attribute(u64 handle, u32 attrib, u32 *value); int vgpu_intr_thread(void *dev_id); void vgpu_remove_support_common(struct gk20a *g); diff --git a/drivers/gpu/nvgpu/os/linux/vgpu/sysfs_vgpu.c b/drivers/gpu/nvgpu/os/linux/vgpu/sysfs_vgpu.c index b4c694046..4f8d16ad6 100644 --- a/drivers/gpu/nvgpu/os/linux/vgpu/sysfs_vgpu.c +++ b/drivers/gpu/nvgpu/os/linux/vgpu/sysfs_vgpu.c @@ -20,6 +20,7 @@ #include "os/linux/platform_gk20a.h" #include "os/linux/os_linux.h" #include "common/vgpu/ecc_vgpu.h" +#include "common/vgpu/ivc/comm_vgpu.h" static ssize_t vgpu_load_show(struct device *dev, struct device_attribute *attr, diff --git a/drivers/gpu/nvgpu/os/linux/vgpu/vgpu_linux.c b/drivers/gpu/nvgpu/os/linux/vgpu/vgpu_linux.c index 116c4ae7c..c7dfb2dbf 100644 --- a/drivers/gpu/nvgpu/os/linux/vgpu/vgpu_linux.c +++ b/drivers/gpu/nvgpu/os/linux/vgpu/vgpu_linux.c @@ -38,6 +38,7 @@ #include "vgpu_linux.h" #include "common/vgpu/gr/fecs_trace_vgpu.h" #include "common/vgpu/clk_vgpu.h" +#include "common/vgpu/ivc/comm_vgpu.h" #include "gm20b/hal_gm20b.h" #include "os/linux/module.h"