From b63b7b0b6c9bed8e1a316f3838aab7db2e8f2037 Mon Sep 17 00:00:00 2001 From: Song Gao Date: Tue, 28 May 2024 16:38:54 +0800 Subject: [PATCH 29/78] hw/loongarch/virt: Use MemTxAttrs interface for misc ops Use MemTxAttrs interface read_with_attrs/write_with_attrs for virt_iocsr_misc_ops. Signed-off-by: Song Gao Reviewed-by: Bibo Mao Message-Id: <20240528083855.1912757-3-gaosong@loongson.cn> Signed-off-by: Xianglai Li --- hw/loongarch/virt.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/hw/loongarch/virt.c b/hw/loongarch/virt.c index f7874bccf9..12816c6023 100644 --- a/hw/loongarch/virt.c +++ b/hw/loongarch/virt.c @@ -915,8 +915,8 @@ static void virt_firmware_init(LoongArchVirtMachineState *lvms) } -static MemTxResult loongarch_qemu_write(void *opaque, hwaddr addr, uint64_t val, - unsigned size, MemTxAttrs attrs) +static MemTxResult virt_iocsr_misc_write(void *opaque, hwaddr addr, uint64_t val, + unsigned size, MemTxAttrs attrs) { LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(opaque); uint64_t features; @@ -945,9 +945,9 @@ static MemTxResult loongarch_qemu_write(void *opaque, hwaddr addr, uint64_t val, return MEMTX_OK; } -static MemTxResult loongarch_qemu_read(void *opaque, hwaddr addr, - uint64_t *data, - unsigned size, MemTxAttrs attrs) +static MemTxResult virt_iocsr_misc_read(void *opaque, hwaddr addr, + uint64_t *data, + unsigned size, MemTxAttrs attrs) { LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(opaque); uint64_t ret = 0; @@ -962,7 +962,7 @@ static MemTxResult loongarch_qemu_read(void *opaque, hwaddr addr, if (kvm_enabled()) { ret |= BIT(IOCSRF_VM); } - return ret; + break; case VENDOR_REG: ret = 0x6e6f73676e6f6f4cULL; /* "Loongson" */ break; @@ -986,6 +986,8 @@ static MemTxResult loongarch_qemu_read(void *opaque, hwaddr addr, ret |= BIT_ULL(IOCSRM_EXTIOI_INT_ENCODE); } break; + default: + g_assert_not_reached(); } *data = ret; @@ -993,8 +995,8 @@ static MemTxResult loongarch_qemu_read(void *opaque, hwaddr addr, } static const MemoryRegionOps virt_iocsr_misc_ops = { - .read_with_attrs = loongarch_qemu_read, - .write_with_attrs = loongarch_qemu_write, + .read_with_attrs = virt_iocsr_misc_read, + .write_with_attrs = virt_iocsr_misc_write, .endianness = DEVICE_LITTLE_ENDIAN, .valid = { .min_access_size = 4, -- 2.39.1