diff options
| -rw-r--r-- | arch/sparc/include/asm/scatterlist.h | 33 | ||||
| -rw-r--r-- | arch/sparc/include/asm/scatterlist_32.h | 26 | ||||
| -rw-r--r-- | arch/sparc/include/asm/scatterlist_64.h | 27 | ||||
| -rw-r--r-- | arch/sparc/kernel/ioport.c | 4 | ||||
| -rw-r--r-- | arch/sparc/mm/io-unit.c | 8 | ||||
| -rw-r--r-- | arch/sparc/mm/iommu.c | 16 | ||||
| -rw-r--r-- | arch/sparc/mm/sun4c.c | 6 |
7 files changed, 43 insertions, 77 deletions
diff --git a/arch/sparc/include/asm/scatterlist.h b/arch/sparc/include/asm/scatterlist.h index ec21a4517641..e580f5581c88 100644 --- a/arch/sparc/include/asm/scatterlist.h +++ b/arch/sparc/include/asm/scatterlist.h | |||
| @@ -1,8 +1,27 @@ | |||
| 1 | #ifndef ___ASM_SPARC_SCATTERLIST_H | 1 | #ifndef _SPARC_SCATTERLIST_H |
| 2 | #define ___ASM_SPARC_SCATTERLIST_H | 2 | #define _SPARC_SCATTERLIST_H |
| 3 | #if defined(__sparc__) && defined(__arch64__) | 3 | |
| 4 | #include <asm/scatterlist_64.h> | 4 | #include <asm/page.h> |
| 5 | #else | 5 | #include <asm/types.h> |
| 6 | #include <asm/scatterlist_32.h> | 6 | |
| 7 | #endif | 7 | struct scatterlist { |
| 8 | #ifdef CONFIG_DEBUG_SG | ||
| 9 | unsigned long sg_magic; | ||
| 8 | #endif | 10 | #endif |
| 11 | unsigned long page_link; | ||
| 12 | unsigned int offset; | ||
| 13 | |||
| 14 | unsigned int length; | ||
| 15 | |||
| 16 | dma_addr_t dma_address; | ||
| 17 | __u32 dma_length; | ||
| 18 | }; | ||
| 19 | |||
| 20 | #define sg_dma_address(sg) ((sg)->dma_address) | ||
| 21 | #define sg_dma_len(sg) ((sg)->dma_length) | ||
| 22 | |||
| 23 | #define ISA_DMA_THRESHOLD (~0UL) | ||
| 24 | |||
| 25 | #define ARCH_HAS_SG_CHAIN | ||
| 26 | |||
| 27 | #endif /* !(_SPARC_SCATTERLIST_H) */ | ||
diff --git a/arch/sparc/include/asm/scatterlist_32.h b/arch/sparc/include/asm/scatterlist_32.h deleted file mode 100644 index c82609ca1d0f..000000000000 --- a/arch/sparc/include/asm/scatterlist_32.h +++ /dev/null | |||
| @@ -1,26 +0,0 @@ | |||
| 1 | #ifndef _SPARC_SCATTERLIST_H | ||
| 2 | #define _SPARC_SCATTERLIST_H | ||
| 3 | |||
| 4 | #include <linux/types.h> | ||
| 5 | |||
| 6 | struct scatterlist { | ||
| 7 | #ifdef CONFIG_DEBUG_SG | ||
| 8 | unsigned long sg_magic; | ||
| 9 | #endif | ||
| 10 | unsigned long page_link; | ||
| 11 | unsigned int offset; | ||
| 12 | |||
| 13 | unsigned int length; | ||
| 14 | |||
| 15 | __u32 dvma_address; /* A place to hang host-specific addresses at. */ | ||
| 16 | __u32 dvma_length; | ||
| 17 | }; | ||
| 18 | |||
| 19 | #define sg_dma_address(sg) ((sg)->dvma_address) | ||
| 20 | #define sg_dma_len(sg) ((sg)->dvma_length) | ||
| 21 | |||
| 22 | #define ISA_DMA_THRESHOLD (~0UL) | ||
| 23 | |||
| 24 | #define ARCH_HAS_SG_CHAIN | ||
| 25 | |||
| 26 | #endif /* !(_SPARC_SCATTERLIST_H) */ | ||
diff --git a/arch/sparc/include/asm/scatterlist_64.h b/arch/sparc/include/asm/scatterlist_64.h deleted file mode 100644 index 81bd058f9382..000000000000 --- a/arch/sparc/include/asm/scatterlist_64.h +++ /dev/null | |||
| @@ -1,27 +0,0 @@ | |||
| 1 | #ifndef _SPARC64_SCATTERLIST_H | ||
| 2 | #define _SPARC64_SCATTERLIST_H | ||
| 3 | |||
| 4 | #include <asm/page.h> | ||
| 5 | #include <asm/types.h> | ||
| 6 | |||
| 7 | struct scatterlist { | ||
| 8 | #ifdef CONFIG_DEBUG_SG | ||
| 9 | unsigned long sg_magic; | ||
| 10 | #endif | ||
| 11 | unsigned long page_link; | ||
| 12 | unsigned int offset; | ||
| 13 | |||
| 14 | unsigned int length; | ||
| 15 | |||
| 16 | dma_addr_t dma_address; | ||
| 17 | __u32 dma_length; | ||
| 18 | }; | ||
| 19 | |||
| 20 | #define sg_dma_address(sg) ((sg)->dma_address) | ||
| 21 | #define sg_dma_len(sg) ((sg)->dma_length) | ||
| 22 | |||
| 23 | #define ISA_DMA_THRESHOLD (~0UL) | ||
| 24 | |||
| 25 | #define ARCH_HAS_SG_CHAIN | ||
| 26 | |||
| 27 | #endif /* !(_SPARC64_SCATTERLIST_H) */ | ||
diff --git a/arch/sparc/kernel/ioport.c b/arch/sparc/kernel/ioport.c index 4f025b36934b..7ce14f05eb48 100644 --- a/arch/sparc/kernel/ioport.c +++ b/arch/sparc/kernel/ioport.c | |||
| @@ -552,8 +552,8 @@ int pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sgl, int nents, | |||
| 552 | /* IIep is write-through, not flushing. */ | 552 | /* IIep is write-through, not flushing. */ |
| 553 | for_each_sg(sgl, sg, nents, n) { | 553 | for_each_sg(sgl, sg, nents, n) { |
| 554 | BUG_ON(page_address(sg_page(sg)) == NULL); | 554 | BUG_ON(page_address(sg_page(sg)) == NULL); |
| 555 | sg->dvma_address = virt_to_phys(sg_virt(sg)); | 555 | sg->dma_address = virt_to_phys(sg_virt(sg)); |
| 556 | sg->dvma_length = sg->length; | 556 | sg->dma_length = sg->length; |
| 557 | } | 557 | } |
| 558 | return nents; | 558 | return nents; |
| 559 | } | 559 | } |
diff --git a/arch/sparc/mm/io-unit.c b/arch/sparc/mm/io-unit.c index daadf5f88050..005e758a4db7 100644 --- a/arch/sparc/mm/io-unit.c +++ b/arch/sparc/mm/io-unit.c | |||
| @@ -156,8 +156,8 @@ static void iounit_get_scsi_sgl(struct device *dev, struct scatterlist *sg, int | |||
| 156 | spin_lock_irqsave(&iounit->lock, flags); | 156 | spin_lock_irqsave(&iounit->lock, flags); |
| 157 | while (sz != 0) { | 157 | while (sz != 0) { |
| 158 | --sz; | 158 | --sz; |
| 159 | sg->dvma_address = iounit_get_area(iounit, (unsigned long) sg_virt(sg), sg->length); | 159 | sg->dma_address = iounit_get_area(iounit, (unsigned long) sg_virt(sg), sg->length); |
| 160 | sg->dvma_length = sg->length; | 160 | sg->dma_length = sg->length; |
| 161 | sg = sg_next(sg); | 161 | sg = sg_next(sg); |
| 162 | } | 162 | } |
| 163 | spin_unlock_irqrestore(&iounit->lock, flags); | 163 | spin_unlock_irqrestore(&iounit->lock, flags); |
| @@ -186,8 +186,8 @@ static void iounit_release_scsi_sgl(struct device *dev, struct scatterlist *sg, | |||
| 186 | spin_lock_irqsave(&iounit->lock, flags); | 186 | spin_lock_irqsave(&iounit->lock, flags); |
| 187 | while (sz != 0) { | 187 | while (sz != 0) { |
| 188 | --sz; | 188 | --sz; |
| 189 | len = ((sg->dvma_address & ~PAGE_MASK) + sg->length + (PAGE_SIZE-1)) >> PAGE_SHIFT; | 189 | len = ((sg->dma_address & ~PAGE_MASK) + sg->length + (PAGE_SIZE-1)) >> PAGE_SHIFT; |
| 190 | vaddr = (sg->dvma_address - IOUNIT_DMA_BASE) >> PAGE_SHIFT; | 190 | vaddr = (sg->dma_address - IOUNIT_DMA_BASE) >> PAGE_SHIFT; |
| 191 | IOD(("iounit_release %08lx-%08lx\n", (long)vaddr, (long)len+vaddr)); | 191 | IOD(("iounit_release %08lx-%08lx\n", (long)vaddr, (long)len+vaddr)); |
| 192 | for (len += vaddr; vaddr < len; vaddr++) | 192 | for (len += vaddr; vaddr < len; vaddr++) |
| 193 | clear_bit(vaddr, iounit->bmap); | 193 | clear_bit(vaddr, iounit->bmap); |
diff --git a/arch/sparc/mm/iommu.c b/arch/sparc/mm/iommu.c index e7a499e3aa3c..b2e6e73888b5 100644 --- a/arch/sparc/mm/iommu.c +++ b/arch/sparc/mm/iommu.c | |||
| @@ -245,8 +245,8 @@ static void iommu_get_scsi_sgl_noflush(struct device *dev, struct scatterlist *s | |||
| 245 | while (sz != 0) { | 245 | while (sz != 0) { |
| 246 | --sz; | 246 | --sz; |
| 247 | n = (sg->length + sg->offset + PAGE_SIZE-1) >> PAGE_SHIFT; | 247 | n = (sg->length + sg->offset + PAGE_SIZE-1) >> PAGE_SHIFT; |
| 248 | sg->dvma_address = iommu_get_one(dev, sg_page(sg), n) + sg->offset; | 248 | sg->dma_address = iommu_get_one(dev, sg_page(sg), n) + sg->offset; |
| 249 | sg->dvma_length = (__u32) sg->length; | 249 | sg->dma_length = sg->length; |
| 250 | sg = sg_next(sg); | 250 | sg = sg_next(sg); |
| 251 | } | 251 | } |
| 252 | } | 252 | } |
| @@ -259,8 +259,8 @@ static void iommu_get_scsi_sgl_gflush(struct device *dev, struct scatterlist *sg | |||
| 259 | while (sz != 0) { | 259 | while (sz != 0) { |
| 260 | --sz; | 260 | --sz; |
| 261 | n = (sg->length + sg->offset + PAGE_SIZE-1) >> PAGE_SHIFT; | 261 | n = (sg->length + sg->offset + PAGE_SIZE-1) >> PAGE_SHIFT; |
| 262 | sg->dvma_address = iommu_get_one(dev, sg_page(sg), n) + sg->offset; | 262 | sg->dma_address = iommu_get_one(dev, sg_page(sg), n) + sg->offset; |
| 263 | sg->dvma_length = (__u32) sg->length; | 263 | sg->dma_length = sg->length; |
| 264 | sg = sg_next(sg); | 264 | sg = sg_next(sg); |
| 265 | } | 265 | } |
| 266 | } | 266 | } |
| @@ -290,8 +290,8 @@ static void iommu_get_scsi_sgl_pflush(struct device *dev, struct scatterlist *sg | |||
| 290 | } | 290 | } |
| 291 | } | 291 | } |
| 292 | 292 | ||
| 293 | sg->dvma_address = iommu_get_one(dev, sg_page(sg), n) + sg->offset; | 293 | sg->dma_address = iommu_get_one(dev, sg_page(sg), n) + sg->offset; |
| 294 | sg->dvma_length = (__u32) sg->length; | 294 | sg->dma_length = sg->length; |
| 295 | sg = sg_next(sg); | 295 | sg = sg_next(sg); |
| 296 | } | 296 | } |
| 297 | } | 297 | } |
| @@ -330,8 +330,8 @@ static void iommu_release_scsi_sgl(struct device *dev, struct scatterlist *sg, i | |||
| 330 | --sz; | 330 | --sz; |
| 331 | 331 | ||
| 332 | n = (sg->length + sg->offset + PAGE_SIZE-1) >> PAGE_SHIFT; | 332 | n = (sg->length + sg->offset + PAGE_SIZE-1) >> PAGE_SHIFT; |
| 333 | iommu_release_one(dev, sg->dvma_address & PAGE_MASK, n); | 333 | iommu_release_one(dev, sg->dma_address & PAGE_MASK, n); |
| 334 | sg->dvma_address = 0x21212121; | 334 | sg->dma_address = 0x21212121; |
| 335 | sg = sg_next(sg); | 335 | sg = sg_next(sg); |
| 336 | } | 336 | } |
| 337 | } | 337 | } |
diff --git a/arch/sparc/mm/sun4c.c b/arch/sparc/mm/sun4c.c index 6b0c49004ba6..ad0ce117f352 100644 --- a/arch/sparc/mm/sun4c.c +++ b/arch/sparc/mm/sun4c.c | |||
| @@ -1122,8 +1122,8 @@ static void sun4c_get_scsi_sgl(struct device *dev, struct scatterlist *sg, int s | |||
| 1122 | { | 1122 | { |
| 1123 | while (sz != 0) { | 1123 | while (sz != 0) { |
| 1124 | --sz; | 1124 | --sz; |
| 1125 | sg->dvma_address = (__u32)sun4c_lockarea(sg_virt(sg), sg->length); | 1125 | sg->dma_address = (__u32)sun4c_lockarea(sg_virt(sg), sg->length); |
| 1126 | sg->dvma_length = sg->length; | 1126 | sg->dma_length = sg->length; |
| 1127 | sg = sg_next(sg); | 1127 | sg = sg_next(sg); |
| 1128 | } | 1128 | } |
| 1129 | } | 1129 | } |
| @@ -1139,7 +1139,7 @@ static void sun4c_release_scsi_sgl(struct device *dev, struct scatterlist *sg, i | |||
| 1139 | { | 1139 | { |
| 1140 | while (sz != 0) { | 1140 | while (sz != 0) { |
| 1141 | --sz; | 1141 | --sz; |
| 1142 | sun4c_unlockarea((char *)sg->dvma_address, sg->length); | 1142 | sun4c_unlockarea((char *)sg->dma_address, sg->length); |
| 1143 | sg = sg_next(sg); | 1143 | sg = sg_next(sg); |
| 1144 | } | 1144 | } |
| 1145 | } | 1145 | } |
