aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/ipath/ipath_kernel.h
diff options
context:
space:
mode:
authorBryan O'Sullivan <bos@pathscale.com>2006-09-28 12:00:13 -0400
committerRoland Dreier <rolandd@cisco.com>2006-09-28 14:16:53 -0400
commit1fd3b40fde3bfacdf742cadfe99cfd47ffd05219 (patch)
tree5f08e8046319dc31d5abdec16764b7889feb9b74 /drivers/infiniband/hw/ipath/ipath_kernel.h
parent076fafcdee37c87564abd1ad993e17d77fc32daa (diff)
IB/ipath: Improved support for PowerPC
Signed-off-by: Bryan O'Sullivan <bryan.osullivan@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/ipath/ipath_kernel.h')
-rw-r--r--drivers/infiniband/hw/ipath/ipath_kernel.h20
1 files changed, 18 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_kernel.h b/drivers/infiniband/hw/ipath/ipath_kernel.h
index 96e2bd8fb5f8..2a0e9a430634 100644
--- a/drivers/infiniband/hw/ipath/ipath_kernel.h
+++ b/drivers/infiniband/hw/ipath/ipath_kernel.h
@@ -39,6 +39,8 @@
39 */ 39 */
40 40
41#include <linux/interrupt.h> 41#include <linux/interrupt.h>
42#include <linux/pci.h>
43#include <linux/dma-mapping.h>
42#include <asm/io.h> 44#include <asm/io.h>
43 45
44#include "ipath_common.h" 46#include "ipath_common.h"
@@ -62,7 +64,7 @@ struct ipath_portdata {
62 /* rcvhdrq base, needs mmap before useful */ 64 /* rcvhdrq base, needs mmap before useful */
63 void *port_rcvhdrq; 65 void *port_rcvhdrq;
64 /* kernel virtual address where hdrqtail is updated */ 66 /* kernel virtual address where hdrqtail is updated */
65 volatile __le64 *port_rcvhdrtail_kvaddr; 67 void *port_rcvhdrtail_kvaddr;
66 /* 68 /*
67 * temp buffer for expected send setup, allocated at open, instead 69 * temp buffer for expected send setup, allocated at open, instead
68 * of each setup call 70 * of each setup call
@@ -146,6 +148,11 @@ struct _ipath_layer {
146 void *l_arg; 148 void *l_arg;
147}; 149};
148 150
151struct ipath_skbinfo {
152 struct sk_buff *skb;
153 dma_addr_t phys;
154};
155
149struct ipath_devdata { 156struct ipath_devdata {
150 struct list_head ipath_list; 157 struct list_head ipath_list;
151 158
@@ -168,7 +175,7 @@ struct ipath_devdata {
168 /* ipath_cfgports pointers */ 175 /* ipath_cfgports pointers */
169 struct ipath_portdata **ipath_pd; 176 struct ipath_portdata **ipath_pd;
170 /* sk_buffs used by port 0 eager receive queue */ 177 /* sk_buffs used by port 0 eager receive queue */
171 struct sk_buff **ipath_port0_skbs; 178 struct ipath_skbinfo *ipath_port0_skbinfo;
172 /* kvirt address of 1st 2k pio buffer */ 179 /* kvirt address of 1st 2k pio buffer */
173 void __iomem *ipath_pio2kbase; 180 void __iomem *ipath_pio2kbase;
174 /* kvirt address of 1st 4k pio buffer */ 181 /* kvirt address of 1st 4k pio buffer */
@@ -335,6 +342,8 @@ struct ipath_devdata {
335 u64 *ipath_tidsimshadow; 342 u64 *ipath_tidsimshadow;
336 /* shadow copy of struct page *'s for exp tid pages */ 343 /* shadow copy of struct page *'s for exp tid pages */
337 struct page **ipath_pageshadow; 344 struct page **ipath_pageshadow;
345 /* shadow copy of dma handles for exp tid pages */
346 dma_addr_t *ipath_physshadow;
338 /* lock to workaround chip bug 9437 */ 347 /* lock to workaround chip bug 9437 */
339 spinlock_t ipath_tid_lock; 348 spinlock_t ipath_tid_lock;
340 349
@@ -865,6 +874,13 @@ int ipathfs_add_device(struct ipath_devdata *);
865int ipathfs_remove_device(struct ipath_devdata *); 874int ipathfs_remove_device(struct ipath_devdata *);
866 875
867/* 876/*
877 * dma_addr wrappers - all 0's invalid for hw
878 */
879dma_addr_t ipath_map_page(struct pci_dev *, struct page *, unsigned long,
880 size_t, int);
881dma_addr_t ipath_map_single(struct pci_dev *, void *, size_t, int);
882
883/*
868 * Flush write combining store buffers (if present) and perform a write 884 * Flush write combining store buffers (if present) and perform a write
869 * barrier. 885 * barrier.
870 */ 886 */