|
@@ -292,7 +292,10 @@ static int xen_pt_header_type_reg_init(XenPCIPassthroughState *s,
|
|
uint32_t *data)
|
|
uint32_t *data)
|
|
{
|
|
{
|
|
/* read PCI_HEADER_TYPE */
|
|
/* read PCI_HEADER_TYPE */
|
|
- *data = reg->init_val | 0x80;
|
|
|
|
|
|
+ *data = reg->init_val;
|
|
|
|
+ if ((PCI_DEVICE(s)->cap_present & QEMU_PCI_CAP_MULTIFUNCTION)) {
|
|
|
|
+ *data |= PCI_HEADER_TYPE_MULTI_FUNCTION;
|
|
|
|
+ }
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -677,7 +680,7 @@ static XenPTRegInfo xen_pt_emu_reg_header0[] = {
|
|
.size = 1,
|
|
.size = 1,
|
|
.init_val = 0x00,
|
|
.init_val = 0x00,
|
|
.ro_mask = 0xFF,
|
|
.ro_mask = 0xFF,
|
|
- .emu_mask = 0x00,
|
|
|
|
|
|
+ .emu_mask = PCI_HEADER_TYPE_MULTI_FUNCTION,
|
|
.init = xen_pt_header_type_reg_init,
|
|
.init = xen_pt_header_type_reg_init,
|
|
.u.b.read = xen_pt_byte_reg_read,
|
|
.u.b.read = xen_pt_byte_reg_read,
|
|
.u.b.write = xen_pt_byte_reg_write,
|
|
.u.b.write = xen_pt_byte_reg_write,
|