[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [for-4.0 PATCH v3 4/9] pcie: Add link speed and width f
From: |
Auger Eric |
Subject: |
Re: [Qemu-devel] [for-4.0 PATCH v3 4/9] pcie: Add link speed and width fields to PCIESlot |
Date: |
Thu, 6 Dec 2018 12:08:13 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.0 |
Hi,
On 12/4/18 5:26 PM, Alex Williamson wrote:
> Add fields allowing the PCIe link speed and width of a PCIESlot to
> be configured, with an instance_post_init callback on the root port
> parent class to set defaults. This allows child classes to set these
> via properties or via their own instance_init callback, without
> requiring all implementions to support arbitrary user selected values.
>
> Cc: Michael S. Tsirkin <address@hidden>
> Cc: Marcel Apfelbaum <address@hidden>
> Tested-by: Geoffrey McRae <address@hidden>
Reviewed-by: Eric Auger <address@hidden>
Thanks
Eric
> Signed-off-by: Alex Williamson <address@hidden>
> ---
> hw/pci-bridge/pcie_root_port.c | 14 ++++++++++++++
> include/hw/pci/pcie_port.h | 4 ++++
> 2 files changed, 18 insertions(+)
>
> diff --git a/hw/pci-bridge/pcie_root_port.c b/hw/pci-bridge/pcie_root_port.c
> index 45f9e8cd4a36..34ad76743c44 100644
> --- a/hw/pci-bridge/pcie_root_port.c
> +++ b/hw/pci-bridge/pcie_root_port.c
> @@ -140,6 +140,19 @@ static Property rp_props[] = {
> DEFINE_PROP_END_OF_LIST()
> };
>
> +static void rp_instance_post_init(Object *obj)
> +{
> + PCIESlot *s = PCIE_SLOT(obj);
> +
> + if (!s->speed) {
> + s->speed = QEMU_PCI_EXP_LNK_2_5GT;
> + }
> +
> + if (!s->width) {
> + s->width = QEMU_PCI_EXP_LNK_X1;
> + }
> +}
> +
> static void rp_class_init(ObjectClass *klass, void *data)
> {
> DeviceClass *dc = DEVICE_CLASS(klass);
> @@ -157,6 +170,7 @@ static void rp_class_init(ObjectClass *klass, void *data)
> static const TypeInfo rp_info = {
> .name = TYPE_PCIE_ROOT_PORT,
> .parent = TYPE_PCIE_SLOT,
> + .instance_post_init = rp_instance_post_init,
> .class_init = rp_class_init,
> .abstract = true,
> .class_size = sizeof(PCIERootPortClass),
> diff --git a/include/hw/pci/pcie_port.h b/include/hw/pci/pcie_port.h
> index 0736014bfdb4..df242a0cafff 100644
> --- a/include/hw/pci/pcie_port.h
> +++ b/include/hw/pci/pcie_port.h
> @@ -49,6 +49,10 @@ struct PCIESlot {
> /* pci express switch port with slot */
> uint8_t chassis;
> uint16_t slot;
> +
> + PCIExpLinkSpeed speed;
> + PCIExpLinkWidth width;
> +
> QLIST_ENTRY(PCIESlot) next;
> };
>
>
>
- [Qemu-devel] [for-4.0 PATCH v3 0/9] pcie: Enhanced link speed and width support, Alex Williamson, 2018/12/04
- [Qemu-devel] [for-4.0 PATCH v3 4/9] pcie: Add link speed and width fields to PCIESlot, Alex Williamson, 2018/12/04
- Re: [Qemu-devel] [for-4.0 PATCH v3 4/9] pcie: Add link speed and width fields to PCIESlot,
Auger Eric <=
- [Qemu-devel] [for-4.0 PATCH v3 6/9] pcie: Allow generic PCIe root port to specify link speed and width, Alex Williamson, 2018/12/04
- [Qemu-devel] [for-4.0 PATCH v3 7/9] vfio/pci: Remove PCIe Link Status emulation, Alex Williamson, 2018/12/04
- [Qemu-devel] [for-4.0 PATCH v3 9/9] pcie: Fast PCIe root ports for new machines, Alex Williamson, 2018/12/04
- [Qemu-devel] [for-4.0 PATCH v3 5/9] pcie: Fill PCIESlot link fields to support higher speeds and widths, Alex Williamson, 2018/12/04