summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSeshendra Gadagottu <sgadagottu@nvidia.com>2015-05-15 15:32:48 -0400
committerDeepak Nibade <dnibade@nvidia.com>2016-12-27 04:52:06 -0500
commit65ef5bc238a782e76c5d104ef90562b1fe6dd038 (patch)
treeb70d1be155496010f558194cffed5f7e26aab5b9
parent4b1d9ad4415f1aa044f02afa1f642c3b7855a447 (diff)
gpu:nvgpu: gp10b: update channel_setup_ramfc
Enable re-playable faults based on characteristics flags passed in channel_setup_ramfc. Bug 1645628 Change-Id: I7176efb3e5af9fefe5fb92cd5b49eb295e8e2c4a Signed-off-by: Seshendra Gadagottu <sgadagottu@nvidia.com> Reviewed-on: http://git-master/r/743382 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
-rw-r--r--drivers/gpu/nvgpu/gp10b/fifo_gp10b.c5
-rw-r--r--include/uapi/linux/nvgpu-t18x.h6
2 files changed, 9 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gp10b/fifo_gp10b.c b/drivers/gpu/nvgpu/gp10b/fifo_gp10b.c
index 08f1c13c..acf6f829 100644
--- a/drivers/gpu/nvgpu/gp10b/fifo_gp10b.c
+++ b/drivers/gpu/nvgpu/gp10b/fifo_gp10b.c
@@ -78,7 +78,7 @@ static int channel_gp10b_commit_userd(struct channel_gk20a *c)
78} 78}
79 79
80static int channel_gp10b_setup_ramfc(struct channel_gk20a *c, 80static int channel_gp10b_setup_ramfc(struct channel_gk20a *c,
81 u64 gpfifo_base, u32 gpfifo_entries) 81 u64 gpfifo_base, u32 gpfifo_entries, u32 flags)
82{ 82{
83 void *inst_ptr; 83 void *inst_ptr;
84 84
@@ -133,7 +133,8 @@ static int channel_gp10b_setup_ramfc(struct channel_gk20a *c,
133 pbdma_runlist_timeslice_timescale_3_f() | 133 pbdma_runlist_timeslice_timescale_3_f() |
134 pbdma_runlist_timeslice_enable_true_f()); 134 pbdma_runlist_timeslice_enable_true_f());
135 135
136 gp10b_set_pdb_fault_replay_flags(c->g, inst_ptr); 136 if ( flags & NVGPU_ALLOC_GPFIFO_FLAGS_REPLAYABLE_FAULTS_ENABLE)
137 gp10b_set_pdb_fault_replay_flags(c->g, inst_ptr);
137 138
138 139
139 gk20a_mem_wr32(inst_ptr, ram_fc_chid_w(), ram_fc_chid_id_f(c->hw_chid)); 140 gk20a_mem_wr32(inst_ptr, ram_fc_chid_w(), ram_fc_chid_id_f(c->hw_chid));
diff --git a/include/uapi/linux/nvgpu-t18x.h b/include/uapi/linux/nvgpu-t18x.h
index c144f837..76814415 100644
--- a/include/uapi/linux/nvgpu-t18x.h
+++ b/include/uapi/linux/nvgpu-t18x.h
@@ -33,6 +33,12 @@
33 */ 33 */
34#define NVGPU_AS_MAP_BUFFER_FLAGS_IO_COHERENT (1 << 4) 34#define NVGPU_AS_MAP_BUFFER_FLAGS_IO_COHERENT (1 << 4)
35 35
36/*
37 * this flag is used in struct nvgpu_alloc_gpfifo_args
38 * to enable re-playable faults for that channel
39 */
40#define NVGPU_ALLOC_GPFIFO_FLAGS_REPLAYABLE_FAULTS_ENABLE (1 << 2)
41
36#endif /* _UAPI__LINUX_NVGPU_T18X_IOCTL_H_ */ 42#endif /* _UAPI__LINUX_NVGPU_T18X_IOCTL_H_ */
37 43
38 44