diff options
| author | Eric Auger <eric.auger@redhat.com> | 2018-10-15 10:52:09 -0600 |
|---|---|---|
| committer | Alex Williamson <alex.williamson@redhat.com> | 2018-10-15 10:52:09 -0600 |
| commit | a49531ebd0bdf5677e0405cd7c01c184717cee52 (patch) | |
| tree | d25433ddba27213c8ace3aa3c3493e97ac816949 /include/hw/vfio/vfio-platform.h | |
| parent | b290659fc3dd8fc51ea35511ea44d7656a3c9396 (diff) | |
| download | focaccia-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 'include/hw/vfio/vfio-platform.h')
| -rw-r--r-- | include/hw/vfio/vfio-platform.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/hw/vfio/vfio-platform.h b/include/hw/vfio/vfio-platform.h index 9baaa2db09..0ee10b1d71 100644 --- a/include/hw/vfio/vfio-platform.h +++ b/include/hw/vfio/vfio-platform.h @@ -54,7 +54,8 @@ typedef struct VFIOPlatformDevice { QLIST_HEAD(, VFIOINTp) intp_list; /* list of IRQs */ /* queue of pending IRQs */ QSIMPLEQ_HEAD(pending_intp_queue, VFIOINTp) pending_intp_queue; - char *compat; /* compatibility string */ + char *compat; /* DT compatible values, separated by NUL */ + unsigned int num_compat; /* number of compatible values */ uint32_t mmap_timeout; /* delay to re-enable mmaps after interrupt */ QEMUTimer *mmap_timer; /* allows fast-path resume after IRQ hit */ QemuMutex intp_mutex; /* protect the intp_list IRQ state */ |