},
};
-static void icp_reset(DeviceState *dev)
+static void icp_reset_handler(void *dev)
{
ICPState *icp = ICP(dev);
/* Make all outputs are deasserted */
qemu_set_irq(icp->output, 0);
-}
-static void icp_reset_handler(void *dev)
-{
- DeviceClass *dc = DEVICE_GET_CLASS(dev);
-
- dc->reset(dev);
+ if (kvm_irqchip_in_kernel()) {
+ icp_set_kvm_state(ICP(dev));
+ }
}
static void icp_realize(DeviceState *dev, Error **errp)
dc->realize = icp_realize;
dc->unrealize = icp_unrealize;
- dc->reset = icp_reset;
}
static const TypeInfo icp_info = {
return 0;
}
-static void icp_kvm_reset(DeviceState *dev)
-{
- ICPStateClass *icpc = ICP_GET_CLASS(dev);
-
- icpc->parent_reset(dev);
-
- icp_set_kvm_state(ICP(dev));
-}
-
static void icp_kvm_realize(DeviceState *dev, Error **errp)
{
ICPState *icp = ICP(dev);
device_class_set_parent_realize(dc, icp_kvm_realize,
&icpc->parent_realize);
- device_class_set_parent_reset(dc, icp_kvm_reset,
- &icpc->parent_reset);
}
static const TypeInfo icp_kvm_info = {