Re: [PATCH v2 00/40] PS2 device QOMification - part 2

2022-07-18 Thread Mark Cave-Ayland

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

2022-07-12 Thread Philippe Mathieu-Daudé via

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

2022-07-12 Thread Mark Cave-Ayland
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