From 65ef5bc238a782e76c5d104ef90562b1fe6dd038 Mon Sep 17 00:00:00 2001 From: Seshendra Gadagottu Date: Fri, 15 May 2015 12:32:48 -0700 Subject: 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 Reviewed-on: http://git-master/r/743382 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom --- drivers/gpu/nvgpu/gp10b/fifo_gp10b.c | 5 +++-- include/uapi/linux/nvgpu-t18x.h | 6 ++++++ 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) } static int channel_gp10b_setup_ramfc(struct channel_gk20a *c, - u64 gpfifo_base, u32 gpfifo_entries) + u64 gpfifo_base, u32 gpfifo_entries, u32 flags) { void *inst_ptr; @@ -133,7 +133,8 @@ static int channel_gp10b_setup_ramfc(struct channel_gk20a *c, pbdma_runlist_timeslice_timescale_3_f() | pbdma_runlist_timeslice_enable_true_f()); - gp10b_set_pdb_fault_replay_flags(c->g, inst_ptr); + if ( flags & NVGPU_ALLOC_GPFIFO_FLAGS_REPLAYABLE_FAULTS_ENABLE) + gp10b_set_pdb_fault_replay_flags(c->g, inst_ptr); 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 @@ */ #define NVGPU_AS_MAP_BUFFER_FLAGS_IO_COHERENT (1 << 4) +/* + * this flag is used in struct nvgpu_alloc_gpfifo_args + * to enable re-playable faults for that channel + */ +#define NVGPU_ALLOC_GPFIFO_FLAGS_REPLAYABLE_FAULTS_ENABLE (1 << 2) + #endif /* _UAPI__LINUX_NVGPU_T18X_IOCTL_H_ */ -- cgit v1.2.2