1*f28b958cSPhilippe Mathieu-Daudé /* 2*f28b958cSPhilippe Mathieu-Daudé * Copyright (c) 2007, Neocleus Corporation. 3*f28b958cSPhilippe Mathieu-Daudé * Copyright (c) 2007, Intel Corporation. 4*f28b958cSPhilippe Mathieu-Daudé * 5*f28b958cSPhilippe Mathieu-Daudé * SPDX-License-Identifier: GPL-2.0-only 6*f28b958cSPhilippe Mathieu-Daudé * 7*f28b958cSPhilippe Mathieu-Daudé * Alex Novik <alex@neocleus.com> 8*f28b958cSPhilippe Mathieu-Daudé * Allen Kay <allen.m.kay@intel.com> 9*f28b958cSPhilippe Mathieu-Daudé * Guy Zana <guy@neocleus.com> 10*f28b958cSPhilippe Mathieu-Daudé */ 11*f28b958cSPhilippe Mathieu-Daudé #ifndef XEN_IGD_H 12*f28b958cSPhilippe Mathieu-Daudé #define XEN_IGD_H 13*f28b958cSPhilippe Mathieu-Daudé 14*f28b958cSPhilippe Mathieu-Daudé #include "hw/xen/xen-host-pci-device.h" 15*f28b958cSPhilippe Mathieu-Daudé 16*f28b958cSPhilippe Mathieu-Daudé typedef struct XenPCIPassthroughState XenPCIPassthroughState; 17*f28b958cSPhilippe Mathieu-Daudé 18*f28b958cSPhilippe Mathieu-Daudé bool xen_igd_gfx_pt_enabled(void); 19*f28b958cSPhilippe Mathieu-Daudé void xen_igd_gfx_pt_set(bool value, Error **errp); 20*f28b958cSPhilippe Mathieu-Daudé 21*f28b958cSPhilippe Mathieu-Daudé uint32_t igd_read_opregion(XenPCIPassthroughState *s); 22*f28b958cSPhilippe Mathieu-Daudé void xen_igd_reserve_slot(PCIBus *pci_bus); 23*f28b958cSPhilippe Mathieu-Daudé void igd_write_opregion(XenPCIPassthroughState *s, uint32_t val); 24*f28b958cSPhilippe Mathieu-Daudé void xen_igd_passthrough_isa_bridge_create(XenPCIPassthroughState *s, 25*f28b958cSPhilippe Mathieu-Daudé XenHostPCIDevice *dev); 26*f28b958cSPhilippe Mathieu-Daudé is_igd_vga_passthrough(XenHostPCIDevice * dev)27*f28b958cSPhilippe Mathieu-Daudéstatic inline bool is_igd_vga_passthrough(XenHostPCIDevice *dev) 28*f28b958cSPhilippe Mathieu-Daudé { 29*f28b958cSPhilippe Mathieu-Daudé return (xen_igd_gfx_pt_enabled() 30*f28b958cSPhilippe Mathieu-Daudé && ((dev->class_code >> 0x8) == PCI_CLASS_DISPLAY_VGA)); 31*f28b958cSPhilippe Mathieu-Daudé } 32*f28b958cSPhilippe Mathieu-Daudé 33*f28b958cSPhilippe Mathieu-Daudé #endif 34