qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 2/6] hw/acpi/viot: move the individual PCI host bridge entry


From: Ani Sinha
Subject: Re: [PATCH 2/6] hw/acpi/viot: move the individual PCI host bridge entry generation to a new function
Date: Wed, 18 May 2022 17:19:18 +0530

On Wed, May 18, 2022 at 4:38 PM Mark Cave-Ayland
<mark.cave-ayland@ilande.co.uk> wrote:
>
> Instead of generating each table entry inline, move the individual PCI host 
> bridge
> table entry generation to a separate build_pci_host_range() function.
>
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>

Reviewed-by: Ani Sinha <ani@anisinha.ca>


> ---
>  hw/acpi/viot.c | 48 +++++++++++++++++++++++++++---------------------
>  1 file changed, 27 insertions(+), 21 deletions(-)
>
> diff --git a/hw/acpi/viot.c b/hw/acpi/viot.c
> index 2897aa8c88..662124812f 100644
> --- a/hw/acpi/viot.c
> +++ b/hw/acpi/viot.c
> @@ -16,6 +16,31 @@ struct viot_pci_ranges {
>      uint16_t output_node;
>  };
>
> +static void build_pci_host_range(GArray *table_data, int min_bus, int 
> max_bus,
> +                                 uint16_t output_node)
> +{
> +    /* Type */
> +    build_append_int_noprefix(table_data, 1 /* PCI range */, 1);
> +    /* Reserved */
> +    build_append_int_noprefix(table_data, 0, 1);
> +    /* Length */
> +    build_append_int_noprefix(table_data, 24, 2);
> +    /* Endpoint start */
> +    build_append_int_noprefix(table_data, PCI_BUILD_BDF(min_bus, 0), 4);
> +    /* PCI Segment start */
> +    build_append_int_noprefix(table_data, 0, 2);
> +    /* PCI Segment end */
> +    build_append_int_noprefix(table_data, 0, 2);
> +    /* PCI BDF start */
> +    build_append_int_noprefix(table_data, PCI_BUILD_BDF(min_bus, 0), 2);
> +    /* PCI BDF end */
> +    build_append_int_noprefix(table_data, PCI_BUILD_BDF(max_bus, 0xff), 2);
> +    /* Output node */
> +    build_append_int_noprefix(table_data, output_node, 2);
> +    /* Reserved */
> +    build_append_int_noprefix(table_data, 0, 6);
> +}
> +
>  /* Build PCI range for a given PCI host bridge */
>  static int pci_host_bridges(Object *obj, void *opaque)
>  {
> @@ -30,27 +55,8 @@ static int pci_host_bridges(Object *obj, void *opaque)
>
>              pci_bus_range(bus, &min_bus, &max_bus);
>
> -            /* Type */
> -            build_append_int_noprefix(blob, 1 /* PCI range */, 1);
> -            /* Reserved */
> -            build_append_int_noprefix(blob, 0, 1);
> -            /* Length */
> -            build_append_int_noprefix(blob, 24, 2);
> -            /* Endpoint start */
> -            build_append_int_noprefix(blob, PCI_BUILD_BDF(min_bus, 0), 4);
> -            /* PCI Segment start */
> -            build_append_int_noprefix(blob, 0, 2);
> -            /* PCI Segment end */
> -            build_append_int_noprefix(blob, 0, 2);
> -            /* PCI BDF start */
> -            build_append_int_noprefix(blob, PCI_BUILD_BDF(min_bus, 0), 2);
> -            /* PCI BDF end */
> -            build_append_int_noprefix(blob, PCI_BUILD_BDF(max_bus, 0xff), 2);
> -            /* Output node */
> -            build_append_int_noprefix(blob, pci_ranges->output_node, 2);
> -            /* Reserved */
> -            build_append_int_noprefix(blob, 0, 6);
> -
> +            build_pci_host_range(blob, min_bus, max_bus,
> +                                 pci_ranges->output_node);
>              pci_ranges->count++;
>          }
>      }
> --
> 2.20.1
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]