On 25/11/22 14:45, Greg Kurz wrote:
On Fri, 25 Nov 2022 13:24:00 +0100
Cédric Le Goater <c...@kaod.org> wrote:
On 11/25/22 12:52, Peter Maydell wrote:
The realize method for the TYPE_ICS class uses qemu_register_reset()
to register a reset handler, as a workaround for the fact that
currently objects which directly inherit from TYPE_DEVICE don't get
automatically reset. However, the reset function directly calls
ics_reset(), which is the function that implements the legacy reset
method. This means that only the parent class's data gets reset, and
a subclass which also needs to handle reset, like TYPE_PHB3_MSI, has
to register its own reset function.
Make the TYPE_ICS reset function call device_cold_reset() instead:
this will handle reset for both the parent class and the subclass,
and will work whether the classes are using legacy reset or 3-phase
reset. This allows us to remove the reset function that the subclass
currently has to set up.
Nice !
Seconded.
Thirded :)
Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Reviewed-by: Greg Kurz <gr...@kaod.org>
Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>
Reviewed-by: Cédric Le Goater <c...@kaod.org>