diff options
author | Seema Khowala <seemaj@nvidia.com> | 2017-06-02 12:58:23 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-07-08 14:35:48 -0400 |
commit | aa05648fd6038b69d1ed841f33b24cf1875efd83 (patch) | |
tree | 8e9ee6c0f7b937f85b2caa4db70aebcd1e619944 /drivers/gpu/nvgpu/gv11b/mm_gv11b.h | |
parent | cf33b6c26bd054f5fe09be78ed754049821a8737 (diff) |
gpu: nvgpu: gv11b: set up for enabling/handling hub intr
-implement mm ops init_mm_setup_hw
This will also call *fault*setup* that will do s/w and h/w
set up required to get mmu fault info
-implement s/w set up for copying mmu faults
Two shadow fault buffers are pre allocated which will be used to copy
fault info. One for copying from fault snap registers/nonreplayable h/w
fault buffers and one for replay h/w fault buffers
-implement s/w set up for buffering mmu faults
Replayable/Non-replayable fault buffers are mapped in BAR2
virtual/physical address space. These buffers are circular buffers in
terms of address calculation. Currently there are num host channels
buffers
-configure h/w for buffering mmu faults
if s/w set up is successful, configure h/w registers to enable
buffered mode of mmu faults
-if both s/w and h/w set up are successful, enable corresponding
hub interrupts
-implement new ops, fault_info_buf_deinit
This will be called during gk20a_mm_destroy to disable hub intr and
de-allocate shadow fault buf that is used to copy mmu fault info during
mmu fault handling
-implement mm ops remove_bar2_vm
This will also unmap and free fault buffers mapped in BAR2 if fault
buffers were allocated
JIRA GPUT19X-7
JIRA GPUT19X-12
Change-Id: I53a38eddbb0a50a1f2024600583f2aae1f1fba6d
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1492682
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
GVS: Gerrit_Virtual_Submit
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b/mm_gv11b.h')
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/mm_gv11b.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/mm_gv11b.h b/drivers/gpu/nvgpu/gv11b/mm_gv11b.h index 4284b171..a887c7f4 100644 --- a/drivers/gpu/nvgpu/gv11b/mm_gv11b.h +++ b/drivers/gpu/nvgpu/gv11b/mm_gv11b.h | |||
@@ -1,6 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * GV11B MM | 2 | * GV11B MM |
3 | * Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved. | 3 | * Copyright (c) 2016-2017, NVIDIA CORPORATION. All rights reserved. |
4 | * | 4 | * |
5 | * This program is free software; you can redistribute it and/or modify it | 5 | * This program is free software; you can redistribute it and/or modify it |
6 | * under the terms and conditions of the GNU General Public License, | 6 | * under the terms and conditions of the GNU General Public License, |
@@ -15,6 +15,9 @@ | |||
15 | #ifndef MM_GV11B_H | 15 | #ifndef MM_GV11B_H |
16 | #define MM_GV11B_H | 16 | #define MM_GV11B_H |
17 | 17 | ||
18 | #define HW_FAULT_BUF_STATUS_ALLOC_TRUE 1 | ||
19 | #define HW_FAULT_BUF_STATUS_ALLOC_FALSE 0 | ||
20 | |||
18 | struct gpu_ops; | 21 | struct gpu_ops; |
19 | 22 | ||
20 | void gv11b_init_mm(struct gpu_ops *gops); | 23 | void gv11b_init_mm(struct gpu_ops *gops); |