summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gv100/fifo_gv100.c
diff options
context:
space:
mode:
authorDavid Nieto <dmartineznie@nvidia.com>2017-12-27 17:28:29 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2018-01-05 16:54:37 -0500
commit1f71f475e25fe786ec76d76a986aac8afec51b01 (patch)
treeb291dcd78bfa68473b4cdd544f452e3a9d0b35a3 /drivers/gpu/nvgpu/gv100/fifo_gv100.c
parent83096b7ffcfe7e79df1f28749a509eb645462d75 (diff)
DNI: gpu: nvgpu: Increase GV100 ctxsw timeouts
During bringup and before nvlink is up GV100 on the DDPX platform operates with a very, very slow sysmem link. In order to get sysmem test to pass it is neccesary to significantly increase most timeouts by an order the magnitude. Bug 2040544 Change-Id: I26858afde4ae80c70f86b47cfff674b6b00b5bf8 Signed-off-by: David Nieto <dmartineznie@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1627417 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gv100/fifo_gv100.c')
-rw-r--r--drivers/gpu/nvgpu/gv100/fifo_gv100.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gv100/fifo_gv100.c b/drivers/gpu/nvgpu/gv100/fifo_gv100.c
index 79862f6b..0227720d 100644
--- a/drivers/gpu/nvgpu/gv100/fifo_gv100.c
+++ b/drivers/gpu/nvgpu/gv100/fifo_gv100.c
@@ -22,9 +22,12 @@
22 * DEALINGS IN THE SOFTWARE. 22 * DEALINGS IN THE SOFTWARE.
23 */ 23 */
24 24
25#include "gk20a/gk20a.h"
25#include "fifo_gv100.h" 26#include "fifo_gv100.h"
27#include <nvgpu/timers.h>
26 28
27#include <nvgpu/hw/gv100/hw_ccsr_gv100.h> 29#include <nvgpu/hw/gv100/hw_ccsr_gv100.h>
30#include <nvgpu/hw/gk20a/hw_fifo_gk20a.h>
28 31
29#define DEFAULT_FIFO_PREEMPT_TIMEOUT 0x3FFFFFUL 32#define DEFAULT_FIFO_PREEMPT_TIMEOUT 0x3FFFFFUL
30 33
@@ -38,3 +41,14 @@ u32 gv100_fifo_get_preempt_timeout(struct gk20a *g)
38 return DEFAULT_FIFO_PREEMPT_TIMEOUT; 41 return DEFAULT_FIFO_PREEMPT_TIMEOUT;
39} 42}
40 43
44void gv100_apply_ctxsw_timeout_intr(struct gk20a *g)
45{
46 u32 timeout;
47
48 timeout = g->ch_wdt_timeout_ms*1000;
49 timeout = scale_ptimer(timeout,
50 ptimer_scalingfactor10x(g->ptimer_src_freq));
51 timeout |= fifo_eng_timeout_detection_enabled_f();
52 gk20a_writel(g, fifo_eng_timeout_r(), timeout);
53}
54