summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/include
diff options
context:
space:
mode:
authoraalex <aalex@nvidia.com>2018-09-07 12:38:05 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-09-21 06:15:03 -0400
commitc5810a670d367ae1dc405fcc3108e11265df34bb (patch)
tree7ec13fcda49df98f360fb5adc57e4af7a95ea4cc /drivers/gpu/nvgpu/include
parentec067c5ed1f00517dbd771fbe9809d2340ec908b (diff)
gpu: nvgpu: refactor SET_SM_EXCEPTION_MASK ioctl
added hal layer for SM exception mask handling for taking care of vitualization case. Jira VQRM-4806 Bug 200447406 Bug 2331747 Change-Id: Ia44778a2e41c1a508c48026b8dee285966f1a544 Signed-off-by: aalex <aalex@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1816284 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/include')
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/gk20a.h2
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/vgpu/tegra_vgpu.h7
2 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h
index 9799425e..a653109a 100644
--- a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h
+++ b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h
@@ -748,6 +748,8 @@ struct gpu_ops {
748 struct nvgpu_semaphore *s, u64 sema_va, 748 struct nvgpu_semaphore *s, u64 sema_va,
749 struct priv_cmd_entry *cmd, 749 struct priv_cmd_entry *cmd,
750 u32 off, bool acquire, bool wfi); 750 u32 off, bool acquire, bool wfi);
751 int (*set_sm_exception_type_mask)(struct channel_gk20a *ch,
752 u32 exception_mask);
751 } fifo; 753 } fifo;
752 struct pmu_v { 754 struct pmu_v {
753 u32 (*get_pmu_cmdline_args_size)(struct nvgpu_pmu *pmu); 755 u32 (*get_pmu_cmdline_args_size)(struct nvgpu_pmu *pmu);
diff --git a/drivers/gpu/nvgpu/include/nvgpu/vgpu/tegra_vgpu.h b/drivers/gpu/nvgpu/include/nvgpu/vgpu/tegra_vgpu.h
index f7a58c87..8ef5236c 100644
--- a/drivers/gpu/nvgpu/include/nvgpu/vgpu/tegra_vgpu.h
+++ b/drivers/gpu/nvgpu/include/nvgpu/vgpu/tegra_vgpu.h
@@ -123,6 +123,7 @@ enum {
123 TEGRA_VGPU_CMD_RESUME = 83, 123 TEGRA_VGPU_CMD_RESUME = 83,
124 TEGRA_VGPU_CMD_GET_ECC_INFO = 84, 124 TEGRA_VGPU_CMD_GET_ECC_INFO = 84,
125 TEGRA_VGPU_CMD_GET_ECC_COUNTER_VALUE = 85, 125 TEGRA_VGPU_CMD_GET_ECC_COUNTER_VALUE = 85,
126 TEGRA_VGPU_CMD_SET_SM_EXCEPTION_TYPE_MASK = 86,
126}; 127};
127 128
128struct tegra_vgpu_connect_params { 129struct tegra_vgpu_connect_params {
@@ -467,6 +468,11 @@ struct tegra_vgpu_gpu_clk_rate_params {
467 u32 rate; /* in kHz */ 468 u32 rate; /* in kHz */
468}; 469};
469 470
471struct tegra_vgpu_set_sm_exception_type_mask_params {
472 u64 handle;
473 u32 mask;
474};
475
470/* TEGRA_VGPU_MAX_ENGINES must be equal or greater than num_engines */ 476/* TEGRA_VGPU_MAX_ENGINES must be equal or greater than num_engines */
471#define TEGRA_VGPU_MAX_ENGINES 4 477#define TEGRA_VGPU_MAX_ENGINES 4
472struct tegra_vgpu_engines_info { 478struct tegra_vgpu_engines_info {
@@ -678,6 +684,7 @@ struct tegra_vgpu_cmd_msg {
678 struct tegra_vgpu_channel_update_pc_sampling update_pc_sampling; 684 struct tegra_vgpu_channel_update_pc_sampling update_pc_sampling;
679 struct tegra_vgpu_ecc_info_params ecc_info; 685 struct tegra_vgpu_ecc_info_params ecc_info;
680 struct tegra_vgpu_ecc_counter_params ecc_counter; 686 struct tegra_vgpu_ecc_counter_params ecc_counter;
687 struct tegra_vgpu_set_sm_exception_type_mask_params set_sm_exception_mask;
681 char padding[192]; 688 char padding[192];
682 } params; 689 } params;
683}; 690};