summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gm20b/pmu_gm20b.c
diff options
context:
space:
mode:
authorDebarshi Dutta <ddutta@nvidia.com>2018-08-22 00:27:01 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-08-29 20:46:51 -0400
commit74639b444251d7adc222400625eb59a3d53d0c0a (patch)
tree19373fbe8ee522863c990fdfa0db24e6474f5167 /drivers/gpu/nvgpu/gm20b/pmu_gm20b.c
parente3710e5431d8f14f1b8c2812f5c1aeeb7bdaac1c (diff)
gpu: nvgpu: invoke calls to methods in pmu_gk20a.h via HAL
In nvgpu repository, we have multiple accesses to methods in pmu_gk20a.h which have register accesses. Instead of directly invoking these methods, these are now called via HALs. Some common methods such as pmu_wait_message_cond which donot have any register accesses are moved to pmu_ipc.c and the method declarations are moved to pmu.h. Also, changed gm20b_pmu_dbg to nvgpu_dbg_pmu all across the code base. This would remove all indirect dependencies via gk20a.h into pmu_gk20a.h. As a result pmu_gk20a.h is now removed from gk20a.h JIRA-597 Change-Id: Id54b2684ca39362fda7626238c3116cd49e92080 Signed-off-by: Debarshi Dutta <ddutta@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1804283 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b/pmu_gm20b.c')
-rw-r--r--drivers/gpu/nvgpu/gm20b/pmu_gm20b.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/pmu_gm20b.c b/drivers/gpu/nvgpu/gm20b/pmu_gm20b.c
index 286a1979..38970f73 100644
--- a/drivers/gpu/nvgpu/gm20b/pmu_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/pmu_gm20b.c
@@ -37,10 +37,6 @@
37#include <nvgpu/hw/gm20b/hw_gr_gm20b.h> 37#include <nvgpu/hw/gm20b/hw_gr_gm20b.h>
38#include <nvgpu/hw/gm20b/hw_pwr_gm20b.h> 38#include <nvgpu/hw/gm20b/hw_pwr_gm20b.h>
39 39
40#define gm20b_dbg_pmu(g, fmt, arg...) \
41 nvgpu_log(g, gpu_dbg_pmu, fmt, ##arg)
42
43
44/* PROD settings for ELPG sequencing registers*/ 40/* PROD settings for ELPG sequencing registers*/
45static struct pg_init_sequence_list _pginitseq_gm20b[] = { 41static struct pg_init_sequence_list _pginitseq_gm20b[] = {
46 { 0x0010ab10, 0x8180}, 42 { 0x0010ab10, 0x8180},
@@ -129,7 +125,7 @@ static void pmu_handle_acr_init_wpr_msg(struct gk20a *g, struct pmu_msg *msg,
129{ 125{
130 nvgpu_log_fn(g, " "); 126 nvgpu_log_fn(g, " ");
131 127
132 gm20b_dbg_pmu(g, "reply PMU_ACR_CMD_ID_INIT_WPR_REGION"); 128 nvgpu_pmu_dbg(g, "reply PMU_ACR_CMD_ID_INIT_WPR_REGION");
133 129
134 if (msg->msg.acr.acrmsg.errorcode == PMU_ACR_SUCCESS) { 130 if (msg->msg.acr.acrmsg.errorcode == PMU_ACR_SUCCESS) {
135 g->pmu_lsf_pmu_wpr_init_done = 1; 131 g->pmu_lsf_pmu_wpr_init_done = 1;
@@ -154,7 +150,7 @@ int gm20b_pmu_init_acr(struct gk20a *g)
154 cmd.cmd.acr.init_wpr.cmd_type = PMU_ACR_CMD_ID_INIT_WPR_REGION; 150 cmd.cmd.acr.init_wpr.cmd_type = PMU_ACR_CMD_ID_INIT_WPR_REGION;
155 cmd.cmd.acr.init_wpr.regionid = 0x01; 151 cmd.cmd.acr.init_wpr.regionid = 0x01;
156 cmd.cmd.acr.init_wpr.wproffset = 0x00; 152 cmd.cmd.acr.init_wpr.wproffset = 0x00;
157 gm20b_dbg_pmu(g, "cmd post PMU_ACR_CMD_ID_INIT_WPR_REGION"); 153 nvgpu_pmu_dbg(g, "cmd post PMU_ACR_CMD_ID_INIT_WPR_REGION");
158 nvgpu_pmu_cmd_post(g, &cmd, NULL, NULL, PMU_COMMAND_QUEUE_HPQ, 154 nvgpu_pmu_cmd_post(g, &cmd, NULL, NULL, PMU_COMMAND_QUEUE_HPQ,
159 pmu_handle_acr_init_wpr_msg, pmu, &seq, ~0); 155 pmu_handle_acr_init_wpr_msg, pmu, &seq, ~0);
160 156
@@ -169,9 +165,9 @@ void pmu_handle_fecs_boot_acr_msg(struct gk20a *g, struct pmu_msg *msg,
169 nvgpu_log_fn(g, " "); 165 nvgpu_log_fn(g, " ");
170 166
171 167
172 gm20b_dbg_pmu(g, "reply PMU_ACR_CMD_ID_BOOTSTRAP_FALCON"); 168 nvgpu_pmu_dbg(g, "reply PMU_ACR_CMD_ID_BOOTSTRAP_FALCON");
173 169
174 gm20b_dbg_pmu(g, "response code = %x\n", msg->msg.acr.acrmsg.falconid); 170 nvgpu_pmu_dbg(g, "response code = %x\n", msg->msg.acr.acrmsg.falconid);
175 g->pmu_lsf_loaded_falcon_id = msg->msg.acr.acrmsg.falconid; 171 g->pmu_lsf_loaded_falcon_id = msg->msg.acr.acrmsg.falconid;
176 nvgpu_log_fn(g, "done"); 172 nvgpu_log_fn(g, "done");
177} 173}
@@ -207,7 +203,7 @@ void gm20b_pmu_load_lsf(struct gk20a *g, u32 falcon_id, u32 flags)
207 203
208 nvgpu_log_fn(g, " "); 204 nvgpu_log_fn(g, " ");
209 205
210 gm20b_dbg_pmu(g, "wprinit status = %x\n", g->pmu_lsf_pmu_wpr_init_done); 206 nvgpu_pmu_dbg(g, "wprinit status = %x\n", g->pmu_lsf_pmu_wpr_init_done);
211 if (g->pmu_lsf_pmu_wpr_init_done) { 207 if (g->pmu_lsf_pmu_wpr_init_done) {
212 /* send message to load FECS falcon */ 208 /* send message to load FECS falcon */
213 memset(&cmd, 0, sizeof(struct pmu_cmd)); 209 memset(&cmd, 0, sizeof(struct pmu_cmd));
@@ -218,7 +214,7 @@ void gm20b_pmu_load_lsf(struct gk20a *g, u32 falcon_id, u32 flags)
218 PMU_ACR_CMD_ID_BOOTSTRAP_FALCON; 214 PMU_ACR_CMD_ID_BOOTSTRAP_FALCON;
219 cmd.cmd.acr.bootstrap_falcon.flags = flags; 215 cmd.cmd.acr.bootstrap_falcon.flags = flags;
220 cmd.cmd.acr.bootstrap_falcon.falconid = falcon_id; 216 cmd.cmd.acr.bootstrap_falcon.falconid = falcon_id;
221 gm20b_dbg_pmu(g, "cmd post PMU_ACR_CMD_ID_BOOTSTRAP_FALCON: %x\n", 217 nvgpu_pmu_dbg(g, "cmd post PMU_ACR_CMD_ID_BOOTSTRAP_FALCON: %x\n",
222 falcon_id); 218 falcon_id);
223 nvgpu_pmu_cmd_post(g, &cmd, NULL, NULL, PMU_COMMAND_QUEUE_HPQ, 219 nvgpu_pmu_cmd_post(g, &cmd, NULL, NULL, PMU_COMMAND_QUEUE_HPQ,
224 pmu_handle_fecs_boot_acr_msg, pmu, &seq, ~0); 220 pmu_handle_fecs_boot_acr_msg, pmu, &seq, ~0);