diff options
Diffstat (limited to 'drivers/gpu/nvgpu/boardobj')
-rw-r--r-- | drivers/gpu/nvgpu/boardobj/boardobjgrp.c | 15 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/boardobj/boardobjgrp.h | 6 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/boardobj/boardobjgrp_e255.c | 5 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/boardobj/boardobjgrp_e255.h | 2 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/boardobj/boardobjgrp_e32.c | 5 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/boardobj/boardobjgrp_e32.h | 2 |
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 | ||
47 | u32 boardobjgrp_construct_super(struct boardobjgrp *pboardobjgrp) | 47 | u32 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) | |||
104 | u32 boardobjgrp_destruct_super(struct boardobjgrp *pboardobjgrp) | 105 | u32 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 | 168 | u32 boardobjgrp_pmucmd_destroy_impl(struct gk20a *g, | |
167 | u32 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 | */ |
156 | typedef u32 boardobjgrp_pmucmd_destroy(struct boardobjgrp_pmu_cmd *cmd); | 156 | typedef 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 | */ |
173 | struct boardobjgrp { | 174 | struct 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 */ |
339 | u32 boardobjgrp_construct_super(struct boardobjgrp *pboardobjgrp); | 341 | u32 boardobjgrp_construct_super(struct gk20a *g, struct boardobjgrp *pboardobjgrp); |
340 | boardobjgrp_destruct boardobjgrp_destruct_impl; | 342 | boardobjgrp_destruct boardobjgrp_destruct_impl; |
341 | boardobjgrp_destruct boardobjgrp_destruct_super; | 343 | boardobjgrp_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 | ||
30 | u32 boardobjgrpconstruct_e255(struct boardobjgrp_e255 *pboardobjgrp_e255) | 30 | u32 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 */ |
46 | u32 boardobjgrpconstruct_e255(struct boardobjgrp_e255 *pboardobjgrp); | 46 | u32 boardobjgrpconstruct_e255(struct gk20a *g, struct boardobjgrp_e255 *pboardobjgrp); |
47 | boardobjgrp_destruct boardobjgrpdestruct_e255; | 47 | boardobjgrp_destruct boardobjgrpdestruct_e255; |
48 | boardobjgrp_pmuhdrdatainit boardobjgrp_pmuhdrdatainit_e255; | 48 | boardobjgrp_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 | ||
31 | u32 boardobjgrpconstruct_e32(struct boardobjgrp_e32 *pboardobjgrp_e32) | 31 | u32 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 */ |
61 | u32 boardobjgrpconstruct_e32(struct boardobjgrp_e32 *pboardobjgrp); | 61 | u32 boardobjgrpconstruct_e32(struct gk20a *g, struct boardobjgrp_e32 *pboardobjgrp); |
62 | boardobjgrp_destruct boardobjgrpdestruct_e32; | 62 | boardobjgrp_destruct boardobjgrpdestruct_e32; |
63 | boardobjgrp_pmuhdrdatainit boardobjgrp_pmuhdrdatainit_e32; | 63 | boardobjgrp_pmuhdrdatainit boardobjgrp_pmuhdrdatainit_e32; |
64 | 64 | ||