search for: msix_reset

Displaying 20 results from an estimated 30 matches for "msix_reset".

2011 Nov 02
3
[PATCH RFC 0/2] virtio-pci: polling mode support
MSIX spec requires that device can be operated with all vectors masked, by polling. So the following patchset (lightly tested) adds this ability: when driver reads ISR, the device recalls a pending notification, and returns pending status in the ISR register. The polling driver can operate as follows: - map all VQs and config to the same vector - poll ISR to get status - this also flushes VQ
2011 Nov 02
3
[PATCH RFC 0/2] virtio-pci: polling mode support
MSIX spec requires that device can be operated with all vectors masked, by polling. So the following patchset (lightly tested) adds this ability: when driver reads ISR, the device recalls a pending notification, and returns pending status in the ISR register. The polling driver can operate as follows: - map all VQs and config to the same vector - poll ISR to get status - this also flushes VQ
2009 Jun 21
0
[PATCHv2 RFC] qemu/msix: remove msix_supported safety flag
...*/ - if (!msix_supported) - return -ENOTSUP; - if (nentries > MSIX_MAX_ENTRIES) return -EINVAL; diff --git a/hw/msix.h b/hw/msix.h index 3427778..27f2dad 100644 --- a/hw/msix.h +++ b/hw/msix.h @@ -29,6 +29,4 @@ void msix_notify(PCIDevice *dev, unsigned vector); void msix_reset(PCIDevice *dev); -extern int msix_supported; - #endif -- 1.6.2.2
2009 Jun 21
0
[PATCHv2 RFC] qemu/msix: remove msix_supported safety flag
...*/ - if (!msix_supported) - return -ENOTSUP; - if (nentries > MSIX_MAX_ENTRIES) return -EINVAL; diff --git a/hw/msix.h b/hw/msix.h index 3427778..27f2dad 100644 --- a/hw/msix.h +++ b/hw/msix.h @@ -29,6 +29,4 @@ void msix_notify(PCIDevice *dev, unsigned vector); void msix_reset(PCIDevice *dev); -extern int msix_supported; - #endif -- 1.6.2.2
2009 Jun 21
1
[PATCHv6 05/12] qemu/pci: MSI-X support functions
...msix_set_pending(dev, vector); + return; + } + + address = pci_get_long(table_entry + MSIX_MSG_UPPER_ADDR); + address = (address << 32) | pci_get_long(table_entry + MSIX_MSG_ADDR); + data = pci_get_long(table_entry + MSIX_MSG_DATA); + stl_phys(address, data); +} + +void msix_reset(PCIDevice *dev) +{ + if (!(dev->cap_present & QEMU_PCI_CAP_MSIX)) + return; + msix_free_irq_entries(dev); + dev->config[dev->msix_cap + MSIX_ENABLE_OFFSET] &= MSIX_ENABLE_MASK; + memset(dev->msix_table_page, 0, MSIX_PAGE_SIZE); +} + +/* PCI spec suggests that...
2009 Jun 21
1
[PATCHv6 05/12] qemu/pci: MSI-X support functions
...msix_set_pending(dev, vector); + return; + } + + address = pci_get_long(table_entry + MSIX_MSG_UPPER_ADDR); + address = (address << 32) | pci_get_long(table_entry + MSIX_MSG_ADDR); + data = pci_get_long(table_entry + MSIX_MSG_DATA); + stl_phys(address, data); +} + +void msix_reset(PCIDevice *dev) +{ + if (!(dev->cap_present & QEMU_PCI_CAP_MSIX)) + return; + msix_free_irq_entries(dev); + dev->config[dev->msix_cap + MSIX_ENABLE_OFFSET] &= MSIX_ENABLE_MASK; + memset(dev->msix_table_page, 0, MSIX_PAGE_SIZE); +} + +/* PCI spec suggests that...
2009 Jun 02
0
[PATCHv2 05/13] qemu: MSI-X support functions
...msix_set_pending(dev, vector); + return; + } + + address = pci_get_long(table_entry + MSIX_MSG_UPPER_ADDR); + address = (address << 32) | pci_get_long(table_entry + MSIX_MSG_ADDR); + data = pci_get_long(table_entry + MSIX_MSG_DATA); + stl_phys(address, data); +} + +void msix_reset(PCIDevice *dev) +{ + if (!(dev->cap_present & QEMU_PCI_CAP_MSIX)) + return; + msix_free_irq_entries(dev); + dev->config[dev->msix_cap + MSIX_ENABLE_OFFSET] &= MSIX_ENABLE_MASK; + memset(dev->msix_table_page, 0, MSIX_PAGE_SIZE); +} + +/* PCI spec suggests that...
2009 Jun 02
0
[PATCHv2 05/13] qemu: MSI-X support functions
...msix_set_pending(dev, vector); + return; + } + + address = pci_get_long(table_entry + MSIX_MSG_UPPER_ADDR); + address = (address << 32) | pci_get_long(table_entry + MSIX_MSG_ADDR); + data = pci_get_long(table_entry + MSIX_MSG_DATA); + stl_phys(address, data); +} + +void msix_reset(PCIDevice *dev) +{ + if (!(dev->cap_present & QEMU_PCI_CAP_MSIX)) + return; + msix_free_irq_entries(dev); + dev->config[dev->msix_cap + MSIX_ENABLE_OFFSET] &= MSIX_ENABLE_MASK; + memset(dev->msix_table_page, 0, MSIX_PAGE_SIZE); +} + +/* PCI spec suggests that...
2009 Jun 18
0
[PATCHv5 05/13] qemu: MSI-X support functions
...msix_set_pending(dev, vector); + return; + } + + address = pci_get_long(table_entry + MSIX_MSG_UPPER_ADDR); + address = (address << 32) | pci_get_long(table_entry + MSIX_MSG_ADDR); + data = pci_get_long(table_entry + MSIX_MSG_DATA); + stl_phys(address, data); +} + +void msix_reset(PCIDevice *dev) +{ + if (!(dev->cap_present & QEMU_PCI_CAP_MSIX)) + return; + msix_free_irq_entries(dev); + dev->config[dev->msix_cap + MSIX_ENABLE_OFFSET] &= MSIX_ENABLE_MASK; + memset(dev->msix_table_page, 0, MSIX_PAGE_SIZE); +} + +/* PCI spec suggests that...
2009 Jun 18
0
[PATCHv5 05/13] qemu: MSI-X support functions
...msix_set_pending(dev, vector); + return; + } + + address = pci_get_long(table_entry + MSIX_MSG_UPPER_ADDR); + address = (address << 32) | pci_get_long(table_entry + MSIX_MSG_ADDR); + data = pci_get_long(table_entry + MSIX_MSG_DATA); + stl_phys(address, data); +} + +void msix_reset(PCIDevice *dev) +{ + if (!(dev->cap_present & QEMU_PCI_CAP_MSIX)) + return; + msix_free_irq_entries(dev); + dev->config[dev->msix_cap + MSIX_ENABLE_OFFSET] &= MSIX_ENABLE_MASK; + memset(dev->msix_table_page, 0, MSIX_PAGE_SIZE); +} + +/* PCI spec suggests that...
2009 Jun 10
0
[PATCHv4 05/13] qemu: MSI-X support functions
...msix_set_pending(dev, vector); + return; + } + + address = pci_get_long(table_entry + MSIX_MSG_UPPER_ADDR); + address = (address << 32) | pci_get_long(table_entry + MSIX_MSG_ADDR); + data = pci_get_long(table_entry + MSIX_MSG_DATA); + stl_phys(address, data); +} + +void msix_reset(PCIDevice *dev) +{ + if (!(dev->cap_present & QEMU_PCI_CAP_MSIX)) + return; + msix_free_irq_entries(dev); + dev->config[dev->msix_cap + MSIX_ENABLE_OFFSET] &= MSIX_ENABLE_MASK; + memset(dev->msix_table_page, 0, MSIX_PAGE_SIZE); +} + +/* PCI spec suggests that...
2009 Jun 10
0
[PATCHv4 05/13] qemu: MSI-X support functions
...msix_set_pending(dev, vector); + return; + } + + address = pci_get_long(table_entry + MSIX_MSG_UPPER_ADDR); + address = (address << 32) | pci_get_long(table_entry + MSIX_MSG_ADDR); + data = pci_get_long(table_entry + MSIX_MSG_DATA); + stl_phys(address, data); +} + +void msix_reset(PCIDevice *dev) +{ + if (!(dev->cap_present & QEMU_PCI_CAP_MSIX)) + return; + msix_free_irq_entries(dev); + dev->config[dev->msix_cap + MSIX_ENABLE_OFFSET] &= MSIX_ENABLE_MASK; + memset(dev->msix_table_page, 0, MSIX_PAGE_SIZE); +} + +/* PCI spec suggests that...
2009 May 25
1
[PATCH 05/11] qemu: MSI-X support functions
...msix_set_pending(dev, vector); + return; + } + + address = pci_get_long(table_entry + MSIX_MSG_UPPER_ADDR); + address = (address << 32) | pci_get_long(table_entry + MSIX_MSG_ADDR); + data = pci_get_long(table_entry + MSIX_MSG_DATA); + stl_phys(address, data); +} + +void msix_reset(PCIDevice *dev) +{ + if (!(dev->cap_present & QEMU_PCI_CAP_MSIX)) + return; + msix_free_irq_entries(dev); + dev->config[dev->msix_cap + MSIX_ENABLE_OFFSET] &= MSIX_ENABLE_MASK; + memset(dev->msix_table_page, 0, MSIX_PAGE_SIZE); +} + +/* PCI spec suggests that...
2009 May 25
1
[PATCH 05/11] qemu: MSI-X support functions
...msix_set_pending(dev, vector); + return; + } + + address = pci_get_long(table_entry + MSIX_MSG_UPPER_ADDR); + address = (address << 32) | pci_get_long(table_entry + MSIX_MSG_ADDR); + data = pci_get_long(table_entry + MSIX_MSG_DATA); + stl_phys(address, data); +} + +void msix_reset(PCIDevice *dev) +{ + if (!(dev->cap_present & QEMU_PCI_CAP_MSIX)) + return; + msix_free_irq_entries(dev); + dev->config[dev->msix_cap + MSIX_ENABLE_OFFSET] &= MSIX_ENABLE_MASK; + memset(dev->msix_table_page, 0, MSIX_PAGE_SIZE); +} + +/* PCI spec suggests that...
2009 Jun 05
1
[PATCHv3 05/13] qemu: MSI-X support functions
...msix_set_pending(dev, vector); + return; + } + + address = pci_get_long(table_entry + MSIX_MSG_UPPER_ADDR); + address = (address << 32) | pci_get_long(table_entry + MSIX_MSG_ADDR); + data = pci_get_long(table_entry + MSIX_MSG_DATA); + stl_phys(address, data); +} + +void msix_reset(PCIDevice *dev) +{ + if (!(dev->cap_present & QEMU_PCI_CAP_MSIX)) + return; + msix_free_irq_entries(dev); + dev->config[dev->msix_cap + MSIX_ENABLE_OFFSET] &= MSIX_ENABLE_MASK; + memset(dev->msix_table_page, 0, MSIX_PAGE_SIZE); +} + +/* PCI spec suggests that...
2009 Jun 05
1
[PATCHv3 05/13] qemu: MSI-X support functions
...msix_set_pending(dev, vector); + return; + } + + address = pci_get_long(table_entry + MSIX_MSG_UPPER_ADDR); + address = (address << 32) | pci_get_long(table_entry + MSIX_MSG_ADDR); + data = pci_get_long(table_entry + MSIX_MSG_DATA); + stl_phys(address, data); +} + +void msix_reset(PCIDevice *dev) +{ + if (!(dev->cap_present & QEMU_PCI_CAP_MSIX)) + return; + msix_free_irq_entries(dev); + dev->config[dev->msix_cap + MSIX_ENABLE_OFFSET] &= MSIX_ENABLE_MASK; + memset(dev->msix_table_page, 0, MSIX_PAGE_SIZE); +} + +/* PCI spec suggests that...
2009 May 25
0
[PATCH 10/11] qemu: MSI-X support in virtio PCI
...(&proxy->pci_dev)) + msix_notify(&proxy->pci_dev, vector); + else + qemu_set_irq(proxy->pci_dev.irq[0], proxy->vdev->isr & 1); } static void virtio_pci_reset(void *opaque) { VirtIOPCIProxy *proxy = opaque; virtio_reset(proxy->vdev); + msix_reset(&proxy->pci_dev); } static void virtio_ioport_write(void *opaque, uint32_t addr, uint32_t val) @@ -97,8 +118,6 @@ static void virtio_ioport_write(void *opaque, uint32_t addr, uint32_t val) VirtIODevice *vdev = proxy->vdev; target_phys_addr_t pa; - addr -= proxy->addr...
2009 Jun 02
0
[PATCHv2 10/13] qemu: MSI-X support in virtio PCI
...(&proxy->pci_dev)) + msix_notify(&proxy->pci_dev, vector); + else + qemu_set_irq(proxy->pci_dev.irq[0], proxy->vdev->isr & 1); } static void virtio_pci_reset(void *opaque) { VirtIOPCIProxy *proxy = opaque; virtio_reset(proxy->vdev); + msix_reset(&proxy->pci_dev); } static void virtio_ioport_write(void *opaque, uint32_t addr, uint32_t val) @@ -97,8 +118,6 @@ static void virtio_ioport_write(void *opaque, uint32_t addr, uint32_t val) VirtIODevice *vdev = proxy->vdev; target_phys_addr_t pa; - addr -= proxy->addr...
2009 Jun 05
0
[PATCHv3 10/13] qemu: MSI-X support in virtio PCI
...(&proxy->pci_dev)) + msix_notify(&proxy->pci_dev, vector); + else + qemu_set_irq(proxy->pci_dev.irq[0], proxy->vdev->isr & 1); } static void virtio_pci_reset(void *opaque) { VirtIOPCIProxy *proxy = opaque; virtio_reset(proxy->vdev); + msix_reset(&proxy->pci_dev); } static void virtio_ioport_write(void *opaque, uint32_t addr, uint32_t val) @@ -97,8 +118,6 @@ static void virtio_ioport_write(void *opaque, uint32_t addr, uint32_t val) VirtIODevice *vdev = proxy->vdev; target_phys_addr_t pa; - addr -= proxy->addr...
2009 Jun 10
0
[PATCHv4 10/13] qemu: MSI-X support in virtio PCI
...(&proxy->pci_dev)) + msix_notify(&proxy->pci_dev, vector); + else + qemu_set_irq(proxy->pci_dev.irq[0], proxy->vdev->isr & 1); } static void virtio_pci_reset(void *opaque) { VirtIOPCIProxy *proxy = opaque; virtio_reset(proxy->vdev); + msix_reset(&proxy->pci_dev); } static void virtio_ioport_write(void *opaque, uint32_t addr, uint32_t val) @@ -97,8 +118,6 @@ static void virtio_ioport_write(void *opaque, uint32_t addr, uint32_t val) VirtIODevice *vdev = proxy->vdev; target_phys_addr_t pa; - addr -= proxy->addr...