diff options
author | Debarshi Dutta <ddutta@nvidia.com> | 2018-08-22 00:27:01 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-08-29 20:46:51 -0400 |
commit | 74639b444251d7adc222400625eb59a3d53d0c0a (patch) | |
tree | 19373fbe8ee522863c990fdfa0db24e6474f5167 /drivers/gpu/nvgpu/gm20b/pmu_gm20b.c | |
parent | e3710e5431d8f14f1b8c2812f5c1aeeb7bdaac1c (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.c | 16 |
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*/ |
45 | static struct pg_init_sequence_list _pginitseq_gm20b[] = { | 41 | static 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); |