From d16da3baec15b470c6cb1e1c58eadea60b8ffe83 Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Mon, 23 May 2016 10:22:29 -0700 Subject: gpu: nvgpu: Add checks for tracing enabled Add checks for all ctxsw trace functions declared in header. This makes sure chips without tracing support continue to work. Change-Id: Ic658a00821b589a7b770c1fde52afede02dc1c9c Signed-off-by: Terje Bergstrom Reviewed-on: http://git-master/r/1151918 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Thomas Fleury GVS: Gerrit_Virtual_Submit --- drivers/gpu/nvgpu/gk20a/ctxsw_trace_gk20a.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'drivers/gpu/nvgpu/gk20a/ctxsw_trace_gk20a.c') diff --git a/drivers/gpu/nvgpu/gk20a/ctxsw_trace_gk20a.c b/drivers/gpu/nvgpu/gk20a/ctxsw_trace_gk20a.c index 028763a2..6744699f 100644 --- a/drivers/gpu/nvgpu/gk20a/ctxsw_trace_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/ctxsw_trace_gk20a.c @@ -557,6 +557,9 @@ int gk20a_ctxsw_trace_write(struct gk20a *g, const char *reason; u32 write_idx; + if (!g->ctxsw_trace) + return 0; + if (unlikely(entry->vmid >= GK20A_CTXSW_TRACE_NUM_DEVS)) return -ENODEV; @@ -643,8 +646,12 @@ done: void gk20a_ctxsw_trace_wake_up(struct gk20a *g, int vmid) { - struct gk20a_ctxsw_dev *dev = &g->ctxsw_trace->devs[vmid]; + struct gk20a_ctxsw_dev *dev; + + if (!g->ctxsw_trace) + return; + dev = &g->ctxsw_trace->devs[vmid]; wake_up_interruptible(&dev->readout_wq); } @@ -659,6 +666,9 @@ void gk20a_ctxsw_trace_channel_reset(struct gk20a *g, struct channel_gk20a *ch) .pid = ch->pid, }; + if (!g->ctxsw_trace) + return; + gk20a_ctxsw_trace_write(g, &entry); gk20a_ctxsw_trace_wake_up(g, 0); #endif @@ -677,6 +687,9 @@ void gk20a_ctxsw_trace_tsg_reset(struct gk20a *g, struct tsg_gk20a *tsg) }; struct channel_gk20a *ch; + if (!g->ctxsw_trace) + return; + mutex_lock(&tsg->ch_list_lock); ch = list_entry(&tsg->ch_list, struct channel_gk20a, ch_entry); mutex_unlock(&tsg->ch_list_lock); -- cgit v1.2.2