mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-24 10:34:43 +03:00
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:
committed by
mobile promotions
parent
b7b38d1cd6
commit
4118656755
@@ -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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user