@@ -196,19 +196,19 @@ static uint64_t loongarch_pch_pic_high_readw(void *opaque, hwaddr addr,
{
LoongArchPICCommonState *s = LOONGARCH_PIC_COMMON(opaque);
uint64_t val = 0;
- uint32_t offset = addr & 0xfff;
+ uint32_t offset = addr + PCH_PIC_INT_STATUS;
switch (offset) {
- case STATUS_LO_START:
+ case PCH_PIC_INT_STATUS:
val = (uint32_t)(s->intisr & (~s->int_mask));
break;
- case STATUS_HI_START:
+ case PCH_PIC_INT_STATUS + 4:
val = (s->intisr & (~s->int_mask)) >> 32;
break;
- case POL_LO_START:
+ case PCH_PIC_INT_POL:
val = (uint32_t)s->int_polarity;
break;
- case POL_HI_START:
+ case PCH_PIC_INT_POL + 4:
val = s->int_polarity >> 32;
break;
default:
@@ -224,21 +224,21 @@ static void loongarch_pch_pic_high_writew(void *opaque, hwaddr addr,
{
LoongArchPICCommonState *s = LOONGARCH_PIC_COMMON(opaque);
uint32_t offset, data = (uint32_t)value;
- offset = addr & 0xfff;
+ offset = addr + PCH_PIC_INT_STATUS;
trace_loongarch_pch_pic_high_writew(size, addr, data);
switch (offset) {
- case STATUS_LO_START:
+ case PCH_PIC_INT_STATUS:
s->intisr = get_writew_val(s->intisr, data, 0);
break;
- case STATUS_HI_START:
+ case PCH_PIC_INT_STATUS + 4:
s->intisr = get_writew_val(s->intisr, data, 1);
break;
- case POL_LO_START:
+ case PCH_PIC_INT_POL:
s->int_polarity = get_writew_val(s->int_polarity, data, 0);
break;
- case POL_HI_START:
+ case PCH_PIC_INT_POL + 4:
s->int_polarity = get_writew_val(s->int_polarity, data, 1);
break;
default:
@@ -26,11 +26,6 @@
#define PCH_PIC_INT_STATUS 0x3a0
#define PCH_PIC_INT_POL 0x3e0
-#define STATUS_LO_START 0
-#define STATUS_HI_START 0x4
-#define POL_LO_START 0x40
-#define POL_HI_START 0x44
-
#define TYPE_LOONGARCH_PIC_COMMON "loongarch_pic_common"
OBJECT_DECLARE_TYPE(LoongArchPICCommonState,
LoongArchPICCommonClass, LOONGARCH_PIC_COMMON)
The meaning of macro definition STATUS_LO_START is simliar with PCH_PIC_INT_STATUS, only that offset is different, the same for macro POL_LO_START. Now remove these duplicated macro definitions. Signed-off-by: Bibo Mao <maobibo@loongson.cn> --- hw/intc/loongarch_pch_pic.c | 20 ++++++++++---------- include/hw/intc/loongarch_pic_common.h | 5 ----- 2 files changed, 10 insertions(+), 15 deletions(-)