Loading arch/sparc64/kernel/pci_iommu.c +2 −2 Original line number Diff line number Diff line Loading @@ -77,7 +77,7 @@ static inline void iopte_make_dummy(struct pci_iommu *iommu, iopte_t *iopte) /* Based largely upon the ppc64 iommu allocator. */ static long pci_arena_alloc(struct pci_iommu *iommu, unsigned long npages) { struct pci_iommu_arena *arena = &iommu->arena; struct iommu_arena *arena = &iommu->arena; unsigned long n, i, start, end, limit; int pass; Loading Loading @@ -116,7 +116,7 @@ static long pci_arena_alloc(struct pci_iommu *iommu, unsigned long npages) return n; } static void pci_arena_free(struct pci_iommu_arena *arena, unsigned long base, unsigned long npages) static void pci_arena_free(struct iommu_arena *arena, unsigned long base, unsigned long npages) { unsigned long i; Loading arch/sparc64/kernel/pci_sun4v.c +3 −3 Original line number Diff line number Diff line Loading @@ -110,7 +110,7 @@ static inline long pci_iommu_batch_end(void) return pci_iommu_batch_flush(p); } static long pci_arena_alloc(struct pci_iommu_arena *arena, unsigned long npages) static long pci_arena_alloc(struct iommu_arena *arena, unsigned long npages) { unsigned long n, i, start, end, limit; int pass; Loading Loading @@ -149,7 +149,7 @@ static long pci_arena_alloc(struct pci_iommu_arena *arena, unsigned long npages) return n; } static void pci_arena_free(struct pci_iommu_arena *arena, unsigned long base, unsigned long npages) static void pci_arena_free(struct iommu_arena *arena, unsigned long base, unsigned long npages) { unsigned long i; Loading Loading @@ -707,7 +707,7 @@ static void pci_sun4v_scan_bus(struct pci_controller_info *p) static unsigned long probe_existing_entries(struct pci_pbm_info *pbm, struct pci_iommu *iommu) { struct pci_iommu_arena *arena = &iommu->arena; struct iommu_arena *arena = &iommu->arena; unsigned long i, cnt = 0; u32 devhandle; Loading arch/sparc64/kernel/sbus.c +3 −9 Original line number Diff line number Diff line Loading @@ -26,16 +26,10 @@ #define MAP_BASE ((u32)0xc0000000) struct sbus_iommu_arena { unsigned long *map; unsigned int hint; unsigned int limit; }; struct sbus_iommu { spinlock_t lock; struct sbus_iommu_arena arena; struct iommu_arena arena; iopte_t *page_table; unsigned long strbuf_regs; Loading Loading @@ -123,7 +117,7 @@ static void sbus_strbuf_flush(struct sbus_iommu *iommu, u32 base, unsigned long /* Based largely upon the ppc64 iommu allocator. */ static long sbus_arena_alloc(struct sbus_iommu *iommu, unsigned long npages) { struct sbus_iommu_arena *arena = &iommu->arena; struct iommu_arena *arena = &iommu->arena; unsigned long n, i, start, end, limit; int pass; Loading Loading @@ -162,7 +156,7 @@ static long sbus_arena_alloc(struct sbus_iommu *iommu, unsigned long npages) return n; } static void sbus_arena_free(struct sbus_iommu_arena *arena, unsigned long base, unsigned long npages) static void sbus_arena_free(struct iommu_arena *arena, unsigned long base, unsigned long npages) { unsigned long i; Loading include/asm-sparc64/iommu.h +14 −8 Original line number Diff line number Diff line Loading @@ -7,15 +7,21 @@ #define _SPARC64_IOMMU_H /* The format of an iopte in the page tables. */ #define IOPTE_VALID 0x8000000000000000UL /* IOPTE is valid */ #define IOPTE_64K 0x2000000000000000UL /* IOPTE is for 64k page */ #define IOPTE_STBUF 0x1000000000000000UL /* DVMA can use streaming buffer */ #define IOPTE_INTRA 0x0800000000000000UL /* SBUS slot-->slot direct transfer*/ #define IOPTE_CONTEXT 0x07ff800000000000UL /* Context number */ #define IOPTE_PAGE 0x00007fffffffe000UL /* Physical page number (PA[42:13])*/ #define IOPTE_CACHE 0x0000000000000010UL /* Cached (in UPA E-cache) */ #define IOPTE_WRITE 0x0000000000000002UL /* Writeable */ #define IOPTE_VALID 0x8000000000000000UL #define IOPTE_64K 0x2000000000000000UL #define IOPTE_STBUF 0x1000000000000000UL #define IOPTE_INTRA 0x0800000000000000UL #define IOPTE_CONTEXT 0x07ff800000000000UL #define IOPTE_PAGE 0x00007fffffffe000UL #define IOPTE_CACHE 0x0000000000000010UL #define IOPTE_WRITE 0x0000000000000002UL #define IOMMU_NUM_CTXS 4096 struct iommu_arena { unsigned long *map; unsigned int hint; unsigned int limit; }; #endif /* !(_SPARC_IOMMU_H) */ include/asm-sparc64/pbm.h +1 −7 Original line number Diff line number Diff line Loading @@ -35,19 +35,13 @@ struct pci_controller_info; /* This contains the software state necessary to drive a PCI * controller's IOMMU. */ struct pci_iommu_arena { unsigned long *map; unsigned int hint; unsigned int limit; }; struct pci_iommu { /* This protects the controller's IOMMU and all * streaming buffers underneath. */ spinlock_t lock; struct pci_iommu_arena arena; struct iommu_arena arena; /* IOMMU page table, a linear array of ioptes. */ iopte_t *page_table; /* The page table itself. */ Loading Loading
arch/sparc64/kernel/pci_iommu.c +2 −2 Original line number Diff line number Diff line Loading @@ -77,7 +77,7 @@ static inline void iopte_make_dummy(struct pci_iommu *iommu, iopte_t *iopte) /* Based largely upon the ppc64 iommu allocator. */ static long pci_arena_alloc(struct pci_iommu *iommu, unsigned long npages) { struct pci_iommu_arena *arena = &iommu->arena; struct iommu_arena *arena = &iommu->arena; unsigned long n, i, start, end, limit; int pass; Loading Loading @@ -116,7 +116,7 @@ static long pci_arena_alloc(struct pci_iommu *iommu, unsigned long npages) return n; } static void pci_arena_free(struct pci_iommu_arena *arena, unsigned long base, unsigned long npages) static void pci_arena_free(struct iommu_arena *arena, unsigned long base, unsigned long npages) { unsigned long i; Loading
arch/sparc64/kernel/pci_sun4v.c +3 −3 Original line number Diff line number Diff line Loading @@ -110,7 +110,7 @@ static inline long pci_iommu_batch_end(void) return pci_iommu_batch_flush(p); } static long pci_arena_alloc(struct pci_iommu_arena *arena, unsigned long npages) static long pci_arena_alloc(struct iommu_arena *arena, unsigned long npages) { unsigned long n, i, start, end, limit; int pass; Loading Loading @@ -149,7 +149,7 @@ static long pci_arena_alloc(struct pci_iommu_arena *arena, unsigned long npages) return n; } static void pci_arena_free(struct pci_iommu_arena *arena, unsigned long base, unsigned long npages) static void pci_arena_free(struct iommu_arena *arena, unsigned long base, unsigned long npages) { unsigned long i; Loading Loading @@ -707,7 +707,7 @@ static void pci_sun4v_scan_bus(struct pci_controller_info *p) static unsigned long probe_existing_entries(struct pci_pbm_info *pbm, struct pci_iommu *iommu) { struct pci_iommu_arena *arena = &iommu->arena; struct iommu_arena *arena = &iommu->arena; unsigned long i, cnt = 0; u32 devhandle; Loading
arch/sparc64/kernel/sbus.c +3 −9 Original line number Diff line number Diff line Loading @@ -26,16 +26,10 @@ #define MAP_BASE ((u32)0xc0000000) struct sbus_iommu_arena { unsigned long *map; unsigned int hint; unsigned int limit; }; struct sbus_iommu { spinlock_t lock; struct sbus_iommu_arena arena; struct iommu_arena arena; iopte_t *page_table; unsigned long strbuf_regs; Loading Loading @@ -123,7 +117,7 @@ static void sbus_strbuf_flush(struct sbus_iommu *iommu, u32 base, unsigned long /* Based largely upon the ppc64 iommu allocator. */ static long sbus_arena_alloc(struct sbus_iommu *iommu, unsigned long npages) { struct sbus_iommu_arena *arena = &iommu->arena; struct iommu_arena *arena = &iommu->arena; unsigned long n, i, start, end, limit; int pass; Loading Loading @@ -162,7 +156,7 @@ static long sbus_arena_alloc(struct sbus_iommu *iommu, unsigned long npages) return n; } static void sbus_arena_free(struct sbus_iommu_arena *arena, unsigned long base, unsigned long npages) static void sbus_arena_free(struct iommu_arena *arena, unsigned long base, unsigned long npages) { unsigned long i; Loading
include/asm-sparc64/iommu.h +14 −8 Original line number Diff line number Diff line Loading @@ -7,15 +7,21 @@ #define _SPARC64_IOMMU_H /* The format of an iopte in the page tables. */ #define IOPTE_VALID 0x8000000000000000UL /* IOPTE is valid */ #define IOPTE_64K 0x2000000000000000UL /* IOPTE is for 64k page */ #define IOPTE_STBUF 0x1000000000000000UL /* DVMA can use streaming buffer */ #define IOPTE_INTRA 0x0800000000000000UL /* SBUS slot-->slot direct transfer*/ #define IOPTE_CONTEXT 0x07ff800000000000UL /* Context number */ #define IOPTE_PAGE 0x00007fffffffe000UL /* Physical page number (PA[42:13])*/ #define IOPTE_CACHE 0x0000000000000010UL /* Cached (in UPA E-cache) */ #define IOPTE_WRITE 0x0000000000000002UL /* Writeable */ #define IOPTE_VALID 0x8000000000000000UL #define IOPTE_64K 0x2000000000000000UL #define IOPTE_STBUF 0x1000000000000000UL #define IOPTE_INTRA 0x0800000000000000UL #define IOPTE_CONTEXT 0x07ff800000000000UL #define IOPTE_PAGE 0x00007fffffffe000UL #define IOPTE_CACHE 0x0000000000000010UL #define IOPTE_WRITE 0x0000000000000002UL #define IOMMU_NUM_CTXS 4096 struct iommu_arena { unsigned long *map; unsigned int hint; unsigned int limit; }; #endif /* !(_SPARC_IOMMU_H) */
include/asm-sparc64/pbm.h +1 −7 Original line number Diff line number Diff line Loading @@ -35,19 +35,13 @@ struct pci_controller_info; /* This contains the software state necessary to drive a PCI * controller's IOMMU. */ struct pci_iommu_arena { unsigned long *map; unsigned int hint; unsigned int limit; }; struct pci_iommu { /* This protects the controller's IOMMU and all * streaming buffers underneath. */ spinlock_t lock; struct pci_iommu_arena arena; struct iommu_arena arena; /* IOMMU page table, a linear array of ioptes. */ iopte_t *page_table; /* The page table itself. */ Loading