mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 23:33:54 -06:00
vfio/pci: Add placeholder for device-specific config space quirks
IGD devices require device-specific quirk to be applied to their PCI config space. Currently, it is put in the BAR4 quirk that does nothing to BAR4 itself. Add a placeholder for PCI config space quirks to hold that quirk later. Signed-off-by: Tomita Moeko <tomitamoeko@gmail.com> Reviewed-by: Alex Williamson <alex.williamson@redhat.com> Tested-by: Alex Williamson <alex.williamson@redhat.com> Reviewed-by: Corvin Köhne <c.koehne@beckhoff.com> Link: https://lore.kernel.org/qemu-devel/20250306180131.32970-6-tomitamoeko@gmail.com Signed-off-by: Cédric Le Goater <clg@redhat.com>
This commit is contained in:
parent
eabaa7b468
commit
b22ab580d2
3 changed files with 10 additions and 0 deletions
|
@ -1117,6 +1117,11 @@ static void vfio_probe_rtl8168_bar2_quirk(VFIOPCIDevice *vdev, int nr)
|
||||||
/*
|
/*
|
||||||
* Common quirk probe entry points.
|
* Common quirk probe entry points.
|
||||||
*/
|
*/
|
||||||
|
bool vfio_config_quirk_setup(VFIOPCIDevice *vdev, Error **errp)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void vfio_vga_quirk_setup(VFIOPCIDevice *vdev)
|
void vfio_vga_quirk_setup(VFIOPCIDevice *vdev)
|
||||||
{
|
{
|
||||||
vfio_vga_probe_ati_3c3_quirk(vdev);
|
vfio_vga_probe_ati_3c3_quirk(vdev);
|
||||||
|
|
|
@ -3128,6 +3128,10 @@ static void vfio_realize(PCIDevice *pdev, Error **errp)
|
||||||
goto out_unset_idev;
|
goto out_unset_idev;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!vfio_config_quirk_setup(vdev, errp)) {
|
||||||
|
goto out_unset_idev;
|
||||||
|
}
|
||||||
|
|
||||||
if (vdev->vga) {
|
if (vdev->vga) {
|
||||||
vfio_vga_quirk_setup(vdev);
|
vfio_vga_quirk_setup(vdev);
|
||||||
}
|
}
|
||||||
|
|
|
@ -204,6 +204,7 @@ uint64_t vfio_vga_read(void *opaque, hwaddr addr, unsigned size);
|
||||||
void vfio_vga_write(void *opaque, hwaddr addr, uint64_t data, unsigned size);
|
void vfio_vga_write(void *opaque, hwaddr addr, uint64_t data, unsigned size);
|
||||||
|
|
||||||
bool vfio_opt_rom_in_denylist(VFIOPCIDevice *vdev);
|
bool vfio_opt_rom_in_denylist(VFIOPCIDevice *vdev);
|
||||||
|
bool vfio_config_quirk_setup(VFIOPCIDevice *vdev, Error **errp);
|
||||||
void vfio_vga_quirk_setup(VFIOPCIDevice *vdev);
|
void vfio_vga_quirk_setup(VFIOPCIDevice *vdev);
|
||||||
void vfio_vga_quirk_exit(VFIOPCIDevice *vdev);
|
void vfio_vga_quirk_exit(VFIOPCIDevice *vdev);
|
||||||
void vfio_vga_quirk_finalize(VFIOPCIDevice *vdev);
|
void vfio_vga_quirk_finalize(VFIOPCIDevice *vdev);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue