diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-17 16:19:26 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-17 16:19:26 -0400 |
| commit | e2fdae7e7c5a690b10b2d2891ec819e554dc033d (patch) | |
| tree | 7b48f55eba9519aeee554a58be9d1ff8a8adffd6 /arch/sparc/include | |
| parent | 6b6e177d632ee251c7c78d8f266a851ab9704879 (diff) | |
| parent | cb97201cb060d13da0b87fd1bf68208c7389c5b1 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc
Pull sparc updates from David Miller:
"The PowerPC folks have a really nice scalable IOMMU pool allocator
that we wanted to make use of for sparc. So here we have a series
that abstracts out their code into a common layer that anyone can make
use of.
Sparc is converted, and the PowerPC folks have reviewed and ACK'd this
series and plan to convert PowerPC over as well"
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
iommu-common: Fix PARISC compile-time warnings
sparc: Make LDC use common iommu poll management functions
sparc: Make sparc64 use scalable lib/iommu-common.c functions
sparc: Break up monolithic iommu table/lock into finer graularity pools and lock
Diffstat (limited to 'arch/sparc/include')
| -rw-r--r-- | arch/sparc/include/asm/iommu_64.h | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/sparc/include/asm/iommu_64.h b/arch/sparc/include/asm/iommu_64.h index 2b9321ab064d..e3cd4493d81d 100644 --- a/arch/sparc/include/asm/iommu_64.h +++ b/arch/sparc/include/asm/iommu_64.h | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | #define IOPTE_WRITE 0x0000000000000002UL | 16 | #define IOPTE_WRITE 0x0000000000000002UL |
| 17 | 17 | ||
| 18 | #define IOMMU_NUM_CTXS 4096 | 18 | #define IOMMU_NUM_CTXS 4096 |
| 19 | #include <linux/iommu-common.h> | ||
| 19 | 20 | ||
| 20 | struct iommu_arena { | 21 | struct iommu_arena { |
| 21 | unsigned long *map; | 22 | unsigned long *map; |
| @@ -24,11 +25,10 @@ struct iommu_arena { | |||
| 24 | }; | 25 | }; |
| 25 | 26 | ||
| 26 | struct iommu { | 27 | struct iommu { |
| 28 | struct iommu_table tbl; | ||
| 27 | spinlock_t lock; | 29 | spinlock_t lock; |
| 28 | struct iommu_arena arena; | 30 | u32 dma_addr_mask; |
| 29 | void (*flush_all)(struct iommu *); | ||
| 30 | iopte_t *page_table; | 31 | iopte_t *page_table; |
| 31 | u32 page_table_map_base; | ||
| 32 | unsigned long iommu_control; | 32 | unsigned long iommu_control; |
| 33 | unsigned long iommu_tsbbase; | 33 | unsigned long iommu_tsbbase; |
| 34 | unsigned long iommu_flush; | 34 | unsigned long iommu_flush; |
| @@ -40,7 +40,6 @@ struct iommu { | |||
| 40 | unsigned long dummy_page_pa; | 40 | unsigned long dummy_page_pa; |
| 41 | unsigned long ctx_lowest_free; | 41 | unsigned long ctx_lowest_free; |
| 42 | DECLARE_BITMAP(ctx_bitmap, IOMMU_NUM_CTXS); | 42 | DECLARE_BITMAP(ctx_bitmap, IOMMU_NUM_CTXS); |
| 43 | u32 dma_addr_mask; | ||
| 44 | }; | 43 | }; |
| 45 | 44 | ||
| 46 | struct strbuf { | 45 | struct strbuf { |
