summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom St Denis <tom.stdenis@amd.com>2019-04-15 11:46:07 -0400
committerTom St Denis <tom.stdenis@amd.com>2019-04-15 11:46:07 -0400
commit4762ac7230a6720adc77b752a454333d8d138101 (patch)
tree7ad652344c0652017930d47a10baffd30f5142c1
parentfa02f64d8559bdc749dfef992d28f401f30ec517 (diff)
replace low level calls to reg read/write with callback calls
Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
-rw-r--r--src/app/main.c3
-rw-r--r--src/lib/lowlevel/linux/mmio.c6
-rw-r--r--src/lib/mmio.c4
3 files changed, 5 insertions, 8 deletions
diff --git a/src/app/main.c b/src/app/main.c
index f6878e0..e6354ff 100644
--- a/src/app/main.c
+++ b/src/app/main.c
@@ -55,6 +55,9 @@ static struct umr_asic *get_asic(void)
else
asic->mem_funcs.access_linear_vram = umr_access_vram_via_mmio;
+ asic->reg_funcs.read_reg = umr_read_reg;
+ asic->reg_funcs.write_reg = umr_write_reg;
+
return asic;
}
diff --git a/src/lib/lowlevel/linux/mmio.c b/src/lib/lowlevel/linux/mmio.c
index 1fee5f4..af14cab 100644
--- a/src/lib/lowlevel/linux/mmio.c
+++ b/src/lib/lowlevel/linux/mmio.c
@@ -104,9 +104,6 @@ uint32_t umr_read_reg(struct umr_asic *asic, uint64_t addr, enum regclass type)
if (addr == 0xFFFFFFFF)
fprintf(stderr, "[BUG]: reading from addr==0xFFFFFFFF is likely a bug\n");
- if (asic->reg_funcs.read_reg)
- return asic->reg_funcs.read_reg(asic, addr, type);
-
// lop off top bits in no-kernel mode
if (asic->options.no_kernel)
addr &= 0xFFFFFF;
@@ -141,9 +138,6 @@ int umr_write_reg(struct umr_asic *asic, uint64_t addr, uint32_t value, enum reg
if (addr == 0xFFFFFFFF)
fprintf(stderr, "[BUG]: reading from addr==0xFFFFFFFF is likely a bug\n");
- if (asic->reg_funcs.write_reg)
- return asic->reg_funcs.write_reg(asic, addr, value, type);
-
// lop off top bits in no-kernel mode
if (asic->options.no_kernel)
addr &= 0xFFFFFF;
diff --git a/src/lib/mmio.c b/src/lib/mmio.c
index 518d230..f5df382 100644
--- a/src/lib/mmio.c
+++ b/src/lib/mmio.c
@@ -37,7 +37,7 @@ uint32_t umr_read_reg_by_name_by_ip(struct umr_asic *asic, char *ip, char *name)
struct umr_reg *reg;
reg = umr_find_reg_data_by_ip(asic, ip, name);
if (reg)
- return umr_read_reg(asic, reg->addr * (reg->type == REG_MMIO ? 4 : 1), reg->type);
+ return asic->reg_funcs.read_reg(asic, reg->addr * (reg->type == REG_MMIO ? 4 : 1), reg->type);
else
return 0;
}
@@ -66,7 +66,7 @@ int umr_write_reg_by_name_by_ip(struct umr_asic *asic, char *ip, char *name, uin
struct umr_reg *reg;
reg = umr_find_reg_data_by_ip(asic, ip, name);
if (reg)
- return umr_write_reg(asic, reg->addr * (reg->type == REG_MMIO ? 4 : 1), value, reg->type);
+ return asic->reg_funcs.write_reg(asic, reg->addr * (reg->type == REG_MMIO ? 4 : 1), value, reg->type);
else
return -1;
}