search for: nirq

Displaying 11 results from an estimated 11 matches for "nirq".

Did you mean: irq
2014 Nov 06
2
[RFC PATCH] virtio-mmio: support for multiple irqs
...evice supports multiple IRQs? Guest uses vm_try_to_find_vqs to check whether it can get multiple IRQs like virtio-pci uses vp_try_to_find_vqs. And within function vm_request_multiple_irqs, guest check whether the number of IRQs host device gives is equal to the number we want. for (i = 0; i < nirqs; i++) { irq = platform_get_irq(vm_dev->pdev, i); if (irq == -ENXIO) goto error; } If we can't get the expected number of IRQs, return error and this try fails. Then guest will try two IRQS and single IRQ like virtio-pci. > Could you please document the new interface? > E.g....
2014 Nov 06
2
[RFC PATCH] virtio-mmio: support for multiple irqs
...evice supports multiple IRQs? Guest uses vm_try_to_find_vqs to check whether it can get multiple IRQs like virtio-pci uses vp_try_to_find_vqs. And within function vm_request_multiple_irqs, guest check whether the number of IRQs host device gives is equal to the number we want. for (i = 0; i < nirqs; i++) { irq = platform_get_irq(vm_dev->pdev, i); if (irq == -ENXIO) goto error; } If we can't get the expected number of IRQs, return error and this try fails. Then guest will try two IRQS and single IRQ like virtio-pci. > Could you please document the new interface? > E.g....
2014 Nov 06
0
[RFC PATCH] virtio-mmio: support for multiple irqs
..._vqs. And within function > vm_request_multiple_irqs, guest check whether the number of IRQs host > device gives is equal to the number we want. OK but how does host specify the number of IRQs for a device? for pci this is done through the MSI-X capability register. > for (i = 0; i < nirqs; i++) { > irq = platform_get_irq(vm_dev->pdev, i); > if (irq == -ENXIO) > goto error; > } > > If we can't get the expected number of IRQs, return error and this try > fails. Then guest will try two IRQS and single IRQ like virtio-pci. > > > Could you...
2023 Oct 10
1
[PATCH 2/2] virtio-mmio: Support multiple interrupts per device
...gt;dev), vm_dev); > - if (err) > - return err; > - > - if (of_property_read_bool(vm_dev->pdev->dev.of_node, "wakeup-source")) > - enable_irq_wake(irq); > + struct virtio_mmio_vq_info *info; > + int i, err, irq, nirqs, queue_idx = 0; > + unsigned int irq_base = UINT_MAX; > > for (i = 0; i < nvqs; ++i) { > if (!names[i]) { > @@ -519,12 +544,51 @@ static int vm_find_vqs(struct virtio_device *vdev, unsigned int nvqs, > vqs[i] = vm_setup_vq(vdev, qu...
2023 Oct 10
1
[PATCH 2/2] virtio-mmio: Support multiple interrupts per device
...gt;dev), vm_dev); > - if (err) > - return err; > - > - if (of_property_read_bool(vm_dev->pdev->dev.of_node, "wakeup-source")) > - enable_irq_wake(irq); > + struct virtio_mmio_vq_info *info; > + int i, err, irq, nirqs, queue_idx = 0; > + unsigned int irq_base = UINT_MAX; > > for (i = 0; i < nvqs; ++i) { > if (!names[i]) { > @@ -519,12 +544,51 @@ static int vm_find_vqs(struct virtio_device *vdev, unsigned int nvqs, > vqs[i] = vm_setup_vq(vdev, qu...
2014 Nov 06
0
[RFC PATCH] virtio-mmio: support for multiple irqs
...virtqueue *vq, *n; > > list_for_each_entry_safe(vq, n, &vdev->vqs, list) > vm_del_vq(vq); > > - free_irq(platform_get_irq(vm_dev->pdev, 0), vm_dev); > + vm_free_irqs(vdev); > +} > + > +static int vm_request_multiple_irqs(struct virtio_device *vdev, int nirqs, > + bool per_vq_irq) > +{ > + int err = -ENOMEM; > + struct virtio_mmio_device *vm_dev = to_virtio_mmio_device(vdev); > + unsigned i, v; > + int irq = 0; > + > + vm_dev->num_irqs = nirqs; > + vm_dev->used_irqs = 0; > + > + vm_dev->vm_vq_names = kmalloc_a...
2014 Nov 04
6
[RFC PATCH] virtio-mmio: support for multiple irqs
...l_vqs(struct virtio_device *vdev) +{ struct virtqueue *vq, *n; list_for_each_entry_safe(vq, n, &vdev->vqs, list) vm_del_vq(vq); - free_irq(platform_get_irq(vm_dev->pdev, 0), vm_dev); + vm_free_irqs(vdev); +} + +static int vm_request_multiple_irqs(struct virtio_device *vdev, int nirqs, + bool per_vq_irq) +{ + int err = -ENOMEM; + struct virtio_mmio_device *vm_dev = to_virtio_mmio_device(vdev); + unsigned i, v; + int irq = 0; + + vm_dev->num_irqs = nirqs; + vm_dev->used_irqs = 0; + + vm_dev->vm_vq_names = kmalloc_array(nirqs, sizeof(*vm_dev->vm_vq_names), +...
2014 Nov 04
6
[RFC PATCH] virtio-mmio: support for multiple irqs
...l_vqs(struct virtio_device *vdev) +{ struct virtqueue *vq, *n; list_for_each_entry_safe(vq, n, &vdev->vqs, list) vm_del_vq(vq); - free_irq(platform_get_irq(vm_dev->pdev, 0), vm_dev); + vm_free_irqs(vdev); +} + +static int vm_request_multiple_irqs(struct virtio_device *vdev, int nirqs, + bool per_vq_irq) +{ + int err = -ENOMEM; + struct virtio_mmio_device *vm_dev = to_virtio_mmio_device(vdev); + unsigned i, v; + int irq = 0; + + vm_dev->num_irqs = nirqs; + vm_dev->used_irqs = 0; + + vm_dev->vm_vq_names = kmalloc_array(nirqs, sizeof(*vm_dev->vm_vq_names), +...
2013 Apr 30
4
Data Abort while in booting when using Julien's new patches on Arndale Board
...eturn par; } When I have tired to debugging, I have found " WRITE_CP32(va, ATS12NSOPR)[1]" that cause data abort. It seems [1] translates stage 1 and 2 MMU and returns PA corresponding input va. Does anybody see same problem? I attach my log below: === log === (XEN) /voltage-regulator nirq = 0 naddr = 0 (XEN) handle /fixedregulator@0 (XEN) /fixedregulator@0 nirq = 0 naddr = 0 (XEN) CPU0: Unexpected Trap: Data Abort (XEN) ----[ Xen-4.3-unstable arm32 debug=y Tainted: C ]---- (XEN) CPU: 0 (XEN) PC: 0024d78c exynos5_specific_mapping+0x30/0xf4 (XEN) CPSR: 2000015a MODE:Hyp...
2009 May 20
9
[PATCH] qemu: msi irq allocation api
...it a/hw/pci.h b/hw/pci.h index a629e60..8883f08 100644 --- a/hw/pci.h +++ b/hw/pci.h @@ -280,4 +280,14 @@ PCIBus *pci_apb_init(target_phys_addr_t special_base, PCIBus *sh_pci_register_bus(pci_set_irq_fn set_irq, pci_map_irq_fn map_irq, qemu_irq *pic, int devfn_min, int nirq); +/* MSI/MSI-X */ + +struct pci_msi_ops { + qemu_irq *(*allocate)(int nentries); + int (*update)(qemu_irq, uint64_t addr, uint32_t data, int masked); + void (*free)(qemu_irq *); +}; + +extern struct pci_msi_ops *pci_msi_ops; + #endif diff --git a/qemu-common.h b/qemu-common.h index c90...
2009 May 20
9
[PATCH] qemu: msi irq allocation api
...it a/hw/pci.h b/hw/pci.h index a629e60..8883f08 100644 --- a/hw/pci.h +++ b/hw/pci.h @@ -280,4 +280,14 @@ PCIBus *pci_apb_init(target_phys_addr_t special_base, PCIBus *sh_pci_register_bus(pci_set_irq_fn set_irq, pci_map_irq_fn map_irq, qemu_irq *pic, int devfn_min, int nirq); +/* MSI/MSI-X */ + +struct pci_msi_ops { + qemu_irq *(*allocate)(int nentries); + int (*update)(qemu_irq, uint64_t addr, uint32_t data, int masked); + void (*free)(qemu_irq *); +}; + +extern struct pci_msi_ops *pci_msi_ops; + #endif diff --git a/qemu-common.h b/qemu-common.h index c90...