diff options
author | Bryan O'Sullivan <bos@pathscale.com> | 2006-09-28 12:00:13 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2006-09-28 14:16:53 -0400 |
commit | 1fd3b40fde3bfacdf742cadfe99cfd47ffd05219 (patch) | |
tree | 5f08e8046319dc31d5abdec16764b7889feb9b74 /drivers/infiniband/hw/ipath/ipath_kernel.h | |
parent | 076fafcdee37c87564abd1ad993e17d77fc32daa (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.h | 20 |
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 | ||
151 | struct ipath_skbinfo { | ||
152 | struct sk_buff *skb; | ||
153 | dma_addr_t phys; | ||
154 | }; | ||
155 | |||
149 | struct ipath_devdata { | 156 | struct 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 *); | |||
865 | int ipathfs_remove_device(struct ipath_devdata *); | 874 | int ipathfs_remove_device(struct ipath_devdata *); |
866 | 875 | ||
867 | /* | 876 | /* |
877 | * dma_addr wrappers - all 0's invalid for hw | ||
878 | */ | ||
879 | dma_addr_t ipath_map_page(struct pci_dev *, struct page *, unsigned long, | ||
880 | size_t, int); | ||
881 | dma_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 | */ |