commit ec5e52d5cb2e6f8851c345b7c3095fe2030fff9c
Author: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Date: Thu Jun 25 18:24:23 2009 +0100
passthrough: Read the PCI type bit from hardware
Preparation for multi-fucntion devices in guests.
When scanning the PCI bus a guest* will only look for
functions 2-7 if the multifunction bit is set.
Cc: Dexuan Cui <dexuan.cui@xxxxxxxxx>
Cc: Masaki Kanno <kanno.masaki@xxxxxxxxxxxxxx>
Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>
[2/8; cross-compatibility issues with xen-unstable.hg]
---
hw/pass-through.c | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/hw/pass-through.c b/hw/pass-through.c
index ec79afe..07ca751 100644
--- a/hw/pass-through.c
+++ b/hw/pass-through.c
@@ -145,6 +145,8 @@ static uint32_t pt_msgdata_reg_init(struct pt_dev *ptdev,
struct pt_reg_info_tbl *reg, uint32_t real_offset);
static uint32_t pt_msixctrl_reg_init(struct pt_dev *ptdev,
struct pt_reg_info_tbl *reg, uint32_t real_offset);
+static uint32_t pt_header_type_reg_init(struct pt_dev *ptdev,
+ struct pt_reg_info_tbl *reg, uint32_t real_offset);
static uint8_t pt_reg_grp_size_init(struct pt_dev *ptdev,
struct pt_reg_grp_info_tbl *grp_reg, uint32_t base_offset);
static uint8_t pt_pm_size_init(struct pt_dev *ptdev,
@@ -324,7 +326,7 @@ static struct pt_reg_info_tbl pt_emu_reg_header0_tbl[] = {
.init_val = 0x00,
.ro_mask = 0x00,
.emu_mask = 0xFF,
- .init = pt_common_reg_init,
+ .init = pt_header_type_reg_init,
.u.b.read = pt_byte_reg_read,
.u.b.write = pt_byte_reg_write,
.u.b.restore = pt_byte_reg_restore,
@@ -2999,6 +3001,13 @@ static uint8_t pt_pcie_size_init(struct pt_dev *ptdev,
return pcie_size;
}
+/* read PCI_HEADER_TYPE */
+static uint32_t pt_header_type_reg_init(struct pt_dev *ptdev,
+ struct pt_reg_info_tbl *reg, uint32_t real_offset)
+{
+ return reg->init_val | 0x80;
+}
+
/* read byte size emulate register */
static int pt_byte_reg_read(struct pt_dev *ptdev,
struct pt_reg_tbl *cfg_entry,
--
generated by git-patchbot for /home/xen/git/qemu-xen-unstable.git
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|