|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 2/3] V3 qemu-xen-trad: Correctly expose PCH ISA bridge for IGD passthrough
>>> On 01.06.13 at 07:04, "G.R." <firemeteor@xxxxxxxxxxxxxxxxxxxxx> wrote:
> --- a/hw/pci.c
> +++ b/hw/pci.c
> @@ -39,24 +39,6 @@ extern int igd_passthru;
>
> //#define DEBUG_PCI
>
> -struct PCIBus {
> - int bus_num;
> - int devfn_min;
> - pci_set_irq_fn set_irq;
> - pci_map_irq_fn map_irq;
> - uint32_t config_reg; /* XXX: suppress */
> - /* low level pic */
> - SetIRQFunc *low_set_irq;
> - qemu_irq *irq_opaque;
> - PCIDevice *devices[256];
> - PCIDevice *parent_dev;
> - PCIBus *next;
> - /* The bus IRQ state is the logical OR of the connected devices.
> - Keep a count of the number of devices with raised IRQs. */
> - int nirq;
> - int irq_count[];
> -};
While it's obvious that this one needs to be moved to the header
(albeit see below), ...
> @@ -871,11 +853,6 @@ void pci_unplug_netifs(void)
> }
> }
>
> -typedef struct {
> - PCIDevice dev;
> - PCIBus *bus;
> -} PCIBridge;
... I don't see why this one also needs to be.
> @@ -40,9 +41,13 @@ void intel_pch_init(PCIBus *bus)
> did = pt_pci_host_read(pci_dev_1f, PCI_DEVICE_ID, 2);
> rid = pt_pci_host_read(pci_dev_1f, PCI_REVISION, 1);
>
> - if ( vid == PCI_VENDOR_ID_INTEL )
> - pci_bridge_init(bus, PCI_DEVFN(0x1f, 0), vid, did, rid,
> - pch_map_irq, "intel_bridge_1f");
> + if (vid == PCI_VENDOR_ID_INTEL) {
> + PCIBus *s = pci_bridge_init(bus, PCI_DEVFN(0x1f, 0), vid, did, rid,
> + pch_map_irq, "intel_bridge_1f");
> +
> + pci_config_set_class(s->parent_dev->config, PCI_CLASS_BRIDGE_ISA);
> + s->parent_dev->config[PCI_HEADER_TYPE] = 0x80;
Making struct PCIBus globally visible could be avoided altogether by
putting these two into one or two little helper functions implemented
in hw/pci.c.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |