On Fri, 12 Jul 2024 12:08:11 +0100
Jonathan Cameron <jonathan.came...@huawei.com> wrote:

> Enable ACPI table creation for PCI Expander Bridges to be independent
> of PCI internals.  Note that the UID is currently the PCI bus number.
> This is motivated by the forthcoming ACPI Generic Port SRAT entries
> which can be made completely independent of PCI internals.
> 
> Suggested-by: Igor Mammedov <imamm...@redhat.com>
> Tested-by: "Huang, Ying" <ying.hu...@intel.com>
> Signed-off-by: Jonathan Cameron <jonathan.came...@huawei.com>
> 

Reviewed-by: Igor Mammedov <imamm...@redhat.com>

> ---
> v5: Add missing property description.
> ---
>  hw/pci-bridge/pci_expander_bridge.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/hw/pci-bridge/pci_expander_bridge.c 
> b/hw/pci-bridge/pci_expander_bridge.c
> index 0411ad31ea..b94cb85cfb 100644
> --- a/hw/pci-bridge/pci_expander_bridge.c
> +++ b/hw/pci-bridge/pci_expander_bridge.c
> @@ -85,12 +85,25 @@ static uint16_t pxb_bus_numa_node(PCIBus *bus)
>      return pxb->numa_node;
>  }
>  
> +static void prop_pxb_uid_get(Object *obj, Visitor *v, const char *name,
> +                             void *opaque, Error **errp)
> +{
> +    uint32_t uid = pci_bus_num(PCI_BUS(obj));
> +
> +    visit_type_uint32(v, name, &uid, errp);
> +}
> +
>  static void pxb_bus_class_init(ObjectClass *class, void *data)
>  {
>      PCIBusClass *pbc = PCI_BUS_CLASS(class);
>  
>      pbc->bus_num = pxb_bus_num;
>      pbc->numa_node = pxb_bus_numa_node;
> +
> +    object_class_property_add(class, "acpi_uid", "uint32",
> +                              prop_pxb_uid_get, NULL, NULL, NULL);
> +    object_class_property_set_description(class, "acpi_uid",
> +        "ACPI Unique ID used to distinguish this PCI Host Bridge / 
> ACPI00016");
>  }
>  
>  static const TypeInfo pxb_bus_info = {


Reply via email to