summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/boardobj
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/boardobj')
-rw-r--r--drivers/gpu/nvgpu/boardobj/boardobjgrp.c15
-rw-r--r--drivers/gpu/nvgpu/boardobj/boardobjgrp.h6
-rw-r--r--drivers/gpu/nvgpu/boardobj/boardobjgrp_e255.c5
-rw-r--r--drivers/gpu/nvgpu/boardobj/boardobjgrp_e255.h2
-rw-r--r--drivers/gpu/nvgpu/boardobj/boardobjgrp_e32.c5
-rw-r--r--drivers/gpu/nvgpu/boardobj/boardobjgrp_e32.h2
6 files changed, 22 insertions, 13 deletions
diff --git a/drivers/gpu/nvgpu/boardobj/boardobjgrp.c b/drivers/gpu/nvgpu/boardobj/boardobjgrp.c
index e03dbe8d..66c87e08 100644
--- a/drivers/gpu/nvgpu/boardobj/boardobjgrp.c
+++ b/drivers/gpu/nvgpu/boardobj/boardobjgrp.c
@@ -44,7 +44,7 @@ struct boardobjgrp_pmucmdhandler_params {
44 u32 success; 44 u32 success;
45}; 45};
46 46
47u32 boardobjgrp_construct_super(struct boardobjgrp *pboardobjgrp) 47u32 boardobjgrp_construct_super(struct gk20a *g, struct boardobjgrp *pboardobjgrp)
48{ 48{
49 gk20a_dbg_info(""); 49 gk20a_dbg_info("");
50 50
@@ -57,6 +57,7 @@ u32 boardobjgrp_construct_super(struct boardobjgrp *pboardobjgrp)
57 if (pboardobjgrp->mask == NULL) 57 if (pboardobjgrp->mask == NULL)
58 return -EINVAL; 58 return -EINVAL;
59 59
60 pboardobjgrp->g = g;
60 pboardobjgrp->objmask = 0; 61 pboardobjgrp->objmask = 0;
61 62
62 pboardobjgrp->classid = 0; 63 pboardobjgrp->classid = 0;
@@ -104,6 +105,7 @@ u32 boardobjgrp_destruct_impl(struct boardobjgrp *pboardobjgrp)
104u32 boardobjgrp_destruct_super(struct boardobjgrp *pboardobjgrp) 105u32 boardobjgrp_destruct_super(struct boardobjgrp *pboardobjgrp)
105{ 106{
106 struct boardobj *pboardobj; 107 struct boardobj *pboardobj;
108 struct gk20a *g = pboardobjgrp->g;
107 u32 status = 0; 109 u32 status = 0;
108 u32 stat; 110 u32 stat;
109 u8 index; 111 u8 index;
@@ -134,11 +136,11 @@ u32 boardobjgrp_destruct_super(struct boardobjgrp *pboardobjgrp)
134 } 136 }
135 137
136 /* Destroy the PMU CMD data */ 138 /* Destroy the PMU CMD data */
137 stat = boardobjgrp_pmucmd_destroy_impl(&pboardobjgrp->pmu.set); 139 stat = boardobjgrp_pmucmd_destroy_impl(g, &pboardobjgrp->pmu.set);
138 if (status == 0) 140 if (status == 0)
139 status = stat; 141 status = stat;
140 142
141 stat = boardobjgrp_pmucmd_destroy_impl(&pboardobjgrp->pmu.getstatus); 143 stat = boardobjgrp_pmucmd_destroy_impl(g, &pboardobjgrp->pmu.getstatus);
142 if (status == 0) 144 if (status == 0)
143 status = stat; 145 status = stat;
144 146
@@ -163,9 +165,12 @@ u32 boardobjgrp_pmucmd_construct_impl(struct gk20a *g, struct boardobjgrp
163 return 0; 165 return 0;
164} 166}
165 167
166 168u32 boardobjgrp_pmucmd_destroy_impl(struct gk20a *g,
167u32 boardobjgrp_pmucmd_destroy_impl(struct boardobjgrp_pmu_cmd *cmd) 169 struct boardobjgrp_pmu_cmd *cmd)
168{ 170{
171 struct nvgpu_mem *mem = &cmd->surf.sysmem_desc;
172
173 nvgpu_pmu_surface_free(g, mem);
169 return 0; 174 return 0;
170} 175}
171 176
diff --git a/drivers/gpu/nvgpu/boardobj/boardobjgrp.h b/drivers/gpu/nvgpu/boardobj/boardobjgrp.h
index c7840e02..14d7c1bb 100644
--- a/drivers/gpu/nvgpu/boardobj/boardobjgrp.h
+++ b/drivers/gpu/nvgpu/boardobj/boardobjgrp.h
@@ -153,7 +153,8 @@ typedef u32 boardobjgrp_pmucmd_construct(struct gk20a *g,
153/* 153/*
154* Destroys BOARDOBJGRP PMU SW state. CMD. 154* Destroys BOARDOBJGRP PMU SW state. CMD.
155*/ 155*/
156typedef u32 boardobjgrp_pmucmd_destroy(struct boardobjgrp_pmu_cmd *cmd); 156typedef u32 boardobjgrp_pmucmd_destroy(struct gk20a *g,
157 struct boardobjgrp_pmu_cmd *cmd);
157 158
158/* 159/*
159* init handler for the BOARDOBJGRP PMU CMD. Allocates and maps the 160* init handler for the BOARDOBJGRP PMU CMD. Allocates and maps the
@@ -171,6 +172,7 @@ typedef u32 boardobjgrp_pmucmd_pmuinithandle(struct gk20a *g,
171* device group or device-type. 172* device group or device-type.
172*/ 173*/
173struct boardobjgrp { 174struct boardobjgrp {
175 struct gk20a *g;
174 u32 objmask; 176 u32 objmask;
175 bool bconstructed; 177 bool bconstructed;
176 u8 type; 178 u8 type;
@@ -336,7 +338,7 @@ do { \
336 338
337/* ------------------------ Function Prototypes ----------------------------- */ 339/* ------------------------ Function Prototypes ----------------------------- */
338/* Constructor and destructor */ 340/* Constructor and destructor */
339u32 boardobjgrp_construct_super(struct boardobjgrp *pboardobjgrp); 341u32 boardobjgrp_construct_super(struct gk20a *g, struct boardobjgrp *pboardobjgrp);
340boardobjgrp_destruct boardobjgrp_destruct_impl; 342boardobjgrp_destruct boardobjgrp_destruct_impl;
341boardobjgrp_destruct boardobjgrp_destruct_super; 343boardobjgrp_destruct boardobjgrp_destruct_super;
342 344
diff --git a/drivers/gpu/nvgpu/boardobj/boardobjgrp_e255.c b/drivers/gpu/nvgpu/boardobj/boardobjgrp_e255.c
index 787f205b..a6223e9a 100644
--- a/drivers/gpu/nvgpu/boardobj/boardobjgrp_e255.c
+++ b/drivers/gpu/nvgpu/boardobj/boardobjgrp_e255.c
@@ -27,7 +27,8 @@
27#include "boardobjgrp.h" 27#include "boardobjgrp.h"
28#include "boardobjgrpmask.h" 28#include "boardobjgrpmask.h"
29 29
30u32 boardobjgrpconstruct_e255(struct boardobjgrp_e255 *pboardobjgrp_e255) 30u32 boardobjgrpconstruct_e255(struct gk20a *g,
31 struct boardobjgrp_e255 *pboardobjgrp_e255)
31{ 32{
32 u32 status = 0; 33 u32 status = 0;
33 u8 objslots; 34 u8 objslots;
@@ -44,7 +45,7 @@ u32 boardobjgrpconstruct_e255(struct boardobjgrp_e255 *pboardobjgrp_e255)
44 pboardobjgrp_e255->super.objslots = objslots; 45 pboardobjgrp_e255->super.objslots = objslots;
45 pboardobjgrp_e255->super.mask = &(pboardobjgrp_e255->mask.super); 46 pboardobjgrp_e255->super.mask = &(pboardobjgrp_e255->mask.super);
46 47
47 status = boardobjgrp_construct_super(&pboardobjgrp_e255->super); 48 status = boardobjgrp_construct_super(g, &pboardobjgrp_e255->super);
48 if (status) 49 if (status)
49 goto boardobjgrpconstruct_e255_exit; 50 goto boardobjgrpconstruct_e255_exit;
50 51
diff --git a/drivers/gpu/nvgpu/boardobj/boardobjgrp_e255.h b/drivers/gpu/nvgpu/boardobj/boardobjgrp_e255.h
index fa33d557..76aa902a 100644
--- a/drivers/gpu/nvgpu/boardobj/boardobjgrp_e255.h
+++ b/drivers/gpu/nvgpu/boardobj/boardobjgrp_e255.h
@@ -43,7 +43,7 @@ struct boardobjgrp_e255 {
43 boardobjgrp_pmudatainit_super(g, pboardpbjgrp, pboardobjgrppmu) 43 boardobjgrp_pmudatainit_super(g, pboardpbjgrp, pboardobjgrppmu)
44 44
45/* Constructor and destructor */ 45/* Constructor and destructor */
46u32 boardobjgrpconstruct_e255(struct boardobjgrp_e255 *pboardobjgrp); 46u32 boardobjgrpconstruct_e255(struct gk20a *g, struct boardobjgrp_e255 *pboardobjgrp);
47boardobjgrp_destruct boardobjgrpdestruct_e255; 47boardobjgrp_destruct boardobjgrpdestruct_e255;
48boardobjgrp_pmuhdrdatainit boardobjgrp_pmuhdrdatainit_e255; 48boardobjgrp_pmuhdrdatainit boardobjgrp_pmuhdrdatainit_e255;
49 49
diff --git a/drivers/gpu/nvgpu/boardobj/boardobjgrp_e32.c b/drivers/gpu/nvgpu/boardobj/boardobjgrp_e32.c
index 0a34d563..53380e95 100644
--- a/drivers/gpu/nvgpu/boardobj/boardobjgrp_e32.c
+++ b/drivers/gpu/nvgpu/boardobj/boardobjgrp_e32.c
@@ -28,7 +28,8 @@
28#include "boardobjgrpmask.h" 28#include "boardobjgrpmask.h"
29 29
30 30
31u32 boardobjgrpconstruct_e32(struct boardobjgrp_e32 *pboardobjgrp_e32) 31u32 boardobjgrpconstruct_e32(struct gk20a *g,
32 struct boardobjgrp_e32 *pboardobjgrp_e32)
32{ 33{
33 u32 status; 34 u32 status;
34 u8 objslots; 35 u8 objslots;
@@ -45,7 +46,7 @@ u32 boardobjgrpconstruct_e32(struct boardobjgrp_e32 *pboardobjgrp_e32)
45 pboardobjgrp_e32->super.objslots = objslots; 46 pboardobjgrp_e32->super.objslots = objslots;
46 pboardobjgrp_e32->super.mask = &(pboardobjgrp_e32->mask.super); 47 pboardobjgrp_e32->super.mask = &(pboardobjgrp_e32->mask.super);
47 48
48 status = boardobjgrp_construct_super(&pboardobjgrp_e32->super); 49 status = boardobjgrp_construct_super(g, &pboardobjgrp_e32->super);
49 if (status) 50 if (status)
50 goto boardobjgrpconstruct_e32_exit; 51 goto boardobjgrpconstruct_e32_exit;
51 52
diff --git a/drivers/gpu/nvgpu/boardobj/boardobjgrp_e32.h b/drivers/gpu/nvgpu/boardobj/boardobjgrp_e32.h
index 674d351a..97c737a5 100644
--- a/drivers/gpu/nvgpu/boardobj/boardobjgrp_e32.h
+++ b/drivers/gpu/nvgpu/boardobj/boardobjgrp_e32.h
@@ -58,7 +58,7 @@ struct boardobjgrp_e32 {
58 boardobjgrp_pmudatainit_super(g, pboardpbjgrp, pboardobjgrppmu) 58 boardobjgrp_pmudatainit_super(g, pboardpbjgrp, pboardobjgrppmu)
59 59
60/* Constructor and destructor */ 60/* Constructor and destructor */
61u32 boardobjgrpconstruct_e32(struct boardobjgrp_e32 *pboardobjgrp); 61u32 boardobjgrpconstruct_e32(struct gk20a *g, struct boardobjgrp_e32 *pboardobjgrp);
62boardobjgrp_destruct boardobjgrpdestruct_e32; 62boardobjgrp_destruct boardobjgrpdestruct_e32;
63boardobjgrp_pmuhdrdatainit boardobjgrp_pmuhdrdatainit_e32; 63boardobjgrp_pmuhdrdatainit boardobjgrp_pmuhdrdatainit_e32;
64 64