diff options
author | Michael Buesch <mb@bu3sch.de> | 2008-04-11 05:59:00 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-04-15 15:04:35 -0400 |
commit | 4ac58469f13028e1eb97f8bc7b0fca5072591d8d (patch) | |
tree | c955e1b753e1f86c570d2d6f5f6095d1182d5c35 /include/linux/ssb | |
parent | 2d4543fdb487b1301ae48703dea3e66ead2d3c75 (diff) |
ssb: Fix usage of struct device used for DMAing
This fixes DMA on architectures where DMA is nontrivial, like PPC64.
We must use the host-device's (PCI) struct device for any DMA
operation instead of the SSB device. For this we add a new
struct device pointer to the SSB device structure that will always
point to the right device for DMAing.
Without this patch b43 and b44 drivers won't work on complex-DMA
architectures, that for example need dev->archdata for DMA operations.
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/linux/ssb')
-rw-r--r-- | include/linux/ssb/ssb.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/ssb/ssb.h b/include/linux/ssb/ssb.h index 20add65215af..db53defde5ee 100644 --- a/include/linux/ssb/ssb.h +++ b/include/linux/ssb/ssb.h | |||
@@ -129,6 +129,10 @@ struct ssb_device { | |||
129 | const struct ssb_bus_ops *ops; | 129 | const struct ssb_bus_ops *ops; |
130 | 130 | ||
131 | struct device *dev; | 131 | struct device *dev; |
132 | /* Pointer to the device that has to be used for | ||
133 | * any DMA related operation. */ | ||
134 | struct device *dma_dev; | ||
135 | |||
132 | struct ssb_bus *bus; | 136 | struct ssb_bus *bus; |
133 | struct ssb_device_id id; | 137 | struct ssb_device_id id; |
134 | 138 | ||