summary refs log tree commit diff stats
path: root/hw/vfio/amd-xgbe.c
diff options
context:
space:
mode:
authorEric Auger <eric.auger@redhat.com>2018-10-15 10:52:09 -0600
committerAlex Williamson <alex.williamson@redhat.com>2018-10-15 10:52:09 -0600
commita49531ebd0bdf5677e0405cd7c01c184717cee52 (patch)
treed25433ddba27213c8ace3aa3c3493e97ac816949 /hw/vfio/amd-xgbe.c
parentb290659fc3dd8fc51ea35511ea44d7656a3c9396 (diff)
downloadfocaccia-qemu-a49531ebd0bdf5677e0405cd7c01c184717cee52.tar.gz
focaccia-qemu-a49531ebd0bdf5677e0405cd7c01c184717cee52.zip
vfio/platform: Make the vfio-platform device non-abstract
Up to now the vfio-platform device has been abstract and could not be
instantiated.  The integration of a new vfio platform device required
creating a dummy derived device which only set the compatible string.

Following the few vfio-platform device integrations we have seen the
actual requested adaptation happens on device tree node creation
(sysbus-fdt).

Hence remove the abstract setting, and read the list of compatible
values from sysfs if not set by a derived device.

Update the amd-xgbe and calxeda-xgmac drivers to fill in the number of
compatible values, as there can now be more than one.

Note that sysbus-fdt does not support the instantiation of the
vfio-platform device yet.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
[geert: Rebase, set user_creatable=true, use compatible values in sysfs
	instead of user-supplied manufacturer/model options, reword]
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Tested-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Diffstat (limited to 'hw/vfio/amd-xgbe.c')
-rw-r--r--hw/vfio/amd-xgbe.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/hw/vfio/amd-xgbe.c b/hw/vfio/amd-xgbe.c
index 0c4ec4ba25..ee64a3b4a2 100644
--- a/hw/vfio/amd-xgbe.c
+++ b/hw/vfio/amd-xgbe.c
@@ -20,6 +20,7 @@ static void amd_xgbe_realize(DeviceState *dev, Error **errp)
     VFIOAmdXgbeDeviceClass *k = VFIO_AMD_XGBE_DEVICE_GET_CLASS(dev);
 
     vdev->compat = g_strdup("amd,xgbe-seattle-v1a");
+    vdev->num_compat = 1;
 
     k->parent_realize(dev, errp);
 }