>-static void amdvi_mmio_trace(hwaddr addr, unsigned size)
>+static inline uint8_t amdvi_mmio_get_index(hwaddr addr)
> {
>     uint8_t index = (addr & ~0x2000) / 8;
>
>    if ((addr & 0x2000)) {
>         /* high table */
>         index = index >= AMDVI_MMIO_REGS_HIGH ? AMDVI_MMIO_REGS_HIGH : index;
>-        trace_amdvi_mmio_read(amdvi_mmio_high[index], addr, size, addr & 
>~0x07);
>     } else {
>         index = index >= AMDVI_MMIO_REGS_LOW ? AMDVI_MMIO_REGS_LOW : index;
>-        trace_amdvi_mmio_read(amdvi_mmio_low[index], addr, size, addr & 
>~0x07);
>     }
>+
>+    return index;
>+}
>+
>+static void amdvi_mmio_trace_read(hwaddr addr, unsigned size)
>+{
>+    uint8_t index = amdvi_mmio_get_index(addr);
>+    trace_amdvi_mmio_read(amdvi_mmio_low[index], addr, size, addr & ~0x07);
>+}
>+
>+static void amdvi_mmio_trace_write(hwaddr addr, unsigned size, uint64_t val)
>+{
>+    uint8_t index = amdvi_mmio_get_index(addr);
>+    trace_amdvi_mmio_write(amdvi_mmio_low[index], addr, size, val,

Shouldn't you be picking between amdvi_mmio_low and amdvi_mmio_high in the
above 2 fuctions depending on the addr value?

Reply via email to