Re: [PATCH v2 00/40] PS2 device QOMification - part 2
On 12/07/2022 22:52, Mark Cave-Ayland wrote: Here is the follow-on series from part 1 which completes the work to remove the legacy global device init functions for PS2 devices. Now that part 1 has been applied, the hard part to remove the PS2 function callback and argument has been completed and all that remains is to improve the PS2 device QOMification to allow the legacy PS2 functions to be removed. Patches 1-11 update the pl050 device to remove the use of ps2_kbd_init() and ps2_mouse_init(), whilst patches 12-34 make some more involved changes to the lasips2 device (in particular completing the LASIPS2Port abstraction) before doing the same. Finally patches 35-40 complete the process for the pckbd (I8042 and I8042_MMIO devices) before removing the now unused ps2_kbd_init(), ps2_mouse_init() and i8042_mm_init() functions. Note that this series is a migration break for the HPPA B160L and MIPS magnum machines: I've had agreement from both Helge and Hervé that this is worth doing to allow the use of the DeviceClass vmsd property to set the VMStateDescription rather than manually calling vmstate_register(). Signed-off-by: Mark Cave-Ayland Patches still requiring review for updated commit messages (no code changes from v1): 27, 28 and 34 v2: - Rebase onto master - Add A-B and R-B tags from Helge and Peter - s/jazz/magnum/ for consistency in commit message for patch 35 - Update commit messages in patches 27 and 28 to clarify why the int_status bitmap isn't immediately added to the vmstate_lasips2 VMStateDescription - Update commit message in patch 34 to detail the extra changes to the vmstate_lasips2 VMStateDescription Mark Cave-Ayland (40): pl050: move PL050State from pl050.c to new pl050.h header file pl050: rename pl050_keyboard_init() to pl050_kbd_init() pl050: change PL050State dev pointer from void to PS2State pl050: introduce new PL050_KBD_DEVICE QOM type pl050: introduce new PL050_MOUSE_DEVICE QOM type pl050: move logic from pl050_realize() to pl050_init() pl050: introduce PL050DeviceClass for the PL050 device pl050: introduce pl050_kbd_class_init() and pl050_kbd_realize() pl050: introduce pl050_mouse_class_init() and pl050_mouse_realize() pl050: don't use legacy ps2_kbd_init() function pl050: don't use legacy ps2_mouse_init() function lasips2: don't use vmstate_register() in lasips2_realize() lasips2: remove the qdev base property and the lasips2_properties array lasips2: remove legacy lasips2_initfn() function lasips2: change LASIPS2State dev pointer from void to PS2State lasips2: QOMify LASIPS2Port lasips2: introduce new LASIPS2_KBD_PORT QOM type lasips2: introduce new LASIPS2_MOUSE_PORT QOM type lasips2: move keyboard port initialisation to new lasips2_kbd_port_init() function lasips2: move mouse port initialisation to new lasips2_mouse_port_init() function lasips2: introduce lasips2_kbd_port_class_init() and lasips2_kbd_port_realize() lasips2: introduce lasips2_mouse_port_class_init() and lasips2_mouse_port_realize() lasips2: rename LASIPS2Port irq field to birq lasips2: introduce port IRQ and new lasips2_port_init() function lasips2: introduce LASIPS2PortDeviceClass for the LASIPS2_PORT device lasips2: add named input gpio to port for downstream PS2 device IRQ lasips2: add named input gpio to handle incoming port IRQs lasips2: switch to using port-based IRQs lasips2: rename LASIPS2Port parent pointer to lasips2 lasips2: standardise on lp name for LASIPS2Port variables lasips2: switch register memory region to DEVICE_BIG_ENDIAN lasips2: don't use legacy ps2_kbd_init() function lasips2: don't use legacy ps2_mouse_init() function lasips2: update VMStateDescription for LASIPS2 device pckbd: introduce new vmstate_kbd_mmio VMStateDescription for the I8042_MMIO device pckbd: don't use legacy ps2_kbd_init() function ps2: remove unused legacy ps2_kbd_init() function pckbd: don't use legacy ps2_mouse_init() function ps2: remove unused legacy ps2_mouse_init() function pckbd: remove legacy i8042_mm_init() function hw/hppa/machine.c | 7 +- hw/input/lasips2.c | 320 ++--- hw/input/pckbd.c | 82 ++ hw/input/pl050.c | 112 - hw/input/ps2.c | 26 --- hw/input/trace-events | 2 - hw/mips/jazz.c | 13 +- include/hw/input/i8042.h | 7 +- include/hw/input/lasips2.h | 57 +-- include/hw/input/pl050.h | 59 +++ include/hw/input/ps2.h | 2 - 11 files changed, 466 insertions(+), 221 deletions(-) create mode 100644 include/hw/input/pl050.h I've queued this via my qemu-sparc branch. ATB, Mark.
Re: [PATCH v2 00/40] PS2 device QOMification - part 2
On 12/7/22 23:52, Mark Cave-Ayland wrote: Here is the follow-on series from part 1 which completes the work to remove the legacy global device init functions for PS2 devices. Now that part 1 has been applied, the hard part to remove the PS2 function callback and argument has been completed and all that remains is to improve the PS2 device QOMification to allow the legacy PS2 functions to be removed. Patches 1-11 update the pl050 device to remove the use of ps2_kbd_init() and ps2_mouse_init(), whilst patches 12-34 make some more involved changes to the lasips2 device (in particular completing the LASIPS2Port abstraction) before doing the same. Finally patches 35-40 complete the process for the pckbd (I8042 and I8042_MMIO devices) before removing the now unused ps2_kbd_init(), ps2_mouse_init() and i8042_mm_init() functions. Note that this series is a migration break for the HPPA B160L and MIPS magnum machines: I've had agreement from both Helge and Hervé that this is worth doing to allow the use of the DeviceClass vmsd property to set the VMStateDescription rather than manually calling vmstate_register(). Signed-off-by: Mark Cave-Ayland Patches still requiring review for updated commit messages (no code changes from v1): 27, 28 and 34 v2: - Rebase onto master - Add A-B and R-B tags from Helge and Peter - s/jazz/magnum/ for consistency in commit message for patch 35 - Update commit messages in patches 27 and 28 to clarify why the int_status bitmap isn't immediately added to the vmstate_lasips2 VMStateDescription - Update commit message in patch 34 to detail the extra changes to the vmstate_lasips2 VMStateDescription Series: Reviewed-by: Philippe Mathieu-Daudé
[PATCH v2 00/40] PS2 device QOMification - part 2
Here is the follow-on series from part 1 which completes the work to remove the legacy global device init functions for PS2 devices. Now that part 1 has been applied, the hard part to remove the PS2 function callback and argument has been completed and all that remains is to improve the PS2 device QOMification to allow the legacy PS2 functions to be removed. Patches 1-11 update the pl050 device to remove the use of ps2_kbd_init() and ps2_mouse_init(), whilst patches 12-34 make some more involved changes to the lasips2 device (in particular completing the LASIPS2Port abstraction) before doing the same. Finally patches 35-40 complete the process for the pckbd (I8042 and I8042_MMIO devices) before removing the now unused ps2_kbd_init(), ps2_mouse_init() and i8042_mm_init() functions. Note that this series is a migration break for the HPPA B160L and MIPS magnum machines: I've had agreement from both Helge and Hervé that this is worth doing to allow the use of the DeviceClass vmsd property to set the VMStateDescription rather than manually calling vmstate_register(). Signed-off-by: Mark Cave-Ayland Patches still requiring review for updated commit messages (no code changes from v1): 27, 28 and 34 v2: - Rebase onto master - Add A-B and R-B tags from Helge and Peter - s/jazz/magnum/ for consistency in commit message for patch 35 - Update commit messages in patches 27 and 28 to clarify why the int_status bitmap isn't immediately added to the vmstate_lasips2 VMStateDescription - Update commit message in patch 34 to detail the extra changes to the vmstate_lasips2 VMStateDescription Mark Cave-Ayland (40): pl050: move PL050State from pl050.c to new pl050.h header file pl050: rename pl050_keyboard_init() to pl050_kbd_init() pl050: change PL050State dev pointer from void to PS2State pl050: introduce new PL050_KBD_DEVICE QOM type pl050: introduce new PL050_MOUSE_DEVICE QOM type pl050: move logic from pl050_realize() to pl050_init() pl050: introduce PL050DeviceClass for the PL050 device pl050: introduce pl050_kbd_class_init() and pl050_kbd_realize() pl050: introduce pl050_mouse_class_init() and pl050_mouse_realize() pl050: don't use legacy ps2_kbd_init() function pl050: don't use legacy ps2_mouse_init() function lasips2: don't use vmstate_register() in lasips2_realize() lasips2: remove the qdev base property and the lasips2_properties array lasips2: remove legacy lasips2_initfn() function lasips2: change LASIPS2State dev pointer from void to PS2State lasips2: QOMify LASIPS2Port lasips2: introduce new LASIPS2_KBD_PORT QOM type lasips2: introduce new LASIPS2_MOUSE_PORT QOM type lasips2: move keyboard port initialisation to new lasips2_kbd_port_init() function lasips2: move mouse port initialisation to new lasips2_mouse_port_init() function lasips2: introduce lasips2_kbd_port_class_init() and lasips2_kbd_port_realize() lasips2: introduce lasips2_mouse_port_class_init() and lasips2_mouse_port_realize() lasips2: rename LASIPS2Port irq field to birq lasips2: introduce port IRQ and new lasips2_port_init() function lasips2: introduce LASIPS2PortDeviceClass for the LASIPS2_PORT device lasips2: add named input gpio to port for downstream PS2 device IRQ lasips2: add named input gpio to handle incoming port IRQs lasips2: switch to using port-based IRQs lasips2: rename LASIPS2Port parent pointer to lasips2 lasips2: standardise on lp name for LASIPS2Port variables lasips2: switch register memory region to DEVICE_BIG_ENDIAN lasips2: don't use legacy ps2_kbd_init() function lasips2: don't use legacy ps2_mouse_init() function lasips2: update VMStateDescription for LASIPS2 device pckbd: introduce new vmstate_kbd_mmio VMStateDescription for the I8042_MMIO device pckbd: don't use legacy ps2_kbd_init() function ps2: remove unused legacy ps2_kbd_init() function pckbd: don't use legacy ps2_mouse_init() function ps2: remove unused legacy ps2_mouse_init() function pckbd: remove legacy i8042_mm_init() function hw/hppa/machine.c | 7 +- hw/input/lasips2.c | 320 ++--- hw/input/pckbd.c | 82 ++ hw/input/pl050.c | 112 - hw/input/ps2.c | 26 --- hw/input/trace-events | 2 - hw/mips/jazz.c | 13 +- include/hw/input/i8042.h | 7 +- include/hw/input/lasips2.h | 57 +-- include/hw/input/pl050.h | 59 +++ include/hw/input/ps2.h | 2 - 11 files changed, 466 insertions(+), 221 deletions(-) create mode 100644 include/hw/input/pl050.h -- 2.30.2