在 2025/3/24 下午5:37, Bibo Mao 写道:
> 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(-)
Reviewed-by: Song Gao <gaosong@loongson.cn>
Thanks.
Song Gao
> diff --git a/hw/intc/loongarch_pch_pic.c b/hw/intc/loongarch_pch_pic.c
> index 4c845ba5e9..a2d9930ac9 100644
> --- a/hw/intc/loongarch_pch_pic.c
> +++ b/hw/intc/loongarch_pch_pic.c
> @@ -208,19 +208,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:
> @@ -236,21 +236,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:
> diff --git a/include/hw/intc/loongarch_pic_common.h b/include/hw/intc/loongarch_pic_common.h
> index b33bebb129..ef6edc15bf 100644
> --- a/include/hw/intc/loongarch_pic_common.h
> +++ b/include/hw/intc/loongarch_pic_common.h
> @@ -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)