diff --git a/hw/sd/aspeed_sdhci.c b/hw/sd/aspeed_sdhci.c index 6684f8221a..d93093c4df 100644 --- a/hw/sd/aspeed_sdhci.c +++ b/hw/sd/aspeed_sdhci.c @@ -182,9 +182,9 @@ static void aspeed_sdhci_realize(DeviceState *dev, Error **errp) } } -static void aspeed_sdhci_reset(DeviceState *dev) +static void aspeed_sdhci_reset_hold(Object *obj, ResetType type) { - AspeedSDHCIState *sdhci = ASPEED_SDHCI(dev); + AspeedSDHCIState *sdhci = ASPEED_SDHCI(obj); memset(sdhci->regs, 0, ASPEED_SDHCI_REG_SIZE); @@ -211,9 +211,10 @@ static const Property aspeed_sdhci_properties[] = { static void aspeed_sdhci_class_init(ObjectClass *classp, const void *data) { DeviceClass *dc = DEVICE_CLASS(classp); + ResettableClass *rc = RESETTABLE_CLASS(classp); dc->realize = aspeed_sdhci_realize; - device_class_set_legacy_reset(dc, aspeed_sdhci_reset); + rc->phases.hold = aspeed_sdhci_reset_hold; dc->vmsd = &vmstate_aspeed_sdhci; device_class_set_props(dc, aspeed_sdhci_properties); }