Skip to content
  • Jonathan Cameron's avatar
    c28db9e0
    hw/pci-bridge: Make PCIe and CXL PXB Devices inherit from TYPE_PXB_DEV · c28db9e0
    Jonathan Cameron authored
    
    
    Previously, PXB_CXL_DEVICE, PXB_PCIE_DEVICE and PXB_DEVICE all
    have PCI_DEVICE as their direct parent but share a common state
    struct PXBDev. convert_to_pxb() is used to get the PXBDev
    instance from which ever of these types it is called on.
    
    This patch switches to an explicit hierarchy based on shared
    functionality.  To allow use of OBJECT_DECLARE_SIMPLE_TYPE()
    whilst minimizing code changes, all types are renamed to have
    the postfix _DEV rather than _DEVICE.  The new heirarchy
    has PXB_CXL_DEV with parent PXB_PCIE_DEV which in turn
    has parent PXB_DEV which continues to have parent PCI_DEVICE.
    
    This allows simple use of PXB_DEV() etc rather than a custom function
    + removal of duplicated properties and moving the CXL specific
    elements out of struct PXBDev.
    
    Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
    Message-Id: <20230420142750.6950-3-Jonathan.Cameron@huawei.com>
    Reviewed-by: default avatarThomas Huth <thuth@redhat.com>
    Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    c28db9e0
    hw/pci-bridge: Make PCIe and CXL PXB Devices inherit from TYPE_PXB_DEV
    Jonathan Cameron authored
    
    
    Previously, PXB_CXL_DEVICE, PXB_PCIE_DEVICE and PXB_DEVICE all
    have PCI_DEVICE as their direct parent but share a common state
    struct PXBDev. convert_to_pxb() is used to get the PXBDev
    instance from which ever of these types it is called on.
    
    This patch switches to an explicit hierarchy based on shared
    functionality.  To allow use of OBJECT_DECLARE_SIMPLE_TYPE()
    whilst minimizing code changes, all types are renamed to have
    the postfix _DEV rather than _DEVICE.  The new heirarchy
    has PXB_CXL_DEV with parent PXB_PCIE_DEV which in turn
    has parent PXB_DEV which continues to have parent PCI_DEVICE.
    
    This allows simple use of PXB_DEV() etc rather than a custom function
    + removal of duplicated properties and moving the CXL specific
    elements out of struct PXBDev.
    
    Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
    Message-Id: <20230420142750.6950-3-Jonathan.Cameron@huawei.com>
    Reviewed-by: default avatarThomas Huth <thuth@redhat.com>
    Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
Loading