xref: /openbmc/qemu/include/hw/xen/xen_igd.h (revision 7489f7f3f81dcb776df8c1b9a9db281fc21bf05f)
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