summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/include
diff options
context:
space:
mode:
authorPeter Daifuku <pdaifuku@nvidia.com>2020-01-14 14:14:38 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2020-01-22 12:10:37 -0500
commit9e9046f03cf3125067666dc652499a4b7f39d9c0 (patch)
treec1a76bb88d494d50e00b6836a8502d8ebfe46668 /drivers/gpu/nvgpu/include
parenteb429023cf513c06f027fee8bf0b07f0bb3e6ddd (diff)
gpu: nvgpu: add struct nvgpu_sched_ctrl to gk20a
Add struct nvgpu_sched_ctrl to struct gk20a Delete struct gk20a_sched_ctrl from struct nvgpu_os_linux Update sched_ctrl functions to use the nvgpu_sched_ctrl struct Bug 200576520 Change-Id: I35b13219e5ef0a8a03333dfd7d46e1d308aec541 Signed-off-by: Peter Daifuku <pdaifuku@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2279152 Reviewed-by: Thomas Fleury <tfleury@nvidia.com> Reviewed-by: Satish Arora <satisha@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com> GVS: Gerrit_Virtual_Submit
Diffstat (limited to 'drivers/gpu/nvgpu/include')
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/gk20a.h4
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/sched.h42
2 files changed, 45 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h
index 238329be..a0af0c5c 100644
--- a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h
+++ b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2011-2019, NVIDIA CORPORATION. All rights reserved. 2 * Copyright (c) 2011-2020, NVIDIA CORPORATION. All rights reserved.
3 * 3 *
4 * GK20A Graphics 4 * GK20A Graphics
5 * 5 *
@@ -71,6 +71,7 @@ struct nvgpu_setup_bind_args;
71#include <nvgpu/ecc.h> 71#include <nvgpu/ecc.h>
72#include <nvgpu/tsg.h> 72#include <nvgpu/tsg.h>
73#include <nvgpu/sec2.h> 73#include <nvgpu/sec2.h>
74#include <nvgpu/sched.h>
74 75
75#include "gk20a/clk_gk20a.h" 76#include "gk20a/clk_gk20a.h"
76#include "gk20a/ce2_gk20a.h" 77#include "gk20a/ce2_gk20a.h"
@@ -1478,6 +1479,7 @@ struct gk20a {
1478 struct pmgr_pmupstate pmgr_pmu; 1479 struct pmgr_pmupstate pmgr_pmu;
1479 struct therm_pmupstate therm_pmu; 1480 struct therm_pmupstate therm_pmu;
1480 struct nvgpu_sec2 sec2; 1481 struct nvgpu_sec2 sec2;
1482 struct nvgpu_sched_ctrl sched_ctrl;
1481 1483
1482#ifdef CONFIG_DEBUG_FS 1484#ifdef CONFIG_DEBUG_FS
1483 struct railgate_stats pstats; 1485 struct railgate_stats pstats;
diff --git a/drivers/gpu/nvgpu/include/nvgpu/sched.h b/drivers/gpu/nvgpu/include/nvgpu/sched.h
new file mode 100644
index 00000000..c49b7d1a
--- /dev/null
+++ b/drivers/gpu/nvgpu/include/nvgpu/sched.h
@@ -0,0 +1,42 @@
1/*
2 * Copyright (c) 2020, 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#ifndef __NVGPU_SCHED_COMMON_H
23#define __NVGPU_SCHED_COMMON_H
24
25struct nvgpu_sched_ctrl {
26 struct nvgpu_mutex control_lock;
27 bool control_locked;
28 bool sw_ready;
29 struct nvgpu_mutex status_lock;
30 struct nvgpu_mutex busy_lock;
31
32 u64 status;
33
34 size_t bitmap_size;
35 u64 *active_tsg_bitmap;
36 u64 *recent_tsg_bitmap;
37 u64 *ref_tsg_bitmap;
38
39 struct nvgpu_cond readout_wq;
40};
41
42#endif /* __NVGPU_SCHED_COMMON_H */