aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile/gxio/iorpc_trio.c
diff options
context:
space:
mode:
authorChris Metcalf <cmetcalf@tilera.com>2013-08-02 12:55:15 -0400
committerChris Metcalf <cmetcalf@tilera.com>2013-08-06 12:55:24 -0400
commit90d9dd66957a744831146dbb1a9e4f96a9106100 (patch)
tree6a6755c47ff49390891ce3fcf624d37547007671 /arch/tile/gxio/iorpc_trio.c
parent803c874abe1358998ab65a8cca728684ebb50a13 (diff)
tile PCI RC: support more MSI-X interrupt vectors
To support PCIe devices with higher number of MSI-X interrupt vectors, e.g. 16 for the LSI RAID card, enhance the Gx RC stack to provide more MSI-X vectors by using the TRIO Scatter Queues, which provide 8 more vectors in addition to ~10 from the Map Mem regions. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Diffstat (limited to 'arch/tile/gxio/iorpc_trio.c')
-rw-r--r--arch/tile/gxio/iorpc_trio.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/tile/gxio/iorpc_trio.c b/arch/tile/gxio/iorpc_trio.c
index cef4b2209cda..da6e18e049c3 100644
--- a/arch/tile/gxio/iorpc_trio.c
+++ b/arch/tile/gxio/iorpc_trio.c
@@ -61,6 +61,29 @@ int gxio_trio_alloc_memory_maps(gxio_trio_context_t * context,
61 61
62EXPORT_SYMBOL(gxio_trio_alloc_memory_maps); 62EXPORT_SYMBOL(gxio_trio_alloc_memory_maps);
63 63
64struct alloc_scatter_queues_param {
65 unsigned int count;
66 unsigned int first;
67 unsigned int flags;
68};
69
70int gxio_trio_alloc_scatter_queues(gxio_trio_context_t * context,
71 unsigned int count, unsigned int first,
72 unsigned int flags)
73{
74 struct alloc_scatter_queues_param temp;
75 struct alloc_scatter_queues_param *params = &temp;
76
77 params->count = count;
78 params->first = first;
79 params->flags = flags;
80
81 return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params,
82 sizeof(*params),
83 GXIO_TRIO_OP_ALLOC_SCATTER_QUEUES);
84}
85
86EXPORT_SYMBOL(gxio_trio_alloc_scatter_queues);
64 87
65struct alloc_pio_regions_param { 88struct alloc_pio_regions_param {
66 unsigned int count; 89 unsigned int count;