summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAlex Waterman <alexw@nvidia.com>2016-04-27 16:07:29 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2016-08-30 13:04:13 -0400
commit39624a04d8c325958c40c0e44acd4fcc9cfeed95 (patch)
treead302c25ffb6e24f2228220d2417022735b93612 /drivers
parent448df6ed271a7b73a1a5e3dfbba826e745b82922 (diff)
gpu: nvgpu: Add semaphore debugging info
Add semaphore debugging information to the gk20a channel state debug dump. Bug 1732449 JIRA DNVGPU-12 Change-Id: I7caafd4f6420e1c478be22e236513603c315ce5e Signed-off-by: Alex Waterman <alexw@nvidia.com> Reviewed-on: http://git-master/r/1198592 (cherry picked from commit 3fa247adf5fdd8c9b16a24fec00903fdc3abc90a) Reviewed-on: http://git-master/r/1133793 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/gk20a/debug_gk20a.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/debug_gk20a.c b/drivers/gpu/nvgpu/gk20a/debug_gk20a.c
index 5b06d35c..93580a7f 100644
--- a/drivers/gpu/nvgpu/gk20a/debug_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/debug_gk20a.c
@@ -25,6 +25,7 @@
25 25
26#include "gk20a.h" 26#include "gk20a.h"
27#include "debug_gk20a.h" 27#include "debug_gk20a.h"
28#include "semaphore_gk20a.h"
28 29
29#include "hw_ram_gk20a.h" 30#include "hw_ram_gk20a.h"
30#include "hw_fifo_gk20a.h" 31#include "hw_fifo_gk20a.h"
@@ -109,6 +110,11 @@ static void gk20a_debug_show_channel(struct gk20a *g,
109 u32 status = ccsr_channel_status_v(channel); 110 u32 status = ccsr_channel_status_v(channel);
110 u32 syncpointa, syncpointb; 111 u32 syncpointa, syncpointb;
111 u32 *inst_mem; 112 u32 *inst_mem;
113 struct channel_gk20a *c = g->fifo.channel + hw_chid;
114 struct gk20a_semaphore_int *hw_sema = NULL;
115
116 if (c->hw_sema)
117 hw_sema = c->hw_sema;
112 118
113 if (!ch_state) 119 if (!ch_state)
114 return; 120 return;
@@ -145,6 +151,12 @@ static void gk20a_debug_show_channel(struct gk20a *g,
145 inst_mem[ram_fc_semaphoreb_w()], 151 inst_mem[ram_fc_semaphoreb_w()],
146 inst_mem[ram_fc_semaphorec_w()], 152 inst_mem[ram_fc_semaphorec_w()],
147 inst_mem[ram_fc_semaphored_w()]); 153 inst_mem[ram_fc_semaphored_w()]);
154 if (hw_sema)
155 gk20a_debug_output(o, "SEMA STATE: value: 0x%08x "
156 "next_val: 0x%08x addr: 0x%010llx\n",
157 readl(hw_sema->value),
158 atomic_read(&hw_sema->next_value),
159 gk20a_hw_sema_addr(hw_sema));
148 160
149#ifdef CONFIG_TEGRA_GK20A 161#ifdef CONFIG_TEGRA_GK20A
150 if ((pbdma_syncpointb_op_v(syncpointb) == pbdma_syncpointb_op_wait_v()) 162 if ((pbdma_syncpointb_op_v(syncpointb) == pbdma_syncpointb_op_wait_v())