summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c
diff options
context:
space:
mode:
authorAlex Waterman <alexw@nvidia.com>2017-03-08 20:08:50 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2017-03-30 15:36:09 -0400
commit24e1c7e0a729158be36d63b821550d206a8a0436 (patch)
treecf26c850cc63957f63f3e8f97914268839d8e0de /drivers/gpu/nvgpu/gk20a/pmu_gk20a.c
parent7010bf88399ea81b2b35844f738baac19dc5a441 (diff)
gpu: nvgpu: Use new kmem API functions (misc)
Use the new kmem API functions in misc gk20a code. Some additional modifications were also made: o Add a struct gk20a pointer to gk20a_fence to enable proper kmem free usage. o Add gk20a pointer to alloc_session() in dbg_gpu_gk20a.c to use kmem API for allocating a session. o Plumb a gk20a pointer through the fence creation and deletion. o Use statically allocated buffers for names in file creation. Bug 1799159 Bug 1823380 Change-Id: I3678080e3ffa1f9bcf6934e3f4819a1bc531689b Signed-off-by: Alex Waterman <alexw@nvidia.com> Reviewed-on: http://git-master/r/1318323 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/pmu_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/pmu_gk20a.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c
index 85fa8ea1..eda4167b 100644
--- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c
@@ -25,6 +25,7 @@
25 25
26#include <nvgpu/nvgpu_common.h> 26#include <nvgpu/nvgpu_common.h>
27#include <nvgpu/timers.h> 27#include <nvgpu/timers.h>
28#include <nvgpu/kmem.h>
28 29
29#include "gk20a.h" 30#include "gk20a.h"
30#include "gr_gk20a.h" 31#include "gr_gk20a.h"
@@ -301,7 +302,7 @@ static void printtrace(struct pmu_gk20a *pmu)
301 u32 *trace1; 302 u32 *trace1;
302 303
303 /* allocate system memory to copy pmu trace buffer */ 304 /* allocate system memory to copy pmu trace buffer */
304 tracebuffer = kzalloc(GK20A_PMU_TRACE_BUFSIZE, GFP_KERNEL); 305 tracebuffer = nvgpu_kzalloc(g, GK20A_PMU_TRACE_BUFSIZE);
305 if (tracebuffer == NULL) 306 if (tracebuffer == NULL)
306 return; 307 return;
307 308
@@ -335,7 +336,7 @@ static void printtrace(struct pmu_gk20a *pmu)
335 scnprintf((buf + count), 0x40, "%s", (trace+i+20+m)); 336 scnprintf((buf + count), 0x40, "%s", (trace+i+20+m));
336 gk20a_err(dev_from_gk20a(g), "%s", buf); 337 gk20a_err(dev_from_gk20a(g), "%s", buf);
337 } 338 }
338 kfree(tracebuffer); 339 nvgpu_kfree(g, tracebuffer);
339} 340}
340 341
341static void set_pmu_cmdline_args_falctracedmabase_v1(struct pmu_gk20a *pmu) 342static void set_pmu_cmdline_args_falctracedmabase_v1(struct pmu_gk20a *pmu)
@@ -3163,8 +3164,8 @@ static int gk20a_init_pmu_setup_sw(struct gk20a *g)
3163 pmu->perfmon_sampling_enabled = true; 3164 pmu->perfmon_sampling_enabled = true;
3164 3165
3165 pmu->mutex_cnt = pwr_pmu_mutex__size_1_v(); 3166 pmu->mutex_cnt = pwr_pmu_mutex__size_1_v();
3166 pmu->mutex = kzalloc(pmu->mutex_cnt * 3167 pmu->mutex = nvgpu_kzalloc(g, pmu->mutex_cnt *
3167 sizeof(struct pmu_mutex), GFP_KERNEL); 3168 sizeof(struct pmu_mutex));
3168 if (!pmu->mutex) { 3169 if (!pmu->mutex) {
3169 err = -ENOMEM; 3170 err = -ENOMEM;
3170 goto err; 3171 goto err;
@@ -3175,8 +3176,8 @@ static int gk20a_init_pmu_setup_sw(struct gk20a *g)
3175 pmu->mutex[i].index = i; 3176 pmu->mutex[i].index = i;
3176 } 3177 }
3177 3178
3178 pmu->seq = kzalloc(PMU_MAX_NUM_SEQUENCES * 3179 pmu->seq = nvgpu_kzalloc(g, PMU_MAX_NUM_SEQUENCES *
3179 sizeof(struct pmu_sequence), GFP_KERNEL); 3180 sizeof(struct pmu_sequence));
3180 if (!pmu->seq) { 3181 if (!pmu->seq) {
3181 err = -ENOMEM; 3182 err = -ENOMEM;
3182 goto err_free_mutex; 3183 goto err_free_mutex;
@@ -3218,9 +3219,9 @@ skip_init:
3218 err_free_seq_buf: 3219 err_free_seq_buf:
3219 gk20a_gmmu_unmap_free(vm, &pmu->seq_buf); 3220 gk20a_gmmu_unmap_free(vm, &pmu->seq_buf);
3220 err_free_seq: 3221 err_free_seq:
3221 kfree(pmu->seq); 3222 nvgpu_kfree(g, pmu->seq);
3222 err_free_mutex: 3223 err_free_mutex:
3223 kfree(pmu->mutex); 3224 nvgpu_kfree(g, pmu->mutex);
3224 err: 3225 err:
3225 gk20a_dbg_fn("fail"); 3226 gk20a_dbg_fn("fail");
3226 return err; 3227 return err;
@@ -4060,7 +4061,7 @@ static int pmu_response_handle(struct pmu_gk20a *pmu,
4060 4061
4061 gk20a_pmu_surface_free(g, seq->out_mem); 4062 gk20a_pmu_surface_free(g, seq->out_mem);
4062 if (seq->out_mem != seq->in_mem) 4063 if (seq->out_mem != seq->in_mem)
4063 kfree(seq->out_mem); 4064 nvgpu_kfree(g, seq->out_mem);
4064 else 4065 else
4065 seq->out_mem = NULL; 4066 seq->out_mem = NULL;
4066 } 4067 }
@@ -4072,7 +4073,7 @@ static int pmu_response_handle(struct pmu_gk20a *pmu,
4072 pv->get_pmu_seq_in_a_ptr(seq))); 4073 pv->get_pmu_seq_in_a_ptr(seq)));
4073 4074
4074 gk20a_pmu_surface_free(g, seq->in_mem); 4075 gk20a_pmu_surface_free(g, seq->in_mem);
4075 kfree(seq->in_mem); 4076 nvgpu_kfree(g, seq->in_mem);
4076 seq->in_mem = NULL; 4077 seq->in_mem = NULL;
4077 } 4078 }
4078 4079
@@ -4822,8 +4823,7 @@ int gk20a_pmu_cmd_post(struct gk20a *g, struct pmu_cmd *cmd,
4822 goto clean_up; 4823 goto clean_up;
4823 4824
4824 if (payload->in.fb_size != 0x0) { 4825 if (payload->in.fb_size != 0x0) {
4825 seq->in_mem = kzalloc(sizeof(struct mem_desc), 4826 seq->in_mem = nvgpu_kzalloc(g, sizeof(struct mem_desc));
4826 GFP_KERNEL);
4827 if (!seq->in_mem) { 4827 if (!seq->in_mem) {
4828 err = -ENOMEM; 4828 err = -ENOMEM;
4829 goto clean_up; 4829 goto clean_up;
@@ -4866,8 +4866,8 @@ int gk20a_pmu_cmd_post(struct gk20a *g, struct pmu_cmd *cmd,
4866 goto clean_up; 4866 goto clean_up;
4867 4867
4868 if (payload->out.fb_size != 0x0) { 4868 if (payload->out.fb_size != 0x0) {
4869 seq->out_mem = kzalloc(sizeof(struct mem_desc), 4869 seq->out_mem = nvgpu_kzalloc(g,
4870 GFP_KERNEL); 4870 sizeof(struct mem_desc));
4871 if (!seq->out_mem) { 4871 if (!seq->out_mem) {
4872 err = -ENOMEM; 4872 err = -ENOMEM;
4873 goto clean_up; 4873 goto clean_up;
@@ -5690,7 +5690,7 @@ static int falc_trace_show(struct seq_file *s, void *data)
5690 u32 *trace1; 5690 u32 *trace1;
5691 5691
5692 /* allocate system memory to copy pmu trace buffer */ 5692 /* allocate system memory to copy pmu trace buffer */
5693 tracebuffer = kzalloc(GK20A_PMU_TRACE_BUFSIZE, GFP_KERNEL); 5693 tracebuffer = nvgpu_kzalloc(g, GK20A_PMU_TRACE_BUFSIZE);
5694 if (tracebuffer == NULL) 5694 if (tracebuffer == NULL)
5695 return -ENOMEM; 5695 return -ENOMEM;
5696 5696
@@ -5723,7 +5723,7 @@ static int falc_trace_show(struct seq_file *s, void *data)
5723 seq_printf(s, "%s", (trace+i+20+m)); 5723 seq_printf(s, "%s", (trace+i+20+m));
5724 } 5724 }
5725 5725
5726 kfree(tracebuffer); 5726 nvgpu_kfree(g, tracebuffer);
5727 return 0; 5727 return 0;
5728} 5728}
5729 5729