On 09/11/2022 17:00, Peter Maydell wrote:
This patchset converts the ps2 keyboard and mouse devices to 3-phase
reset. The rationale here is that it would be nice to get rid of the
device_class_set_parent_reset() function, which is used by
legacy-reset subclasses which want to chain to their parent's reset
function. There aren't very many of these devices in total, and if we
convert them all to 3-phase reset they can use the 3-phase-reset
equivalent (resettable_class_set_parent_phases()). Eventually this
will then let us simplify the transitional code for handling old-style
device reset.
This is one of a number of patchsets to do this that I'm planning to
write and send out over the next few weeks. It's all 8.0 material.
thanks
-- PMM
Peter Maydell (2):
hw/input/ps2: Convert TYPE_PS2_DEVICE to 3-phase reset
hw/input/ps2.c: Convert TYPE_PS2_{KBD,MOUSE}_DEVICE to 3-phase reset
include/hw/input/ps2.h | 2 +-
hw/input/ps2.c | 45 +++++++++++++++++++++++++++++-------------
2 files changed, 32 insertions(+), 15 deletions(-)
I haven't used the new ResettableClass myself previously, however it seems to match
the excellent documentation at https://qemu.readthedocs.io/en/latest/devel/reset.html
so feel free to add my Acked-by tag.
One part that did stand out to me in the docs is the part that reads "For now
migration of a device or bus in reset is not supported. Care must be taken not to
delay resettable_release_reset() after its resettable_assert_reset() counterpart". Is
this still a valid concern and something we need to think about? I'm thinking about
if a guest triggers a SCSI bus or PCI bus reset for example.
ATB,
Mark.