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 | |
| 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')
| -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 | ||
