summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gm20b
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2015-02-12 13:53:26 -0500
committerDan Willemsen <dwillemsen@nvidia.com>2015-04-04 21:06:37 -0400
commit226c671f8e99e7ed274c5c630090c6190a1367a5 (patch)
treee4dfc9a123ec5831210d0b1ea4a3044e987d6c33 /drivers/gpu/nvgpu/gm20b
parenta3b26f25a226ea56e84dbda1bb510c1a7bc11054 (diff)
gpu: nvgpu: More robust recovery
Make recovery a more straightforward process. When we detect a fault, trigger MMU fault, and wait for it to trigger, and complete recovery. Also reset engines before aborting channel to ensure no stray sync point increments can happen. Change-Id: Iac685db6534cb64fe62d9fb452391f43100f2999 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/709060 (cherry picked from commit 95c62ffd9ac30a0d2eb88d033dcc6e6ff25efd6f) Reviewed-on: http://git-master/r/707443
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b')
-rw-r--r--drivers/gpu/nvgpu/gm20b/hw_fifo_gm20b.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/hw_fifo_gm20b.h b/drivers/gpu/nvgpu/gm20b/hw_fifo_gm20b.h
index acbe6a4e..f3a24f61 100644
--- a/drivers/gpu/nvgpu/gm20b/hw_fifo_gm20b.h
+++ b/drivers/gpu/nvgpu/gm20b/hw_fifo_gm20b.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2014, NVIDIA CORPORATION. All rights reserved. 2 * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.
3 * 3 *
4 * This program is free software; you can redistribute it and/or modify it 4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License, 5 * under the terms and conditions of the GNU General Public License,
@@ -206,10 +206,22 @@ static inline u32 fifo_intr_en_0_r(void)
206{ 206{
207 return 0x00002140; 207 return 0x00002140;
208} 208}
209static inline u32 fifo_intr_en_0_sched_error_f(u32 v)
210{
211 return (v & 0x1) << 8;
212}
209static inline u32 fifo_intr_en_0_sched_error_m(void) 213static inline u32 fifo_intr_en_0_sched_error_m(void)
210{ 214{
211 return 0x1 << 8; 215 return 0x1 << 8;
212} 216}
217static inline u32 fifo_intr_en_0_mmu_fault_f(u32 v)
218{
219 return (v & 0x1) << 28;
220}
221static inline u32 fifo_intr_en_0_mmu_fault_m(void)
222{
223 return 0x1 << 28;
224}
213static inline u32 fifo_intr_en_1_r(void) 225static inline u32 fifo_intr_en_1_r(void)
214{ 226{
215 return 0x00002528; 227 return 0x00002528;