diff --git a/drivers/gpu/nvgpu/Makefile b/drivers/gpu/nvgpu/Makefile
index e37d18b84..f8253e417 100644
--- a/drivers/gpu/nvgpu/Makefile
+++ b/drivers/gpu/nvgpu/Makefile
@@ -152,21 +152,21 @@ nvgpu-$(CONFIG_GK20A_PCI) += common/linux/pci.o
nvgpu-$(CONFIG_TEGRA_GK20A_NVHOST) += common/linux/nvhost.o
nvgpu-$(CONFIG_TEGRA_GR_VIRTUALIZATION) += \
- gk20a/platform_vgpu_tegra.o \
- vgpu/ltc_vgpu.o \
- vgpu/gr_vgpu.o \
- vgpu/fifo_vgpu.o \
- vgpu/ce2_vgpu.o \
- vgpu/mm_vgpu.o \
- vgpu/vgpu.o \
- vgpu/dbg_vgpu.o \
- vgpu/fecs_trace_vgpu.o \
- vgpu/tsg_vgpu.o \
- vgpu/clk_vgpu.o \
- vgpu/css_vgpu.o \
- vgpu/gm20b/vgpu_hal_gm20b.o \
- vgpu/gm20b/vgpu_gr_gm20b.o \
- vgpu/sysfs_vgpu.o
+ common/linux/vgpu/platform_vgpu_tegra.o \
+ common/linux/vgpu/ltc_vgpu.o \
+ common/linux/vgpu/gr_vgpu.o \
+ common/linux/vgpu/fifo_vgpu.o \
+ common/linux/vgpu/ce2_vgpu.o \
+ common/linux/vgpu/mm_vgpu.o \
+ common/linux/vgpu/vgpu.o \
+ common/linux/vgpu/dbg_vgpu.o \
+ common/linux/vgpu/fecs_trace_vgpu.o \
+ common/linux/vgpu/tsg_vgpu.o \
+ common/linux/vgpu/clk_vgpu.o \
+ common/linux/vgpu/css_vgpu.o \
+ common/linux/vgpu/gm20b/vgpu_hal_gm20b.o \
+ common/linux/vgpu/gm20b/vgpu_gr_gm20b.o \
+ common/linux/vgpu/sysfs_vgpu.o
nvgpu-$(CONFIG_COMMON_CLK) += \
common/linux/clk.o
@@ -246,9 +246,9 @@ nvgpu-y += \
nvgpu-$(CONFIG_TEGRA_GK20A) += common/linux/platform_gp10b_tegra.o
nvgpu-$(CONFIG_TEGRA_GR_VIRTUALIZATION) += \
- vgpu/gp10b/vgpu_hal_gp10b.o \
- vgpu/gp10b/vgpu_gr_gp10b.o \
- vgpu/gp10b/vgpu_mm_gp10b.o
+ common/linux/vgpu/gp10b/vgpu_hal_gp10b.o \
+ common/linux/vgpu/gp10b/vgpu_gr_gp10b.o \
+ common/linux/vgpu/gp10b/vgpu_mm_gp10b.o
endif
ifeq ($(CONFIG_ARCH_TEGRA_19x_SOC),y)
@@ -290,11 +290,11 @@ nvgpu-$(CONFIG_TEGRA_GK20A) += gv11b/platform_gv11b_tegra.o
nvgpu-$(CONFIG_TEGRA_GK20A_NVHOST) += common/linux/nvhost_t19x.o
nvgpu-$(CONFIG_TEGRA_GR_VIRTUALIZATION) += \
- vgpu/gv11b/platform_gv11b_vgpu_tegra.o \
- vgpu/gv11b/vgpu_gv11b.o \
- vgpu/gv11b/vgpu_hal_gv11b.o \
- vgpu/gv11b/vgpu_gr_gv11b.o \
- vgpu/gv11b/vgpu_fifo_gv11b.o \
- vgpu/gv11b/vgpu_subctx_gv11b.o \
- vgpu/gv11b/vgpu_tsg_gv11b.o
+ common/linux/vgpu/gv11b/platform_gv11b_vgpu_tegra.o \
+ common/linux/vgpu/gv11b/vgpu_gv11b.o \
+ common/linux/vgpu/gv11b/vgpu_hal_gv11b.o \
+ common/linux/vgpu/gv11b/vgpu_gr_gv11b.o \
+ common/linux/vgpu/gv11b/vgpu_fifo_gv11b.o \
+ common/linux/vgpu/gv11b/vgpu_subctx_gv11b.o \
+ common/linux/vgpu/gv11b/vgpu_tsg_gv11b.o
endif
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/ce2_vgpu.c b/drivers/gpu/nvgpu/common/linux/vgpu/ce2_vgpu.c
new file mode 100644
index 000000000..ffb85f161
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/ce2_vgpu.c
@@ -0,0 +1,45 @@
+/*
+ * Virtualized GPU CE2
+ *
+ * Copyright (c) 2015-2017, NVIDIA CORPORATION. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "vgpu.h"
+
+#include
+
+int vgpu_ce2_nonstall_isr(struct gk20a *g,
+ struct tegra_vgpu_ce2_nonstall_intr_info *info)
+{
+ gk20a_dbg_fn("");
+
+ switch (info->type) {
+ case TEGRA_VGPU_CE2_NONSTALL_INTR_NONBLOCKPIPE:
+ gk20a_channel_semaphore_wakeup(g, true);
+ break;
+ default:
+ WARN_ON(1);
+ break;
+ }
+
+ return 0;
+}
+
+u32 vgpu_ce_get_num_pce(struct gk20a *g)
+{
+ struct vgpu_priv_data *priv = vgpu_get_priv_data(g);
+
+ return priv->constants.num_pce;
+}
diff --git a/drivers/gpu/nvgpu/vgpu/clk_vgpu.c b/drivers/gpu/nvgpu/common/linux/vgpu/clk_vgpu.c
similarity index 76%
rename from drivers/gpu/nvgpu/vgpu/clk_vgpu.c
rename to drivers/gpu/nvgpu/common/linux/vgpu/clk_vgpu.c
index e4ad8f68c..bcdf8ee9d 100644
--- a/drivers/gpu/nvgpu/vgpu/clk_vgpu.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/clk_vgpu.c
@@ -3,27 +3,21 @@
*
* Copyright (c) 2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
-#include "vgpu/vgpu.h"
-#include "vgpu/clk_vgpu.h"
+#include "vgpu.h"
+#include "clk_vgpu.h"
static unsigned long
vgpu_freq_table[TEGRA_VGPU_GPU_FREQ_TABLE_SIZE];
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/clk_vgpu.h b/drivers/gpu/nvgpu/common/linux/vgpu/clk_vgpu.h
new file mode 100644
index 000000000..8d4776431
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/clk_vgpu.h
@@ -0,0 +1,27 @@
+/*
+ * Virtualized GPU Clock Interface
+ *
+ * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef _CLK_VIRT_H_
+#define _CLK_VIRT_H_
+
+void vgpu_init_clk_support(struct gk20a *g);
+long vgpu_clk_round_rate(struct device *dev, unsigned long rate);
+int vgpu_clk_get_freqs(struct device *dev,
+ unsigned long **freqs, int *num_freqs);
+int vgpu_clk_cap_rate(struct device *dev, unsigned long rate);
+#endif
diff --git a/drivers/gpu/nvgpu/vgpu/css_vgpu.c b/drivers/gpu/nvgpu/common/linux/vgpu/css_vgpu.c
similarity index 82%
rename from drivers/gpu/nvgpu/vgpu/css_vgpu.c
rename to drivers/gpu/nvgpu/common/linux/vgpu/css_vgpu.c
index 7362fc6f3..fba3cc63a 100644
--- a/drivers/gpu/nvgpu/vgpu/css_vgpu.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/css_vgpu.c
@@ -1,23 +1,17 @@
/*
* Copyright (c) 2016-2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
#if defined(CONFIG_GK20A_CYCLE_STATS)
@@ -29,8 +23,8 @@
#include "gk20a/channel_gk20a.h"
#include "gk20a/css_gr_gk20a.h"
#include "common/linux/platform_gk20a.h"
-#include "vgpu.h"
-#include "css_vgpu.h"
+#include "common/linux/vgpu/vgpu.h"
+#include "common/linux/vgpu/css_vgpu.h"
static struct tegra_hv_ivm_cookie *css_cookie;
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/css_vgpu.h b/drivers/gpu/nvgpu/common/linux/vgpu/css_vgpu.h
new file mode 100644
index 000000000..df95e775f
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/css_vgpu.h
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef _CSS_VGPU_H_
+#define _CSS_VGPU_H_
+
+#include
+
+struct gr_gk20a;
+struct channel_gk20a;
+struct gk20a_cs_snapshot_client;
+
+void vgpu_css_release_snapshot_buffer(struct gr_gk20a *gr);
+int vgpu_css_flush_snapshots(struct channel_gk20a *ch,
+ u32 *pending, bool *hw_overflow);
+int vgpu_css_detach(struct channel_gk20a *ch,
+ struct gk20a_cs_snapshot_client *cs_client);
+int vgpu_css_enable_snapshot_buffer(struct channel_gk20a *ch,
+ struct gk20a_cs_snapshot_client *cs_client);
+u32 vgpu_css_get_buffer_size(struct gk20a *g);
+#endif
diff --git a/drivers/gpu/nvgpu/vgpu/dbg_vgpu.c b/drivers/gpu/nvgpu/common/linux/vgpu/dbg_vgpu.c
similarity index 82%
rename from drivers/gpu/nvgpu/vgpu/dbg_vgpu.c
rename to drivers/gpu/nvgpu/common/linux/vgpu/dbg_vgpu.c
index 4879c2eba..06ef43b80 100644
--- a/drivers/gpu/nvgpu/vgpu/dbg_vgpu.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/dbg_vgpu.c
@@ -1,23 +1,17 @@
/*
* Copyright (c) 2015-2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
#include
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/dbg_vgpu.h b/drivers/gpu/nvgpu/common/linux/vgpu/dbg_vgpu.h
new file mode 100644
index 000000000..8552a82ef
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/dbg_vgpu.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef _DBG_VGPU_H_
+#define _DBG_VGPU_H_
+
+struct dbg_session_gk20a;
+struct nvgpu_dbg_gpu_reg_op;
+struct dbg_profiler_object_data;
+struct gk20a;
+
+int vgpu_exec_regops(struct dbg_session_gk20a *dbg_s,
+ struct nvgpu_dbg_gpu_reg_op *ops,
+ u64 num_ops);
+int vgpu_dbg_set_powergate(struct dbg_session_gk20a *dbg_s, bool disable_powergate);
+bool vgpu_check_and_set_global_reservation(
+ struct dbg_session_gk20a *dbg_s,
+ struct dbg_profiler_object_data *prof_obj);
+bool vgpu_check_and_set_context_reservation(
+ struct dbg_session_gk20a *dbg_s,
+ struct dbg_profiler_object_data *prof_obj);
+
+void vgpu_release_profiler_reservation(
+ struct dbg_session_gk20a *dbg_s,
+ struct dbg_profiler_object_data *prof_obj);
+int vgpu_perfbuffer_enable(struct gk20a *g, u64 offset, u32 size);
+int vgpu_perfbuffer_disable(struct gk20a *g);
+#endif
diff --git a/drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.c b/drivers/gpu/nvgpu/common/linux/vgpu/fecs_trace_vgpu.c
similarity index 82%
rename from drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.c
rename to drivers/gpu/nvgpu/common/linux/vgpu/fecs_trace_vgpu.c
index dc7608ff0..5007de36b 100644
--- a/drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/fecs_trace_vgpu.c
@@ -1,23 +1,17 @@
/*
* Copyright (c) 2016-2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
#include
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/fecs_trace_vgpu.h b/drivers/gpu/nvgpu/common/linux/vgpu/fecs_trace_vgpu.h
new file mode 100644
index 000000000..c375b841a
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/fecs_trace_vgpu.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2016-2017, NVIDIA CORPORATION. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef __FECS_TRACE_VGPU_H
+#define __FECS_TRACE_VGPU_H
+
+#include
+
+struct gk20a;
+struct vm_area_struct;
+struct nvgpu_ctxsw_trace_filter;
+
+void vgpu_fecs_trace_data_update(struct gk20a *g);
+int vgpu_fecs_trace_init(struct gk20a *g);
+int vgpu_fecs_trace_deinit(struct gk20a *g);
+int vgpu_fecs_trace_enable(struct gk20a *g);
+int vgpu_fecs_trace_disable(struct gk20a *g);
+bool vgpu_fecs_trace_is_enabled(struct gk20a *g);
+int vgpu_fecs_trace_poll(struct gk20a *g);
+int vgpu_alloc_user_buffer(struct gk20a *g, void **buf, size_t *size);
+int vgpu_free_user_buffer(struct gk20a *g);
+int vgpu_mmap_user_buffer(struct gk20a *g, struct vm_area_struct *vma);
+int vgpu_fecs_trace_max_entries(struct gk20a *g,
+ struct nvgpu_ctxsw_trace_filter *filter);
+int vgpu_fecs_trace_set_filter(struct gk20a *g,
+ struct nvgpu_ctxsw_trace_filter *filter);
+
+#endif /* __FECS_TRACE_VGPU_H */
diff --git a/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c b/drivers/gpu/nvgpu/common/linux/vgpu/fifo_vgpu.c
similarity index 94%
rename from drivers/gpu/nvgpu/vgpu/fifo_vgpu.c
rename to drivers/gpu/nvgpu/common/linux/vgpu/fifo_vgpu.c
index cc56f9f8b..cdcecca5b 100644
--- a/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/fifo_vgpu.c
@@ -3,23 +3,17 @@
*
* Copyright (c) 2014-2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
#include
@@ -32,8 +26,8 @@
#include
#include
-#include "vgpu/vgpu.h"
-#include "vgpu/fifo_vgpu.h"
+#include "vgpu.h"
+#include "fifo_vgpu.h"
#include
#include
diff --git a/drivers/gpu/nvgpu/vgpu/fifo_vgpu.h b/drivers/gpu/nvgpu/common/linux/vgpu/fifo_vgpu.h
similarity index 61%
rename from drivers/gpu/nvgpu/vgpu/fifo_vgpu.h
rename to drivers/gpu/nvgpu/common/linux/vgpu/fifo_vgpu.h
index 7633ad95b..62a3a2563 100644
--- a/drivers/gpu/nvgpu/vgpu/fifo_vgpu.h
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/fifo_vgpu.h
@@ -1,23 +1,17 @@
/*
* Copyright (c) 2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
#ifndef _FIFO_VGPU_H_
diff --git a/drivers/gpu/nvgpu/vgpu/gm20b/vgpu_gr_gm20b.c b/drivers/gpu/nvgpu/common/linux/vgpu/gm20b/vgpu_gr_gm20b.c
similarity index 51%
rename from drivers/gpu/nvgpu/vgpu/gm20b/vgpu_gr_gm20b.c
rename to drivers/gpu/nvgpu/common/linux/vgpu/gm20b/vgpu_gr_gm20b.c
index 0e440241e..260ce0804 100644
--- a/drivers/gpu/nvgpu/vgpu/gm20b/vgpu_gr_gm20b.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gm20b/vgpu_gr_gm20b.c
@@ -1,30 +1,24 @@
/*
* Copyright (c) 2015-2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
#include
#include "gk20a/gk20a.h"
#include "gk20a/css_gr_gk20a.h"
-#include "vgpu/css_vgpu.h"
+#include "common/linux/vgpu/css_vgpu.h"
#include "vgpu_gr_gm20b.h"
void vgpu_gr_gm20b_init_cyclestats(struct gk20a *g)
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/gm20b/vgpu_gr_gm20b.h b/drivers/gpu/nvgpu/common/linux/vgpu/gm20b/vgpu_gr_gm20b.h
new file mode 100644
index 000000000..f17de4509
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gm20b/vgpu_gr_gm20b.h
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2015-2017, NVIDIA CORPORATION. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef __VGPU_GR_GM20B_H__
+#define __VGPU_GR_GM20B_H__
+
+#include "gk20a/gk20a.h"
+
+void vgpu_gr_gm20b_init_cyclestats(struct gk20a *g);
+int vgpu_gm20b_init_fs_state(struct gk20a *g);
+
+#endif
diff --git a/drivers/gpu/nvgpu/vgpu/gm20b/vgpu_hal_gm20b.c b/drivers/gpu/nvgpu/common/linux/vgpu/gm20b/vgpu_hal_gm20b.c
similarity index 94%
rename from drivers/gpu/nvgpu/vgpu/gm20b/vgpu_hal_gm20b.c
rename to drivers/gpu/nvgpu/common/linux/vgpu/gm20b/vgpu_hal_gm20b.c
index a3eb59acd..1a2d378a4 100644
--- a/drivers/gpu/nvgpu/vgpu/gm20b/vgpu_hal_gm20b.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gm20b/vgpu_hal_gm20b.c
@@ -1,34 +1,28 @@
/*
* Copyright (c) 2015-2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
#include "gm20b/hal_gm20b.h"
-#include "vgpu/vgpu.h"
-#include "vgpu/fifo_vgpu.h"
-#include "vgpu/gr_vgpu.h"
-#include "vgpu/ltc_vgpu.h"
-#include "vgpu/mm_vgpu.h"
-#include "vgpu/dbg_vgpu.h"
-#include "vgpu/fecs_trace_vgpu.h"
-#include "vgpu/css_vgpu.h"
+#include "common/linux/vgpu/vgpu.h"
+#include "common/linux/vgpu/fifo_vgpu.h"
+#include "common/linux/vgpu/gr_vgpu.h"
+#include "common/linux/vgpu/ltc_vgpu.h"
+#include "common/linux/vgpu/mm_vgpu.h"
+#include "common/linux/vgpu/dbg_vgpu.h"
+#include "common/linux/vgpu/fecs_trace_vgpu.h"
+#include "common/linux/vgpu/css_vgpu.h"
#include "vgpu_gr_gm20b.h"
#include "gk20a/bus_gk20a.h"
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_fifo_gp10b.c b/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_fifo_gp10b.c
new file mode 100644
index 000000000..cc006f766
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_fifo_gp10b.c
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2015-2017, NVIDIA CORPORATION. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "vgpu_fifo_gp10b.h"
+
+void vgpu_gp10b_init_fifo_ops(struct gpu_ops *gops)
+{
+ /* syncpoint protection not supported yet */
+ gops->fifo.resetup_ramfc = NULL;
+ gops->fifo.reschedule_runlist = NULL;
+}
diff --git a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_gr_gp10b.c b/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_gr_gp10b.c
similarity index 88%
rename from drivers/gpu/nvgpu/vgpu/gp10b/vgpu_gr_gp10b.c
rename to drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_gr_gp10b.c
index 8a5130f69..efc9c5955 100644
--- a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_gr_gp10b.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_gr_gp10b.c
@@ -1,31 +1,25 @@
/*
* Copyright (c) 2015-2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
#include
#include
#include
-#include "vgpu/vgpu.h"
-#include "vgpu/gm20b/vgpu_gr_gm20b.h"
+#include "common/linux/vgpu/vgpu.h"
+#include "common/linux/vgpu/gm20b/vgpu_gr_gm20b.h"
#include "vgpu_gr_gp10b.h"
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_gr_gp10b.h b/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_gr_gp10b.h
new file mode 100644
index 000000000..a11dab7d5
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_gr_gp10b.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2015-2017, NVIDIA CORPORATION. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef __VGPU_GR_GP10B_H__
+#define __VGPU_GR_GP10B_H__
+
+#include "gk20a/gk20a.h"
+
+void vgpu_gr_gp10b_free_gr_ctx(struct gk20a *g, struct vm_gk20a *vm,
+ struct gr_ctx_desc *gr_ctx);
+int vgpu_gr_gp10b_alloc_gr_ctx(struct gk20a *g,
+ struct gr_ctx_desc **__gr_ctx,
+ struct vm_gk20a *vm,
+ u32 class,
+ u32 flags);
+int vgpu_gr_gp10b_set_ctxsw_preemption_mode(struct gk20a *g,
+ struct gr_ctx_desc *gr_ctx,
+ struct vm_gk20a *vm, u32 class,
+ u32 graphics_preempt_mode,
+ u32 compute_preempt_mode);
+int vgpu_gr_gp10b_set_preemption_mode(struct channel_gk20a *ch,
+ u32 graphics_preempt_mode,
+ u32 compute_preempt_mode);
+int vgpu_gr_gp10b_init_ctx_state(struct gk20a *g);
+
+#endif
diff --git a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c b/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_hal_gp10b.c
similarity index 94%
rename from drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c
rename to drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_hal_gp10b.c
index 55448f3b2..da4ca10ce 100644
--- a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_hal_gp10b.c
@@ -1,36 +1,30 @@
/*
* Copyright (c) 2015-2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
-#include "vgpu/vgpu.h"
-#include "vgpu/fifo_vgpu.h"
-#include "vgpu/gr_vgpu.h"
-#include "vgpu/ltc_vgpu.h"
-#include "vgpu/mm_vgpu.h"
-#include "vgpu/dbg_vgpu.h"
-#include "vgpu/fecs_trace_vgpu.h"
-#include "vgpu/css_vgpu.h"
+#include "common/linux/vgpu/vgpu.h"
+#include "common/linux/vgpu/fifo_vgpu.h"
+#include "common/linux/vgpu/gr_vgpu.h"
+#include "common/linux/vgpu/ltc_vgpu.h"
+#include "common/linux/vgpu/mm_vgpu.h"
+#include "common/linux/vgpu/dbg_vgpu.h"
+#include "common/linux/vgpu/fecs_trace_vgpu.h"
+#include "common/linux/vgpu/css_vgpu.h"
#include "gp10b/gp10b.h"
#include "gp10b/hal_gp10b.h"
-#include "vgpu/gm20b/vgpu_gr_gm20b.h"
+#include "common/linux/vgpu/gm20b/vgpu_gr_gm20b.h"
#include "vgpu_gr_gp10b.h"
#include "vgpu_mm_gp10b.h"
diff --git a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_mm_gp10b.c b/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_mm_gp10b.c
similarity index 80%
rename from drivers/gpu/nvgpu/vgpu/gp10b/vgpu_mm_gp10b.c
rename to drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_mm_gp10b.c
index 5b48cca84..9eb140a3f 100644
--- a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_mm_gp10b.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_mm_gp10b.c
@@ -3,28 +3,22 @@
*
* Copyright (c) 2015-2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
#include
-#include "vgpu/vgpu.h"
+#include "common/linux/vgpu/vgpu.h"
#include "vgpu_mm_gp10b.h"
#include "gk20a/mm_gk20a.h"
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_mm_gp10b.h b/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_mm_gp10b.h
new file mode 100644
index 000000000..0a477dd0a
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_mm_gp10b.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2015-2017, NVIDIA CORPORATION. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef __VGPU_MM_GP10B_H__
+#define __VGPU_MM_GP10B_H__
+
+#include "gk20a/gk20a.h"
+
+u64 vgpu_gp10b_locked_gmmu_map(struct vm_gk20a *vm,
+ u64 map_offset,
+ struct nvgpu_sgt *sgt,
+ u64 buffer_offset,
+ u64 size,
+ int pgsz_idx,
+ u8 kind_v,
+ u32 ctag_offset,
+ u32 flags,
+ int rw_flag,
+ bool clear_ctags,
+ bool sparse,
+ bool priv,
+ struct vm_gk20a_mapping_batch *batch,
+ enum nvgpu_aperture aperture);
+int vgpu_gp10b_init_mm_setup_hw(struct gk20a *g);
+
+#endif
diff --git a/drivers/gpu/nvgpu/vgpu/gr_vgpu.c b/drivers/gpu/nvgpu/common/linux/vgpu/gr_vgpu.c
similarity index 96%
rename from drivers/gpu/nvgpu/vgpu/gr_vgpu.c
rename to drivers/gpu/nvgpu/common/linux/vgpu/gr_vgpu.c
index 5dc6f68ea..dd2ae3061 100644
--- a/drivers/gpu/nvgpu/vgpu/gr_vgpu.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gr_vgpu.c
@@ -3,23 +3,17 @@
*
* Copyright (c) 2014-2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
#include
@@ -27,8 +21,8 @@
#include
#include
-#include "vgpu/vgpu.h"
-#include "vgpu/gr_vgpu.h"
+#include "vgpu.h"
+#include "gr_vgpu.h"
#include "gk20a/dbg_gpu_gk20a.h"
#include
diff --git a/drivers/gpu/nvgpu/vgpu/gr_vgpu.h b/drivers/gpu/nvgpu/common/linux/vgpu/gr_vgpu.h
similarity index 63%
rename from drivers/gpu/nvgpu/vgpu/gr_vgpu.h
rename to drivers/gpu/nvgpu/common/linux/vgpu/gr_vgpu.h
index b43e334ab..7815201ef 100644
--- a/drivers/gpu/nvgpu/vgpu/gr_vgpu.h
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gr_vgpu.h
@@ -1,23 +1,17 @@
/*
* Copyright (c) 2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
#ifndef _GR_VGPU_H_
diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/platform_gv11b_vgpu_tegra.c b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/platform_gv11b_vgpu_tegra.c
similarity index 67%
rename from drivers/gpu/nvgpu/vgpu/gv11b/platform_gv11b_vgpu_tegra.c
rename to drivers/gpu/nvgpu/common/linux/vgpu/gv11b/platform_gv11b_vgpu_tegra.c
index fea473a71..3b9d63e86 100644
--- a/drivers/gpu/nvgpu/vgpu/gv11b/platform_gv11b_vgpu_tegra.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/platform_gv11b_vgpu_tegra.c
@@ -1,27 +1,21 @@
/*
* Copyright (c) 2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
#include "gk20a/gk20a.h"
-#include "vgpu/clk_vgpu.h"
+#include "common/linux/vgpu/clk_vgpu.h"
#include "common/linux/platform_gk20a.h"
#include "common/linux/os_linux.h"
diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_fifo_gv11b.c b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_fifo_gv11b.c
similarity index 70%
rename from drivers/gpu/nvgpu/vgpu/gv11b/vgpu_fifo_gv11b.c
rename to drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_fifo_gv11b.c
index ae9d52a7a..710e4b90a 100644
--- a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_fifo_gv11b.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_fifo_gv11b.c
@@ -1,28 +1,22 @@
/*
* Copyright (c) 2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
#include
-#include "vgpu/vgpu.h"
+#include "common/linux/vgpu/vgpu.h"
#include "gv11b/fifo_gv11b.h"
#include
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_fifo_gv11b.h b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_fifo_gv11b.h
new file mode 100644
index 000000000..c2e756804
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_fifo_gv11b.h
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef _VGPU_FIFO_GV11B_H_
+#define _VGPU_FIFO_GV11B_H_
+
+struct gk20a;
+
+int vgpu_gv11b_init_fifo_setup_hw(struct gk20a *g);
+int vgpu_gv11b_fifo_alloc_syncpt_buf(struct channel_gk20a *c,
+ u32 syncpt_id, struct nvgpu_mem *syncpt_buf);
+#endif
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_gr_gv11b.c b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_gr_gv11b.c
new file mode 100644
index 000000000..69e5b2ce2
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_gr_gv11b.c
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "gk20a/gk20a.h"
+#include "common/linux/vgpu/gr_vgpu.h"
+#include "vgpu_subctx_gv11b.h"
+
+int vgpu_gr_gv11b_commit_inst(struct channel_gk20a *c, u64 gpu_va)
+{
+ int err;
+
+ err = vgpu_gv11b_alloc_subctx_header(c);
+ if (err)
+ return err;
+
+ err = vgpu_gr_commit_inst(c, gpu_va);
+ if (err)
+ vgpu_gv11b_free_subctx_header(c);
+
+ return err;
+}
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_gr_gv11b.h b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_gr_gv11b.h
new file mode 100644
index 000000000..0208012d8
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_gr_gv11b.h
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef _VGPU_GR_GV11B_H_
+#define _VGPU_GR_GV11B_H_
+
+struct channel_gk20a;
+
+int vgpu_gr_gv11b_commit_inst(struct channel_gk20a *c, u64 gpu_va);
+
+#endif
diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_gv11b.c b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_gv11b.c
similarity index 83%
rename from drivers/gpu/nvgpu/vgpu/gv11b/vgpu_gv11b.c
rename to drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_gv11b.c
index feac195ec..9ba1892b0 100644
--- a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_gv11b.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_gv11b.c
@@ -9,6 +9,9 @@
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
#include "gk20a/gk20a.h"
@@ -16,7 +19,7 @@
#include
#include
-#include "vgpu/vgpu.h"
+#include "common/linux/vgpu/vgpu.h"
#include "vgpu_gv11b.h"
int vgpu_gv11b_init_gpu_characteristics(struct gk20a *g)
diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_gv11b.h b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_gv11b.h
similarity index 81%
rename from drivers/gpu/nvgpu/vgpu/gv11b/vgpu_gv11b.h
rename to drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_gv11b.h
index 9413904bd..84ebfa175 100644
--- a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_gv11b.h
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_gv11b.h
@@ -9,6 +9,9 @@
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
#ifndef _VGPU_GV11B_H_
diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_hal_gv11b.c
similarity index 94%
rename from drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c
rename to drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_hal_gv11b.c
index 17d6f0493..6b5a1b0da 100644
--- a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_hal_gv11b.c
@@ -1,39 +1,34 @@
/*
* Copyright (c) 2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
#include
#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
+
+#include "common/linux/vgpu/vgpu.h"
+#include "common/linux/vgpu/fifo_vgpu.h"
+#include "common/linux/vgpu/gr_vgpu.h"
+#include "common/linux/vgpu/ltc_vgpu.h"
+#include "common/linux/vgpu/mm_vgpu.h"
+#include "common/linux/vgpu/dbg_vgpu.h"
+#include "common/linux/vgpu/fecs_trace_vgpu.h"
+#include "common/linux/vgpu/css_vgpu.h"
+#include "common/linux/vgpu/vgpu_t19x.h"
+#include "common/linux/vgpu/gm20b/vgpu_gr_gm20b.h"
+#include "common/linux/vgpu/gp10b/vgpu_mm_gp10b.h"
+#include "common/linux/vgpu/gp10b/vgpu_gr_gp10b.h"
#include
#include
diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_subctx_gv11b.c b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_subctx_gv11b.c
similarity index 60%
rename from drivers/gpu/nvgpu/vgpu/gv11b/vgpu_subctx_gv11b.c
rename to drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_subctx_gv11b.c
index 857e58c43..6d8785e44 100644
--- a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_subctx_gv11b.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_subctx_gv11b.c
@@ -1,27 +1,21 @@
/*
* Copyright (c) 2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
-#include
-#include
+#include "gk20a/gk20a.h"
+#include "common/linux/vgpu/vgpu.h"
#include
int vgpu_gv11b_alloc_subctx_header(struct channel_gk20a *c)
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_subctx_gv11b.h b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_subctx_gv11b.h
new file mode 100644
index 000000000..dfd7109ee
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_subctx_gv11b.h
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef _VGPU_SUBCTX_GV11B_H_
+#define _VGPU_SUBCTX_GV11B_H_
+
+struct channel_gk20a;
+
+int vgpu_gv11b_alloc_subctx_header(struct channel_gk20a *c);
+void vgpu_gv11b_free_subctx_header(struct channel_gk20a *c);
+
+#endif
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_tsg_gv11b.c b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_tsg_gv11b.c
new file mode 100644
index 000000000..094ccc441
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_tsg_gv11b.c
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2016-2017, NVIDIA CORPORATION. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include
+#include "gk20a/gk20a.h"
+#include "common/linux/vgpu/vgpu.h"
+
+#include "vgpu_tsg_gv11b.h"
+
+int vgpu_gv11b_tsg_bind_channel(struct tsg_gk20a *tsg,
+ struct channel_gk20a *ch)
+{
+ struct tegra_vgpu_cmd_msg msg = {};
+ struct tegra_vgpu_tsg_bind_channel_ex_params *p =
+ &msg.params.t19x.tsg_bind_channel_ex;
+ int err;
+
+ gk20a_dbg_fn("");
+
+ err = gk20a_tsg_bind_channel(tsg, ch);
+ if (err)
+ return err;
+
+ msg.cmd = TEGRA_VGPU_CMD_TSG_BIND_CHANNEL_EX;
+ msg.handle = vgpu_get_handle(tsg->g);
+ p->tsg_id = tsg->tsgid;
+ p->ch_handle = ch->virt_ctx;
+ p->subctx_id = ch->t19x.subctx_id;
+ p->runqueue_sel = ch->t19x.runqueue_sel;
+ err = vgpu_comm_sendrecv(&msg, sizeof(msg), sizeof(msg));
+ err = err ? err : msg.ret;
+ if (err) {
+ nvgpu_err(tsg->g,
+ "vgpu_gv11b_tsg_bind_channel failed, ch %d tsgid %d",
+ ch->chid, tsg->tsgid);
+ gk20a_tsg_unbind_channel(ch);
+ }
+
+ return err;
+}
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_tsg_gv11b.h b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_tsg_gv11b.h
new file mode 100644
index 000000000..6334cdbb5
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_tsg_gv11b.h
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef _VGPU_TSG_GV11B_H_
+#define _VGPU_TSG_GV11B_H_
+
+int vgpu_gv11b_tsg_bind_channel(struct tsg_gk20a *tsg,
+ struct channel_gk20a *ch);
+
+#endif
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/ltc_vgpu.c b/drivers/gpu/nvgpu/common/linux/vgpu/ltc_vgpu.c
new file mode 100644
index 000000000..627ad1a8b
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/ltc_vgpu.c
@@ -0,0 +1,61 @@
+/*
+ * Virtualized GPU L2
+ *
+ * Copyright (c) 2014-2017 NVIDIA CORPORATION. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "vgpu.h"
+#include "ltc_vgpu.h"
+
+int vgpu_determine_L2_size_bytes(struct gk20a *g)
+{
+ struct vgpu_priv_data *priv = vgpu_get_priv_data(g);
+
+ gk20a_dbg_fn("");
+
+ return priv->constants.l2_size;
+}
+
+int vgpu_ltc_init_comptags(struct gk20a *g, struct gr_gk20a *gr)
+{
+ struct vgpu_priv_data *priv = vgpu_get_priv_data(g);
+ u32 max_comptag_lines = 0;
+ int err;
+
+ gk20a_dbg_fn("");
+
+ gr->cacheline_size = priv->constants.cacheline_size;
+ gr->comptags_per_cacheline = priv->constants.comptags_per_cacheline;
+ gr->slices_per_ltc = priv->constants.slices_per_ltc;
+ max_comptag_lines = priv->constants.comptag_lines;
+
+ if (max_comptag_lines < 2)
+ return -ENXIO;
+
+ err = gk20a_comptag_allocator_init(g, &gr->comp_tags, max_comptag_lines);
+ if (err)
+ return err;
+
+ return 0;
+}
+
+void vgpu_ltc_init_fs_state(struct gk20a *g)
+{
+ struct vgpu_priv_data *priv = vgpu_get_priv_data(g);
+
+ gk20a_dbg_fn("");
+
+ g->ltc_count = priv->constants.ltc_count;
+}
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/ltc_vgpu.h b/drivers/gpu/nvgpu/common/linux/vgpu/ltc_vgpu.h
new file mode 100644
index 000000000..7b368ef5e
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/ltc_vgpu.h
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef _LTC_VGPU_H_
+#define _LTC_VGPU_H_
+
+struct gk20a;
+struct gr_gk20a;
+
+int vgpu_determine_L2_size_bytes(struct gk20a *g);
+int vgpu_ltc_init_comptags(struct gk20a *g, struct gr_gk20a *gr);
+void vgpu_ltc_init_fs_state(struct gk20a *g);
+
+#endif
diff --git a/drivers/gpu/nvgpu/vgpu/mm_vgpu.c b/drivers/gpu/nvgpu/common/linux/vgpu/mm_vgpu.c
similarity index 87%
rename from drivers/gpu/nvgpu/vgpu/mm_vgpu.c
rename to drivers/gpu/nvgpu/common/linux/vgpu/mm_vgpu.c
index 79d15d10a..f8c5c406b 100644
--- a/drivers/gpu/nvgpu/vgpu/mm_vgpu.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/mm_vgpu.c
@@ -3,23 +3,17 @@
*
* Copyright (c) 2014-2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
#include
@@ -36,8 +30,8 @@
#include
#include
-#include "vgpu/vgpu.h"
-#include "vgpu/mm_vgpu.h"
+#include "vgpu.h"
+#include "mm_vgpu.h"
#include "gk20a/mm_gk20a.h"
#include "gm20b/mm_gm20b.h"
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/mm_vgpu.h b/drivers/gpu/nvgpu/common/linux/vgpu/mm_vgpu.h
new file mode 100644
index 000000000..eee547793
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/mm_vgpu.h
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef _MM_VGPU_H_
+#define _MM_VGPU_H_
+
+u64 vgpu_locked_gmmu_map(struct vm_gk20a *vm,
+ u64 map_offset,
+ struct nvgpu_sgt *sgt,
+ u64 buffer_offset,
+ u64 size,
+ int pgsz_idx,
+ u8 kind_v,
+ u32 ctag_offset,
+ u32 flags,
+ int rw_flag,
+ bool clear_ctags,
+ bool sparse,
+ bool priv,
+ struct vm_gk20a_mapping_batch *batch,
+ enum nvgpu_aperture aperture);
+void vgpu_locked_gmmu_unmap(struct vm_gk20a *vm,
+ u64 vaddr,
+ u64 size,
+ int pgsz_idx,
+ bool va_allocated,
+ int rw_flag,
+ bool sparse,
+ struct vm_gk20a_mapping_batch *batch);
+int vgpu_vm_bind_channel(struct gk20a_as_share *as_share,
+ struct channel_gk20a *ch);
+int vgpu_mm_fb_flush(struct gk20a *g);
+void vgpu_mm_l2_invalidate(struct gk20a *g);
+void vgpu_mm_l2_flush(struct gk20a *g, bool invalidate);
+void vgpu_mm_tlb_invalidate(struct gk20a *g, struct nvgpu_mem *pdb);
+void vgpu_mm_mmu_set_debug_mode(struct gk20a *g, bool enable);
+#endif
diff --git a/drivers/gpu/nvgpu/gk20a/platform_vgpu_tegra.c b/drivers/gpu/nvgpu/common/linux/vgpu/platform_vgpu_tegra.c
similarity index 52%
rename from drivers/gpu/nvgpu/gk20a/platform_vgpu_tegra.c
rename to drivers/gpu/nvgpu/common/linux/vgpu/platform_vgpu_tegra.c
index 6209188c5..830b04ac2 100644
--- a/drivers/gpu/nvgpu/gk20a/platform_vgpu_tegra.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/platform_vgpu_tegra.c
@@ -3,28 +3,22 @@
*
* Copyright (c) 2014-2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
-#include "gk20a.h"
+#include "gk20a/gk20a.h"
#include "common/linux/platform_gk20a.h"
-#include "vgpu/clk_vgpu.h"
+#include "clk_vgpu.h"
#include
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/sysfs_vgpu.c b/drivers/gpu/nvgpu/common/linux/vgpu/sysfs_vgpu.c
new file mode 100644
index 000000000..4025aabd1
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/sysfs_vgpu.c
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include
+
+#include "vgpu.h"
+
+static ssize_t vgpu_load_show(struct device *dev,
+ struct device_attribute *attr,
+ char *buf)
+{
+ struct gk20a *g = get_gk20a(dev);
+ struct tegra_vgpu_cmd_msg msg = {0};
+ struct tegra_vgpu_gpu_load_params *p = &msg.params.gpu_load;
+ int err;
+
+ msg.cmd = TEGRA_VGPU_CMD_GET_GPU_LOAD;
+ msg.handle = vgpu_get_handle(g);
+ err = vgpu_comm_sendrecv(&msg, sizeof(msg), sizeof(msg));
+ if (err)
+ return err;
+
+ return snprintf(buf, PAGE_SIZE, "%u\n", p->load);
+}
+static DEVICE_ATTR(load, S_IRUGO, vgpu_load_show, NULL);
+
+void vgpu_create_sysfs(struct device *dev)
+{
+ if (device_create_file(dev, &dev_attr_load))
+ dev_err(dev, "Failed to create vgpu sysfs attributes!\n");
+}
+
+void vgpu_remove_sysfs(struct device *dev)
+{
+ device_remove_file(dev, &dev_attr_load);
+}
diff --git a/drivers/gpu/nvgpu/vgpu/tsg_vgpu.c b/drivers/gpu/nvgpu/common/linux/vgpu/tsg_vgpu.c
similarity index 72%
rename from drivers/gpu/nvgpu/vgpu/tsg_vgpu.c
rename to drivers/gpu/nvgpu/common/linux/vgpu/tsg_vgpu.c
index 683317dc2..c40e6f904 100644
--- a/drivers/gpu/nvgpu/vgpu/tsg_vgpu.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/tsg_vgpu.c
@@ -1,23 +1,17 @@
/*
* Copyright (c) 2016-2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
#include
diff --git a/drivers/gpu/nvgpu/vgpu/vgpu.c b/drivers/gpu/nvgpu/common/linux/vgpu/vgpu.c
similarity index 93%
rename from drivers/gpu/nvgpu/vgpu/vgpu.c
rename to drivers/gpu/nvgpu/common/linux/vgpu/vgpu.c
index 1153b5403..7768b21d7 100644
--- a/drivers/gpu/nvgpu/vgpu/vgpu.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/vgpu.c
@@ -3,23 +3,17 @@
*
* Copyright (c) 2014-2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
#include
@@ -37,9 +31,9 @@
#include
#include
-#include "vgpu/vgpu.h"
-#include "vgpu/fecs_trace_vgpu.h"
-#include "vgpu/clk_vgpu.h"
+#include "vgpu.h"
+#include "fecs_trace_vgpu.h"
+#include "clk_vgpu.h"
#include "gk20a/tsg_gk20a.h"
#include "gk20a/channel_gk20a.h"
#include "gm20b/hal_gm20b.h"
@@ -51,7 +45,7 @@
#include "common/linux/driver_common.h"
#ifdef CONFIG_TEGRA_19x_GPU
-#include
+#include "common/linux/vgpu/vgpu_t19x.h"
#include
#endif
diff --git a/drivers/gpu/nvgpu/vgpu/vgpu.h b/drivers/gpu/nvgpu/common/linux/vgpu/vgpu.h
similarity index 81%
rename from drivers/gpu/nvgpu/vgpu/vgpu.h
rename to drivers/gpu/nvgpu/common/linux/vgpu/vgpu.h
index dcfbddf28..ac65dba3b 100644
--- a/drivers/gpu/nvgpu/vgpu/vgpu.h
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/vgpu.h
@@ -3,23 +3,17 @@
*
* Copyright (c) 2014-2017, 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:
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
*
- * 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.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
*/
#ifndef _VIRT_H_
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/vgpu_t19x.h b/drivers/gpu/nvgpu/common/linux/vgpu/vgpu_t19x.h
new file mode 100644
index 000000000..faa5f7724
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/vgpu_t19x.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef _VGPU_T19X_H_
+#define _VGPU_T19X_H_
+
+struct gk20a;
+
+int vgpu_gv11b_init_hal(struct gk20a *g);
+
+#define vgpu_t19x_init_hal(g) vgpu_gv11b_init_hal(g)
+
+#define TEGRA_19x_VGPU_COMPAT_TEGRA "nvidia,gv11b-vgpu"
+extern struct gk20a_platform gv11b_vgpu_tegra_platform;
+#define t19x_vgpu_tegra_platform gv11b_vgpu_tegra_platform
+
+#endif
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c
index 5dc609175..5bdd81ac0 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.c
@@ -45,7 +45,6 @@
#include "dbg_gpu_gk20a.h"
#include "mc_gk20a.h"
#include "hal.h"
-#include "vgpu/vgpu.h"
#include "bus_gk20a.h"
#ifdef CONFIG_ARCH_TEGRA_18x_SOC
#include "pstate/pstate.h"
diff --git a/drivers/gpu/nvgpu/vgpu/ce2_vgpu.c b/drivers/gpu/nvgpu/vgpu/ce2_vgpu.c
deleted file mode 100644
index bd225f0ca..000000000
--- a/drivers/gpu/nvgpu/vgpu/ce2_vgpu.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Virtualized GPU CE2
- *
- * Copyright (c) 2015-2017, 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 "vgpu/vgpu.h"
-
-#include
-
-int vgpu_ce2_nonstall_isr(struct gk20a *g,
- struct tegra_vgpu_ce2_nonstall_intr_info *info)
-{
- gk20a_dbg_fn("");
-
- switch (info->type) {
- case TEGRA_VGPU_CE2_NONSTALL_INTR_NONBLOCKPIPE:
- gk20a_channel_semaphore_wakeup(g, true);
- break;
- default:
- WARN_ON(1);
- break;
- }
-
- return 0;
-}
-
-u32 vgpu_ce_get_num_pce(struct gk20a *g)
-{
- struct vgpu_priv_data *priv = vgpu_get_priv_data(g);
-
- return priv->constants.num_pce;
-}
diff --git a/drivers/gpu/nvgpu/vgpu/clk_vgpu.h b/drivers/gpu/nvgpu/vgpu/clk_vgpu.h
deleted file mode 100644
index 58ab57551..000000000
--- a/drivers/gpu/nvgpu/vgpu/clk_vgpu.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Virtualized GPU Clock Interface
- *
- * Copyright (c) 2017, 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 _CLK_VIRT_H_
-#define _CLK_VIRT_H_
-
-void vgpu_init_clk_support(struct gk20a *g);
-long vgpu_clk_round_rate(struct device *dev, unsigned long rate);
-int vgpu_clk_get_freqs(struct device *dev,
- unsigned long **freqs, int *num_freqs);
-int vgpu_clk_cap_rate(struct device *dev, unsigned long rate);
-#endif
diff --git a/drivers/gpu/nvgpu/vgpu/css_vgpu.h b/drivers/gpu/nvgpu/vgpu/css_vgpu.h
deleted file mode 100644
index 8c92d571e..000000000
--- a/drivers/gpu/nvgpu/vgpu/css_vgpu.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2017, 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 _CSS_VGPU_H_
-#define _CSS_VGPU_H_
-
-#include
-
-struct gr_gk20a;
-struct channel_gk20a;
-struct gk20a_cs_snapshot_client;
-
-void vgpu_css_release_snapshot_buffer(struct gr_gk20a *gr);
-int vgpu_css_flush_snapshots(struct channel_gk20a *ch,
- u32 *pending, bool *hw_overflow);
-int vgpu_css_detach(struct channel_gk20a *ch,
- struct gk20a_cs_snapshot_client *cs_client);
-int vgpu_css_enable_snapshot_buffer(struct channel_gk20a *ch,
- struct gk20a_cs_snapshot_client *cs_client);
-u32 vgpu_css_get_buffer_size(struct gk20a *g);
-#endif
diff --git a/drivers/gpu/nvgpu/vgpu/dbg_vgpu.h b/drivers/gpu/nvgpu/vgpu/dbg_vgpu.h
deleted file mode 100644
index b2ca2a7b7..000000000
--- a/drivers/gpu/nvgpu/vgpu/dbg_vgpu.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2017, 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 _DBG_VGPU_H_
-#define _DBG_VGPU_H_
-
-struct dbg_session_gk20a;
-struct nvgpu_dbg_gpu_reg_op;
-struct dbg_profiler_object_data;
-struct gk20a;
-
-int vgpu_exec_regops(struct dbg_session_gk20a *dbg_s,
- struct nvgpu_dbg_gpu_reg_op *ops,
- u64 num_ops);
-int vgpu_dbg_set_powergate(struct dbg_session_gk20a *dbg_s, bool disable_powergate);
-bool vgpu_check_and_set_global_reservation(
- struct dbg_session_gk20a *dbg_s,
- struct dbg_profiler_object_data *prof_obj);
-bool vgpu_check_and_set_context_reservation(
- struct dbg_session_gk20a *dbg_s,
- struct dbg_profiler_object_data *prof_obj);
-
-void vgpu_release_profiler_reservation(
- struct dbg_session_gk20a *dbg_s,
- struct dbg_profiler_object_data *prof_obj);
-int vgpu_perfbuffer_enable(struct gk20a *g, u64 offset, u32 size);
-int vgpu_perfbuffer_disable(struct gk20a *g);
-#endif
diff --git a/drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.h b/drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.h
deleted file mode 100644
index 392b344cc..000000000
--- a/drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2016-2017, 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 __FECS_TRACE_VGPU_H
-#define __FECS_TRACE_VGPU_H
-
-#include
-
-struct gk20a;
-struct vm_area_struct;
-struct nvgpu_ctxsw_trace_filter;
-
-void vgpu_fecs_trace_data_update(struct gk20a *g);
-int vgpu_fecs_trace_init(struct gk20a *g);
-int vgpu_fecs_trace_deinit(struct gk20a *g);
-int vgpu_fecs_trace_enable(struct gk20a *g);
-int vgpu_fecs_trace_disable(struct gk20a *g);
-bool vgpu_fecs_trace_is_enabled(struct gk20a *g);
-int vgpu_fecs_trace_poll(struct gk20a *g);
-int vgpu_alloc_user_buffer(struct gk20a *g, void **buf, size_t *size);
-int vgpu_free_user_buffer(struct gk20a *g);
-int vgpu_mmap_user_buffer(struct gk20a *g, struct vm_area_struct *vma);
-int vgpu_fecs_trace_max_entries(struct gk20a *g,
- struct nvgpu_ctxsw_trace_filter *filter);
-int vgpu_fecs_trace_set_filter(struct gk20a *g,
- struct nvgpu_ctxsw_trace_filter *filter);
-
-#endif /* __FECS_TRACE_VGPU_H */
diff --git a/drivers/gpu/nvgpu/vgpu/gm20b/vgpu_gr_gm20b.h b/drivers/gpu/nvgpu/vgpu/gm20b/vgpu_gr_gm20b.h
deleted file mode 100644
index a0a895796..000000000
--- a/drivers/gpu/nvgpu/vgpu/gm20b/vgpu_gr_gm20b.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2015-2017, 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 __VGPU_GR_GM20B_H__
-#define __VGPU_GR_GM20B_H__
-
-#include "gk20a/gk20a.h"
-
-void vgpu_gr_gm20b_init_cyclestats(struct gk20a *g);
-int vgpu_gm20b_init_fs_state(struct gk20a *g);
-
-#endif
diff --git a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_fifo_gp10b.c b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_fifo_gp10b.c
deleted file mode 100644
index 4348db8eb..000000000
--- a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_fifo_gp10b.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2015-2017, 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 "vgpu_fifo_gp10b.h"
-
-void vgpu_gp10b_init_fifo_ops(struct gpu_ops *gops)
-{
- /* syncpoint protection not supported yet */
- gops->fifo.resetup_ramfc = NULL;
- gops->fifo.reschedule_runlist = NULL;
-}
diff --git a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_gr_gp10b.h b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_gr_gp10b.h
deleted file mode 100644
index baf5a8e9b..000000000
--- a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_gr_gp10b.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2015-2017, 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 __VGPU_GR_GP10B_H__
-#define __VGPU_GR_GP10B_H__
-
-#include "gk20a/gk20a.h"
-
-void vgpu_gr_gp10b_free_gr_ctx(struct gk20a *g, struct vm_gk20a *vm,
- struct gr_ctx_desc *gr_ctx);
-int vgpu_gr_gp10b_alloc_gr_ctx(struct gk20a *g,
- struct gr_ctx_desc **__gr_ctx,
- struct vm_gk20a *vm,
- u32 class,
- u32 flags);
-int vgpu_gr_gp10b_set_ctxsw_preemption_mode(struct gk20a *g,
- struct gr_ctx_desc *gr_ctx,
- struct vm_gk20a *vm, u32 class,
- u32 graphics_preempt_mode,
- u32 compute_preempt_mode);
-int vgpu_gr_gp10b_set_preemption_mode(struct channel_gk20a *ch,
- u32 graphics_preempt_mode,
- u32 compute_preempt_mode);
-int vgpu_gr_gp10b_init_ctx_state(struct gk20a *g);
-
-#endif
diff --git a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_mm_gp10b.h b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_mm_gp10b.h
deleted file mode 100644
index fd6760ff8..000000000
--- a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_mm_gp10b.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2015-2017, 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 __VGPU_MM_GP10B_H__
-#define __VGPU_MM_GP10B_H__
-
-#include "gk20a/gk20a.h"
-
-u64 vgpu_gp10b_locked_gmmu_map(struct vm_gk20a *vm,
- u64 map_offset,
- struct nvgpu_sgt *sgt,
- u64 buffer_offset,
- u64 size,
- int pgsz_idx,
- u8 kind_v,
- u32 ctag_offset,
- u32 flags,
- int rw_flag,
- bool clear_ctags,
- bool sparse,
- bool priv,
- struct vm_gk20a_mapping_batch *batch,
- enum nvgpu_aperture aperture);
-int vgpu_gp10b_init_mm_setup_hw(struct gk20a *g);
-
-#endif
diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_fifo_gv11b.h b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_fifo_gv11b.h
deleted file mode 100644
index bea935d32..000000000
--- a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_fifo_gv11b.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2017, 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 _VGPU_FIFO_GV11B_H_
-#define _VGPU_FIFO_GV11B_H_
-
-struct gk20a;
-
-int vgpu_gv11b_init_fifo_setup_hw(struct gk20a *g);
-int vgpu_gv11b_fifo_alloc_syncpt_buf(struct channel_gk20a *c,
- u32 syncpt_id, struct nvgpu_mem *syncpt_buf);
-#endif
diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_gr_gv11b.c b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_gr_gv11b.c
deleted file mode 100644
index 899522218..000000000
--- a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_gr_gv11b.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2017, 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 "vgpu_subctx_gv11b.h"
-
-int vgpu_gr_gv11b_commit_inst(struct channel_gk20a *c, u64 gpu_va)
-{
- int err;
-
- err = vgpu_gv11b_alloc_subctx_header(c);
- if (err)
- return err;
-
- err = vgpu_gr_commit_inst(c, gpu_va);
- if (err)
- vgpu_gv11b_free_subctx_header(c);
-
- return err;
-}
diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_gr_gv11b.h b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_gr_gv11b.h
deleted file mode 100644
index 562198ca3..000000000
--- a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_gr_gv11b.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2017, 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 _VGPU_GR_GV11B_H_
-#define _VGPU_GR_GV11B_H_
-
-struct channel_gk20a;
-
-int vgpu_gr_gv11b_commit_inst(struct channel_gk20a *c, u64 gpu_va);
-
-#endif
diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_subctx_gv11b.h b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_subctx_gv11b.h
deleted file mode 100644
index 0e09f4f69..000000000
--- a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_subctx_gv11b.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2017, 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 _VGPU_SUBCTX_GV11B_H_
-#define _VGPU_SUBCTX_GV11B_H_
-
-struct channel_gk20a;
-
-int vgpu_gv11b_alloc_subctx_header(struct channel_gk20a *c);
-void vgpu_gv11b_free_subctx_header(struct channel_gk20a *c);
-
-#endif
diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_tsg_gv11b.c b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_tsg_gv11b.c
deleted file mode 100644
index 7e70272ad..000000000
--- a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_tsg_gv11b.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2016-2017, 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 "vgpu_tsg_gv11b.h"
-
-int vgpu_gv11b_tsg_bind_channel(struct tsg_gk20a *tsg,
- struct channel_gk20a *ch)
-{
- struct tegra_vgpu_cmd_msg msg = {};
- struct tegra_vgpu_tsg_bind_channel_ex_params *p =
- &msg.params.t19x.tsg_bind_channel_ex;
- int err;
-
- gk20a_dbg_fn("");
-
- err = gk20a_tsg_bind_channel(tsg, ch);
- if (err)
- return err;
-
- msg.cmd = TEGRA_VGPU_CMD_TSG_BIND_CHANNEL_EX;
- msg.handle = vgpu_get_handle(tsg->g);
- p->tsg_id = tsg->tsgid;
- p->ch_handle = ch->virt_ctx;
- p->subctx_id = ch->t19x.subctx_id;
- p->runqueue_sel = ch->t19x.runqueue_sel;
- err = vgpu_comm_sendrecv(&msg, sizeof(msg), sizeof(msg));
- err = err ? err : msg.ret;
- if (err) {
- nvgpu_err(tsg->g,
- "vgpu_gv11b_tsg_bind_channel failed, ch %d tsgid %d",
- ch->chid, tsg->tsgid);
- gk20a_tsg_unbind_channel(ch);
- }
-
- return err;
-}
diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_tsg_gv11b.h b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_tsg_gv11b.h
deleted file mode 100644
index c7bb2f4e2..000000000
--- a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_tsg_gv11b.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2017, 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 _VGPU_TSG_GV11B_H_
-#define _VGPU_TSG_GV11B_H_
-
-int vgpu_gv11b_tsg_bind_channel(struct tsg_gk20a *tsg,
- struct channel_gk20a *ch);
-
-#endif
diff --git a/drivers/gpu/nvgpu/vgpu/ltc_vgpu.c b/drivers/gpu/nvgpu/vgpu/ltc_vgpu.c
deleted file mode 100644
index fb9558e22..000000000
--- a/drivers/gpu/nvgpu/vgpu/ltc_vgpu.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Virtualized GPU L2
- *
- * Copyright (c) 2014-2017 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 "vgpu/vgpu.h"
-#include "vgpu/ltc_vgpu.h"
-
-int vgpu_determine_L2_size_bytes(struct gk20a *g)
-{
- struct vgpu_priv_data *priv = vgpu_get_priv_data(g);
-
- gk20a_dbg_fn("");
-
- return priv->constants.l2_size;
-}
-
-int vgpu_ltc_init_comptags(struct gk20a *g, struct gr_gk20a *gr)
-{
- struct vgpu_priv_data *priv = vgpu_get_priv_data(g);
- u32 max_comptag_lines = 0;
- int err;
-
- gk20a_dbg_fn("");
-
- gr->cacheline_size = priv->constants.cacheline_size;
- gr->comptags_per_cacheline = priv->constants.comptags_per_cacheline;
- gr->slices_per_ltc = priv->constants.slices_per_ltc;
- max_comptag_lines = priv->constants.comptag_lines;
-
- if (max_comptag_lines < 2)
- return -ENXIO;
-
- err = gk20a_comptag_allocator_init(g, &gr->comp_tags, max_comptag_lines);
- if (err)
- return err;
-
- return 0;
-}
-
-void vgpu_ltc_init_fs_state(struct gk20a *g)
-{
- struct vgpu_priv_data *priv = vgpu_get_priv_data(g);
-
- gk20a_dbg_fn("");
-
- g->ltc_count = priv->constants.ltc_count;
-}
diff --git a/drivers/gpu/nvgpu/vgpu/ltc_vgpu.h b/drivers/gpu/nvgpu/vgpu/ltc_vgpu.h
deleted file mode 100644
index 3437b4cb6..000000000
--- a/drivers/gpu/nvgpu/vgpu/ltc_vgpu.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2017, 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 _LTC_VGPU_H_
-#define _LTC_VGPU_H_
-
-struct gk20a;
-struct gr_gk20a;
-
-int vgpu_determine_L2_size_bytes(struct gk20a *g);
-int vgpu_ltc_init_comptags(struct gk20a *g, struct gr_gk20a *gr);
-void vgpu_ltc_init_fs_state(struct gk20a *g);
-
-#endif
diff --git a/drivers/gpu/nvgpu/vgpu/mm_vgpu.h b/drivers/gpu/nvgpu/vgpu/mm_vgpu.h
deleted file mode 100644
index ed66282c8..000000000
--- a/drivers/gpu/nvgpu/vgpu/mm_vgpu.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (c) 2017, 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 _MM_VGPU_H_
-#define _MM_VGPU_H_
-
-u64 vgpu_locked_gmmu_map(struct vm_gk20a *vm,
- u64 map_offset,
- struct nvgpu_sgt *sgt,
- u64 buffer_offset,
- u64 size,
- int pgsz_idx,
- u8 kind_v,
- u32 ctag_offset,
- u32 flags,
- int rw_flag,
- bool clear_ctags,
- bool sparse,
- bool priv,
- struct vm_gk20a_mapping_batch *batch,
- enum nvgpu_aperture aperture);
-void vgpu_locked_gmmu_unmap(struct vm_gk20a *vm,
- u64 vaddr,
- u64 size,
- int pgsz_idx,
- bool va_allocated,
- int rw_flag,
- bool sparse,
- struct vm_gk20a_mapping_batch *batch);
-int vgpu_vm_bind_channel(struct gk20a_as_share *as_share,
- struct channel_gk20a *ch);
-int vgpu_mm_fb_flush(struct gk20a *g);
-void vgpu_mm_l2_invalidate(struct gk20a *g);
-void vgpu_mm_l2_flush(struct gk20a *g, bool invalidate);
-void vgpu_mm_tlb_invalidate(struct gk20a *g, struct nvgpu_mem *pdb);
-void vgpu_mm_mmu_set_debug_mode(struct gk20a *g, bool enable);
-#endif
diff --git a/drivers/gpu/nvgpu/vgpu/sysfs_vgpu.c b/drivers/gpu/nvgpu/vgpu/sysfs_vgpu.c
deleted file mode 100644
index 30b503dbe..000000000
--- a/drivers/gpu/nvgpu/vgpu/sysfs_vgpu.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 2017, 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 "vgpu/vgpu.h"
-
-static ssize_t vgpu_load_show(struct device *dev,
- struct device_attribute *attr,
- char *buf)
-{
- struct gk20a *g = get_gk20a(dev);
- struct tegra_vgpu_cmd_msg msg = {0};
- struct tegra_vgpu_gpu_load_params *p = &msg.params.gpu_load;
- int err;
-
- msg.cmd = TEGRA_VGPU_CMD_GET_GPU_LOAD;
- msg.handle = vgpu_get_handle(g);
- err = vgpu_comm_sendrecv(&msg, sizeof(msg), sizeof(msg));
- if (err)
- return err;
-
- return snprintf(buf, PAGE_SIZE, "%u\n", p->load);
-}
-static DEVICE_ATTR(load, S_IRUGO, vgpu_load_show, NULL);
-
-void vgpu_create_sysfs(struct device *dev)
-{
- if (device_create_file(dev, &dev_attr_load))
- dev_err(dev, "Failed to create vgpu sysfs attributes!\n");
-}
-
-void vgpu_remove_sysfs(struct device *dev)
-{
- device_remove_file(dev, &dev_attr_load);
-}
diff --git a/drivers/gpu/nvgpu/vgpu/vgpu_t19x.h b/drivers/gpu/nvgpu/vgpu/vgpu_t19x.h
deleted file mode 100644
index 8c020f800..000000000
--- a/drivers/gpu/nvgpu/vgpu/vgpu_t19x.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2017, 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 _VGPU_T19X_H_
-#define _VGPU_T19X_H_
-
-struct gk20a;
-
-int vgpu_gv11b_init_hal(struct gk20a *g);
-
-#define vgpu_t19x_init_hal(g) vgpu_gv11b_init_hal(g)
-
-#define TEGRA_19x_VGPU_COMPAT_TEGRA "nvidia,gv11b-vgpu"
-extern struct gk20a_platform gv11b_vgpu_tegra_platform;
-#define t19x_vgpu_tegra_platform gv11b_vgpu_tegra_platform
-
-#endif