diff options
author | Alex Waterman <alexw@nvidia.com> | 2016-04-27 16:07:29 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2016-08-30 13:04:13 -0400 |
commit | 39624a04d8c325958c40c0e44acd4fcc9cfeed95 (patch) | |
tree | ad302c25ffb6e24f2228220d2417022735b93612 /drivers | |
parent | 448df6ed271a7b73a1a5e3dfbba826e745b82922 (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.c | 12 |
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()) |