summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/vgpu/gv11b/platform_gv11b_vgpu_tegra.c
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2017-11-14 09:43:28 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2017-11-17 11:27:19 -0500
commitb42fb7ba26b565f93118fbdd9e17b42ee6144c5e (patch)
tree26e2d919f019d15b51bba4d7b5c938f77ad5cff5 /drivers/gpu/nvgpu/vgpu/gv11b/platform_gv11b_vgpu_tegra.c
parentb7cc3a2aa6c92a09eed43513287c9062f22ad127 (diff)
gpu: nvgpu: move vgpu code to linux
Most of VGPU code is linux specific but lies in common code So until VGPU code is properly abstracted and made os-independent, move all of VGPU code to linux specific directory Handle corresponding Makefile changes Update all #includes to reflect new paths Add GPL license to newly added linux files Jira NVGPU-387 Change-Id: Ic133e4c80e570bcc273f0dacf45283fefd678923 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1599472 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/vgpu/gv11b/platform_gv11b_vgpu_tegra.c')
-rw-r--r--drivers/gpu/nvgpu/vgpu/gv11b/platform_gv11b_vgpu_tegra.c105
1 files changed, 0 insertions, 105 deletions
diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/platform_gv11b_vgpu_tegra.c b/drivers/gpu/nvgpu/vgpu/gv11b/platform_gv11b_vgpu_tegra.c
deleted file mode 100644
index fea473a7..00000000
--- a/drivers/gpu/nvgpu/vgpu/gv11b/platform_gv11b_vgpu_tegra.c
+++ /dev/null
@@ -1,105 +0,0 @@
1/*
2 * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20 * DEALINGS IN THE SOFTWARE.
21 */
22
23#include "gk20a/gk20a.h"
24#include "vgpu/clk_vgpu.h"
25#include "common/linux/platform_gk20a.h"
26#include "common/linux/os_linux.h"
27
28#include <nvgpu/nvhost.h>
29#include <nvgpu/nvhost_t19x.h>
30
31#include <linux/platform_device.h>
32
33static int gv11b_vgpu_probe(struct device *dev)
34{
35 struct platform_device *pdev = to_platform_device(dev);
36 struct gk20a_platform *platform = dev_get_drvdata(dev);
37 struct resource *r;
38 void __iomem *regs;
39 struct nvgpu_os_linux *l = nvgpu_os_linux_from_gk20a(platform->g);
40 struct gk20a *g = platform->g;
41 int ret;
42
43 r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "usermode");
44 if (!r) {
45 dev_err(dev, "failed to get usermode regs\n");
46 return -ENXIO;
47 }
48 regs = devm_ioremap_resource(dev, r);
49 if (IS_ERR(regs)) {
50 dev_err(dev, "failed to map usermode regs\n");
51 return PTR_ERR(regs);
52 }
53 l->t19x.usermode_regs = regs;
54
55#ifdef CONFIG_TEGRA_GK20A_NVHOST
56 ret = nvgpu_get_nvhost_dev(g);
57 if (ret) {
58 l->t19x.usermode_regs = NULL;
59 return ret;
60 }
61
62 ret = nvgpu_nvhost_syncpt_unit_interface_get_aperture(g->nvhost_dev,
63 &g->syncpt_unit_base,
64 &g->syncpt_unit_size);
65 if (ret) {
66 dev_err(dev, "Failed to get syncpt interface");
67 return -ENOSYS;
68 }
69 g->syncpt_size = nvgpu_nvhost_syncpt_unit_interface_get_byte_offset(1);
70 nvgpu_info(g, "syncpt_unit_base %llx syncpt_unit_size %zx size %x\n",
71 g->syncpt_unit_base, g->syncpt_unit_size, g->syncpt_size);
72#endif
73 vgpu_init_clk_support(platform->g);
74
75 return 0;
76}
77
78struct gk20a_platform gv11b_vgpu_tegra_platform = {
79 .has_syncpoints = true,
80 .aggressive_sync_destroy_thresh = 64,
81
82 /* power management configuration */
83 .can_railgate_init = false,
84 .can_elpg_init = false,
85 .enable_slcg = false,
86 .enable_blcg = false,
87 .enable_elcg = false,
88 .enable_elpg = false,
89 .enable_aelpg = false,
90 .can_slcg = false,
91 .can_blcg = false,
92 .can_elcg = false,
93
94 .ch_wdt_timeout_ms = 5000,
95
96 .probe = gv11b_vgpu_probe,
97
98 .clk_round_rate = vgpu_clk_round_rate,
99 .get_clk_freqs = vgpu_clk_get_freqs,
100
101 /* frequency scaling configuration */
102 .devfreq_governor = "userspace",
103
104 .virtual_dev = true,
105};