hw/intc/loongson_ipi: Remove property num_cpu from loongson_ipi_common

With mips64 loongson ipi, num_cpu property is used. With loongarch
ipi, num_cpu can be acquired from possible_cpu_arch_ids.

Here remove property num_cpu from loongson_ipi_common, and put it into
loongson and loongarch ipi separately.

Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Reviewed-by: Bibo Mao <maobibo@loongson.cn>
This commit is contained in:
Bibo Mao 2025-01-07 11:08:15 +08:00
parent 5b82177add
commit ce78dacf7e
3 changed files with 12 additions and 6 deletions

View file

@ -9,6 +9,7 @@
#include "hw/boards.h"
#include "qapi/error.h"
#include "hw/intc/loongarch_ipi.h"
#include "hw/qdev-properties.h"
#include "target/loongarch/cpu.h"
static AddressSpace *get_iocsr_as(CPUState *cpu)
@ -75,6 +76,10 @@ static void loongarch_ipi_realize(DeviceState *dev, Error **errp)
}
}
static const Property loongarch_ipi_properties[] = {
DEFINE_PROP_UINT32("num-cpu", LoongsonIPICommonState, num_cpu, 1),
};
static void loongarch_ipi_class_init(ObjectClass *klass, void *data)
{
LoongsonIPICommonClass *licc = LOONGSON_IPI_COMMON_CLASS(klass);
@ -83,6 +88,7 @@ static void loongarch_ipi_class_init(ObjectClass *klass, void *data)
device_class_set_parent_realize(dc, loongarch_ipi_realize,
&lic->parent_realize);
device_class_set_props(dc, loongarch_ipi_properties);
licc->get_iocsr_as = get_iocsr_as;
licc->cpu_by_arch_id = loongarch_cpu_by_arch_id;
}

View file

@ -7,6 +7,7 @@
#include "qemu/osdep.h"
#include "hw/intc/loongson_ipi.h"
#include "hw/qdev-properties.h"
#include "qapi/error.h"
#include "target/mips/cpu.h"
@ -75,6 +76,10 @@ static void loongson_ipi_unrealize(DeviceState *dev)
k->parent_unrealize(dev);
}
static const Property loongson_ipi_properties[] = {
DEFINE_PROP_UINT32("num-cpu", LoongsonIPICommonState, num_cpu, 1),
};
static void loongson_ipi_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
@ -85,6 +90,7 @@ static void loongson_ipi_class_init(ObjectClass *klass, void *data)
&lic->parent_realize);
device_class_set_parent_unrealize(dc, loongson_ipi_unrealize,
&lic->parent_unrealize);
device_class_set_props(dc, loongson_ipi_properties);
licc->get_iocsr_as = get_iocsr_as;
licc->cpu_by_arch_id = cpu_by_arch_id;
}

View file

@ -9,7 +9,6 @@
#include "hw/sysbus.h"
#include "hw/intc/loongson_ipi_common.h"
#include "hw/irq.h"
#include "hw/qdev-properties.h"
#include "qemu/log.h"
#include "migration/vmstate.h"
#include "trace.h"
@ -301,10 +300,6 @@ static const VMStateDescription vmstate_loongson_ipi_common = {
}
};
static const Property ipi_common_properties[] = {
DEFINE_PROP_UINT32("num-cpu", LoongsonIPICommonState, num_cpu, 1),
};
static void loongson_ipi_common_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
@ -314,7 +309,6 @@ static void loongson_ipi_common_class_init(ObjectClass *klass, void *data)
&licc->parent_realize);
device_class_set_parent_unrealize(dc, loongson_ipi_common_unrealize,
&licc->parent_unrealize);
device_class_set_props(dc, ipi_common_properties);
dc->vmsd = &vmstate_loongson_ipi_common;
}