[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 3/3] mips64el: fulong: fix pci multifunction bit
From: |
Isaku Yamahata |
Subject: |
[Qemu-devel] [PATCH 3/3] mips64el: fulong: fix pci multifunction bit |
Date: |
Mon, 26 Jul 2010 19:59:49 +0900 |
This patch fixes multifunction bits of bonito.
Otherwise it aborts with the following message.
> qemu-system-mips64el: PCI: single function device can't be populated in
> function 5.1
Cc: Huacai Chen <address@hidden>
Cc: Aurelien Jarno <address@hidden>
Signed-off-by: Isaku Yamahata <address@hidden>
---
hw/mips_fulong2e.c | 14 +++++++-------
hw/vt82c686.c | 5 +++--
hw/vt82c686.h | 2 +-
3 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/hw/mips_fulong2e.c b/hw/mips_fulong2e.c
index a9bbff6..41d6b05 100644
--- a/hw/mips_fulong2e.c
+++ b/hw/mips_fulong2e.c
@@ -219,8 +219,8 @@ uint8_t eeprom_spd[0x80] = {
#ifdef HAS_AUDIO
static void audio_init (PCIBus *pci_bus)
{
- vt82c686b_ac97_init(pci_bus, (FULONG2E_VIA_SLOT << 3) + 5);
- vt82c686b_mc97_init(pci_bus, (FULONG2E_VIA_SLOT << 3) + 6);
+ vt82c686b_ac97_init(pci_bus, PCI_DEVFN(FULONG2E_VIA_SLOT, 5));
+ vt82c686b_mc97_init(pci_bus, PCI_DEVFN(FULONG2E_VIA_SLOT, 6));
}
#endif
@@ -349,18 +349,18 @@ static void mips_fulong2e_init(ram_addr_t ram_size, const
char *boot_device,
hd[i] = drive_get(IF_IDE, i / MAX_IDE_DEVS, i % MAX_IDE_DEVS);
}
- via_devfn = vt82c686b_init(pci_bus, FULONG2E_VIA_SLOT << 3);
+ via_devfn = vt82c686b_init(pci_bus, PCI_DEVFN(FULONG2E_VIA_SLOT, 0), true);
if (via_devfn < 0) {
fprintf(stderr, "vt82c686b_init error \n");
exit(1);
}
isa_bus_irqs(i8259);
- vt82c686b_ide_init(pci_bus, hd, (FULONG2E_VIA_SLOT << 3) + 1);
- usb_uhci_vt82c686b_init(pci_bus, (FULONG2E_VIA_SLOT << 3) + 2);
- usb_uhci_vt82c686b_init(pci_bus, (FULONG2E_VIA_SLOT << 3) + 3);
+ vt82c686b_ide_init(pci_bus, hd, PCI_DEVFN(FULONG2E_VIA_SLOT, 1));
+ usb_uhci_vt82c686b_init(pci_bus, PCI_DEVFN(FULONG2E_VIA_SLOT, 2));
+ usb_uhci_vt82c686b_init(pci_bus, PCI_DEVFN(FULONG2E_VIA_SLOT, 3));
- smbus = vt82c686b_pm_init(pci_bus, (FULONG2E_VIA_SLOT << 3) + 4,
+ smbus = vt82c686b_pm_init(pci_bus, PCI_DEVFN(FULONG2E_VIA_SLOT, 4),
0xeee1, NULL);
eeprom_buf = qemu_mallocz(8 * 256); /* XXX: make this persistent */
memcpy(eeprom_buf, eeprom_spd, sizeof(eeprom_spd));
diff --git a/hw/vt82c686.c b/hw/vt82c686.c
index a0c5747..822728f 100644
--- a/hw/vt82c686.c
+++ b/hw/vt82c686.c
@@ -571,11 +571,12 @@ static int vt82c686b_initfn(PCIDevice *d)
return 0;
}
-int vt82c686b_init(PCIBus *bus, int devfn)
+int vt82c686b_init(PCIBus *bus, int devfn, bool multifunction)
{
PCIDevice *d;
- d = pci_create_simple(bus, devfn, "VT82C686B");
+ d = pci_create_simple_multifunction(bus, devfn, multifunction,
+ "VT82C686B");
return d->devfn;
}
diff --git a/hw/vt82c686.h b/hw/vt82c686.h
index e3270ca..c73a0f8 100644
--- a/hw/vt82c686.h
+++ b/hw/vt82c686.h
@@ -2,7 +2,7 @@
#define HW_VT82C686_H
/* vt82c686.c */
-int vt82c686b_init(PCIBus * bus, int devfn);
+int vt82c686b_init(PCIBus *bus, int devfn, bool multifunction);
void vt82c686b_ac97_init(PCIBus *bus, int devfn);
void vt82c686b_mc97_init(PCIBus *bus, int devfn);
i2c_bus *vt82c686b_pm_init(PCIBus *bus, int devfn, uint32_t smb_io_base,
--
1.7.1.1
- [Qemu-devel] [PATCH 0/3] pci, pcihost: pci host bus clean up, Isaku Yamahata, 2010/07/26
- [Qemu-devel] [PATCH 2/3] pci/pci_host: pci host bus initialization clean up., Isaku Yamahata, 2010/07/26
- Re: [Qemu-devel] [PATCH 0/3] pci, pcihost: pci host bus clean up, Aurelien Jarno, 2010/07/26
- Re: [Qemu-devel] [PATCH 0/3] pci, pcihost: pci host bus clean up, Isaku Yamahata, 2010/07/27
- [Qemu-devel] [PATCH for master 0/3] pci, pcihost: pci host bus clean up, Isaku Yamahata, 2010/07/27
- [Qemu-devel] [PATCH for master 2/3] pci_host: remove PCIHostState::busdev., Isaku Yamahata, 2010/07/27
- [Qemu-devel] [PATCH for master 1/3] pci: move out pci internal structures, PCIBus, PCIBridge, and pci_bus_info., Isaku Yamahata, 2010/07/27
- [Qemu-devel] [PATCH for master 3/3] pci/pci_host: pci host bus initialization clean up., Isaku Yamahata, 2010/07/27
- Re: [Qemu-devel] [PATCH for master 0/3] pci, pcihost: pci host bus clean up, Aurelien Jarno, 2010/07/30