On [2019 Jul 05] Fri 22:24:58, Philippe Mathieu-Daudé wrote: > In the next commit we will implement the write_with_attrs() > handler. To avoid using different APIs, convert the read() > handler first. > > Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com>
Reviewed-by: Francisco Iglesias <frasse.igles...@gmail.com> > --- > v4: Do not ignore lqspi_read() return value (Francisco) > --- > hw/ssi/xilinx_spips.c | 23 +++++++++++------------ > 1 file changed, 11 insertions(+), 12 deletions(-) > > diff --git a/hw/ssi/xilinx_spips.c b/hw/ssi/xilinx_spips.c > index 8115bb6d46..b7c7275dbe 100644 > --- a/hw/ssi/xilinx_spips.c > +++ b/hw/ssi/xilinx_spips.c > @@ -1202,27 +1202,26 @@ static void lqspi_load_cache(void *opaque, hwaddr > addr) > } > } > > -static uint64_t > -lqspi_read(void *opaque, hwaddr addr, unsigned int size) > +static MemTxResult lqspi_read(void *opaque, hwaddr addr, uint64_t *value, > + unsigned size, MemTxAttrs attrs) > { > - XilinxQSPIPS *q = opaque; > - uint32_t ret; > + XilinxQSPIPS *q = XILINX_QSPIPS(opaque); > > if (addr >= q->lqspi_cached_addr && > addr <= q->lqspi_cached_addr + LQSPI_CACHE_SIZE - 4) { > uint8_t *retp = &q->lqspi_buf[addr - q->lqspi_cached_addr]; > - ret = cpu_to_le32(*(uint32_t *)retp); > - DB_PRINT_L(1, "addr: %08x, data: %08x\n", (unsigned)addr, > - (unsigned)ret); > - return ret; > - } else { > - lqspi_load_cache(opaque, addr); > - return lqspi_read(opaque, addr, size); > + *value = cpu_to_le32(*(uint32_t *)retp); > + DB_PRINT_L(1, "addr: %08" HWADDR_PRIx ", data: %08" PRIx64 "\n", > + addr, *value); > + return MEMTX_OK; > } > + > + lqspi_load_cache(opaque, addr); > + return lqspi_read(opaque, addr, value, size, attrs); > } > > static const MemoryRegionOps lqspi_ops = { > - .read = lqspi_read, > + .read_with_attrs = lqspi_read, > .endianness = DEVICE_NATIVE_ENDIAN, > .valid = { > .min_access_size = 1, > -- > 2.20.1 >