gpu: nvgpu: use nvgpu_flcn_copy_from_dmem()

- replace usage of pmu_copy_from_dmem() with
nvgpu_flcn_copy_from_dmem()
- delete nvgpu_flcn_copy_from_dmem()

JIRA NVGPU-99

Change-Id: If0919187078f95a165d6a152f180549ac121beaa
Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Reviewed-on: https://git-master/r/1506534
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Mahantesh Kumbar
2017-06-21 22:54:28 +05:30
committed by mobile promotions
parent b7b38d1cd6
commit 4118656755
7 changed files with 12 additions and 58 deletions

View File

@@ -193,14 +193,14 @@ int nvgpu_pmu_process_init_msg(struct nvgpu_pmu *pmu,
g->ops.pmu.pmu_msgq_tail(pmu, &tail, QUEUE_GET);
pmu_copy_from_dmem(pmu, tail,
nvgpu_flcn_copy_from_dmem(pmu->flcn, tail,
(u8 *)&msg->hdr, PMU_MSG_HDR_SIZE, 0);
if (msg->hdr.unit_id != PMU_UNIT_INIT) {
nvgpu_err(g, "expecting init msg");
return -EINVAL;
}
pmu_copy_from_dmem(pmu, tail + PMU_MSG_HDR_SIZE,
nvgpu_flcn_copy_from_dmem(pmu->flcn, tail + PMU_MSG_HDR_SIZE,
(u8 *)&msg->msg, msg->hdr.size - PMU_MSG_HDR_SIZE, 0);
if (msg->msg.init.msg_type != PMU_INIT_MSG_TYPE_PMU_INIT) {
@@ -214,7 +214,7 @@ int nvgpu_pmu_process_init_msg(struct nvgpu_pmu *pmu,
init = pv->get_pmu_msg_pmu_init_msg_ptr(&(msg->msg.init));
if (!pmu->gid_info.valid) {
pmu_copy_from_dmem(pmu,
nvgpu_flcn_copy_from_dmem(pmu->flcn,
pv->get_pmu_init_msg_pmu_sw_mg_off(init),
(u8 *)&gid_data,
sizeof(struct pmu_sha1_gid_data), 0);

View File

@@ -129,7 +129,7 @@ static int pmu_queue_tail(struct nvgpu_pmu *pmu, struct pmu_queue *queue,
static inline void pmu_queue_read(struct nvgpu_pmu *pmu,
u32 offset, u8 *dst, u32 size)
{
pmu_copy_from_dmem(pmu, offset, dst, size, 0);
nvgpu_flcn_copy_from_dmem(pmu->flcn, offset, dst, size, 0);
}
static inline void pmu_queue_write(struct nvgpu_pmu *pmu,
@@ -673,7 +673,7 @@ static int pmu_response_handle(struct nvgpu_pmu *pmu,
}
if (pv->pmu_allocation_get_dmem_size(pmu,
pv->get_pmu_seq_out_a_ptr(seq)) != 0) {
pmu_copy_from_dmem(pmu,
nvgpu_flcn_copy_from_dmem(pmu->flcn,
pv->pmu_allocation_get_dmem_offset(pmu,
pv->get_pmu_seq_out_a_ptr(seq)),
seq->out_payload,

View File

@@ -204,7 +204,8 @@ int nvgpu_pmu_load_update(struct gk20a *g)
return 0;
}
pmu_copy_from_dmem(pmu, pmu->sample_buffer, (u8 *)&load, 2, 0);
nvgpu_flcn_copy_from_dmem(pmu->flcn, pmu->sample_buffer,
(u8 *)&load, 2, 0);
pmu->load_shadow = load / 10;
pmu->load_avg = (((9*pmu->load_avg) + pmu->load_shadow) / 10);

View File

@@ -104,51 +104,6 @@ static void printtrace(struct nvgpu_pmu *pmu)
nvgpu_kfree(g, tracebuffer);
}
void pmu_copy_from_dmem(struct nvgpu_pmu *pmu,
u32 src, u8 *dst, u32 size, u8 port)
{
struct gk20a *g = gk20a_from_pmu(pmu);
u32 i, words, bytes;
u32 data, addr_mask;
u32 *dst_u32 = (u32*)dst;
if (size == 0) {
nvgpu_err(g, "size is zero");
return;
}
if (src & 0x3) {
nvgpu_err(g, "src (0x%08x) not 4-byte aligned", src);
return;
}
nvgpu_mutex_acquire(&pmu->pmu_copy_lock);
words = size >> 2;
bytes = size & 0x3;
addr_mask = pwr_falcon_dmemc_offs_m() |
pwr_falcon_dmemc_blk_m();
src &= addr_mask;
gk20a_writel(g, pwr_falcon_dmemc_r(port),
src | pwr_falcon_dmemc_aincr_f(1));
for (i = 0; i < words; i++)
dst_u32[i] = gk20a_readl(g, pwr_falcon_dmemd_r(port));
if (bytes > 0) {
data = gk20a_readl(g, pwr_falcon_dmemd_r(port));
for (i = 0; i < bytes; i++) {
dst[(words << 2) + i] = ((u8 *)&data)[i];
}
}
nvgpu_mutex_release(&pmu->pmu_copy_lock);
return;
}
void pmu_copy_to_dmem(struct nvgpu_pmu *pmu,
u32 dst, u8 *src, u32 size, u8 port)
{
@@ -812,7 +767,7 @@ void pmu_dump_elpg_stats(struct nvgpu_pmu *pmu)
struct gk20a *g = gk20a_from_pmu(pmu);
struct pmu_pg_stats stats;
pmu_copy_from_dmem(pmu,
nvgpu_flcn_copy_from_dmem(pmu->flcn,
pmu->stat_dmem_offset[PMU_PG_ELPG_ENGINE_ID_GRAPHICS],
(u8 *)&stats, sizeof(struct pmu_pg_stats), 0);
@@ -845,7 +800,7 @@ void pmu_dump_elpg_stats(struct nvgpu_pmu *pmu)
Turn on PG_DEBUG in ucode and locate symbol "ElpgLog" offset
in .nm file, e.g. 0x1000066c. use 0x66c.
u32 i, val[20];
pmu_copy_from_dmem(pmu, 0x66c,
nvgpu_flcn_copy_from_dmem(pmu->flcn, 0x66c,
(u8 *)val, sizeof(val), 0);
gk20a_dbg_pmu("elpg log begin");
for (i = 0; i < 20; i++)
@@ -1150,7 +1105,7 @@ void gk20a_pmu_elpg_statistics(struct gk20a *g, u32 pg_engine_id,
struct nvgpu_pmu *pmu = &g->pmu;
struct pmu_pg_stats stats;
pmu_copy_from_dmem(pmu,
nvgpu_flcn_copy_from_dmem(pmu->flcn,
pmu->stat_dmem_offset[pg_engine_id],
(u8 *)&stats, sizeof(struct pmu_pg_stats), 0);

View File

@@ -58,8 +58,6 @@ void gk20a_init_pmu_ops(struct gpu_ops *gops);
void pmu_copy_to_dmem(struct nvgpu_pmu *pmu,
u32 dst, u8 *src, u32 size, u8 port);
void pmu_copy_from_dmem(struct nvgpu_pmu *pmu,
u32 src, u8 *dst, u32 size, u8 port);
int pmu_bootstrap(struct nvgpu_pmu *pmu);
void pmu_dump_elpg_stats(struct nvgpu_pmu *pmu);

View File

@@ -265,7 +265,7 @@ void gp106_pmu_elpg_statistics(struct gk20a *g, u32 pg_engine_id,
struct nvgpu_pmu *pmu = &g->pmu;
struct pmu_pg_stats_v2 stats;
pmu_copy_from_dmem(pmu,
nvgpu_flcn_copy_from_dmem(pmu->flcn,
pmu->stat_dmem_offset[pg_engine_id],
(u8 *)&stats, sizeof(struct pmu_pg_stats_v2), 0);

View File

@@ -257,7 +257,7 @@ static void gp10b_pmu_elpg_statistics(struct gk20a *g, u32 pg_engine_id,
struct nvgpu_pmu *pmu = &g->pmu;
struct pmu_pg_stats_v1 stats;
pmu_copy_from_dmem(pmu,
nvgpu_flcn_copy_from_dmem(pmu->flcn,
pmu->stat_dmem_offset[pg_engine_id],
(u8 *)&stats, sizeof(struct pmu_pg_stats_v1), 0);