On Thu, Apr 20, 2023 at 03:27:48PM +0100, Jonathan Cameron wrote:
> Peter Maydell highlighted an incorrect conversion to TYPE_PXB_DEVICE from
> a device that didn't have that a an ancestor type. PXB_DEV() used instead of
> PXB_CXL_DEV()/
>
> https://lore.kernel.org/qemu-devel/cafeaca-+de+eelce4ysaw1o-qyd_4w1ra05mgdsu_-3a6d9...@mail.gmail.com/
>
> During the discussion it became clear that the inheritance of the various
> TYPE_PXB*_DEVICE was unusual. This patchset first provides the minimal
> fix then cleans up the inheritance of types based on functionality.
>
> There is also a rename to TYPE_PXB*_DEV to allow removal of some boilerplate.
>
> Before this series
> TYPE_PXB_DEVICE, TYPE_PXB_PCIE_DEVICE and TYPE_PXB_CXL_DEVICE all
> had TYPE_PCI_DEVICE as their direct parent though they shared a common
> struct PXBDev for their state. As a result this state contained
> some data that was irrelevant for some the types.
>
> This series changes to
> TYPE_PXB_CXL_DEV has a parent of TYPE_PXB_PCIE_DEV
> TYPE_PXB_PCIE_DEV has a parent of TYPE_PXB_DEV
> TYPE_PXB_DEV continues to have a parent of TYPE_PCI_DEVICE.
>
> Each of the TYPE_PXB*_DEV has a state structure adding those elements
> to their parent that they need. This also allowed dropping a wrapping
> structure for the CXL state as the PXBCXLDev structure already provides
> the equivalent grouping.
>
> Patches are similar to those posted in the thread but rebased on v8.0.0.
this conflicts with
Revert "hw/pxb-cxl: Support passthrough HDM Decoders unless overridden"
I think you acked that one?
> Jonathan Cameron (2):
> hw/pci-bridge: pci_expander_bridge fix type in pxb_cxl_dev_reset()
> hw/pci-bridge: Make PCIe and CXL PXB Devices inherit from TYPE_PXB_DEV
>
> hw/acpi/cxl.c | 11 +++---
> hw/cxl/cxl-host.c | 4 +-
> hw/pci-bridge/pci_expander_bridge.c | 61 ++++++++++-------------------
> include/hw/cxl/cxl.h | 4 +-
> include/hw/pci/pci_bridge.h | 28 +++++++++----
> 5 files changed, 50 insertions(+), 58 deletions(-)
>
> --
> 2.37.2