diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-sh64/dma-mapping.h | 5 | ||||
-rw-r--r-- | include/asm-sh64/pci.h | 9 | ||||
-rw-r--r-- | include/asm-sh64/scatterlist.h | 9 |
3 files changed, 12 insertions, 11 deletions
diff --git a/include/asm-sh64/dma-mapping.h b/include/asm-sh64/dma-mapping.h index 1438b763a5ea..18f8dd642ac5 100644 --- a/include/asm-sh64/dma-mapping.h +++ b/include/asm-sh64/dma-mapping.h | |||
@@ -42,8 +42,9 @@ static inline void dma_free_coherent(struct device *dev, size_t size, | |||
42 | static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size, | 42 | static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size, |
43 | enum dma_data_direction dir) | 43 | enum dma_data_direction dir) |
44 | { | 44 | { |
45 | unsigned long s = (unsigned long) vaddr & L1_CACHE_ALIGN_MASK; | 45 | unsigned long start = (unsigned long) vaddr; |
46 | unsigned long e = (vaddr + size) & L1_CACHE_ALIGN_MASK; | 46 | unsigned long s = start & L1_CACHE_ALIGN_MASK; |
47 | unsigned long e = (start + size) & L1_CACHE_ALIGN_MASK; | ||
47 | 48 | ||
48 | for (; s <= e; s += L1_CACHE_BYTES) | 49 | for (; s <= e; s += L1_CACHE_BYTES) |
49 | asm volatile ("ocbp %0, 0" : : "r" (s)); | 50 | asm volatile ("ocbp %0, 0" : : "r" (s)); |
diff --git a/include/asm-sh64/pci.h b/include/asm-sh64/pci.h index 57a67cf7a5c4..18055dbbb4b5 100644 --- a/include/asm-sh64/pci.h +++ b/include/asm-sh64/pci.h | |||
@@ -72,15 +72,6 @@ static inline void pcibios_penalize_isa_irq(int irq, int active) | |||
72 | #define pci_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0) | 72 | #define pci_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0) |
73 | #endif | 73 | #endif |
74 | 74 | ||
75 | /* These macros should be used after a pci_map_sg call has been done | ||
76 | * to get bus addresses of each of the SG entries and their lengths. | ||
77 | * You should only work with the number of sg entries pci_map_sg | ||
78 | * returns, or alternatively stop on the first sg_dma_len(sg) which | ||
79 | * is 0. | ||
80 | */ | ||
81 | #define sg_dma_address(sg) ((sg)->dma_address) | ||
82 | #define sg_dma_len(sg) ((sg)->length) | ||
83 | |||
84 | #ifdef CONFIG_PCI | 75 | #ifdef CONFIG_PCI |
85 | static inline void pci_dma_burst_advice(struct pci_dev *pdev, | 76 | static inline void pci_dma_burst_advice(struct pci_dev *pdev, |
86 | enum pci_dma_burst_strategy *strat, | 77 | enum pci_dma_burst_strategy *strat, |
diff --git a/include/asm-sh64/scatterlist.h b/include/asm-sh64/scatterlist.h index 5109251970e7..7f729bbfce43 100644 --- a/include/asm-sh64/scatterlist.h +++ b/include/asm-sh64/scatterlist.h | |||
@@ -23,6 +23,15 @@ struct scatterlist { | |||
23 | unsigned int length; | 23 | unsigned int length; |
24 | }; | 24 | }; |
25 | 25 | ||
26 | /* These macros should be used after a pci_map_sg call has been done | ||
27 | * to get bus addresses of each of the SG entries and their lengths. | ||
28 | * You should only work with the number of sg entries pci_map_sg | ||
29 | * returns, or alternatively stop on the first sg_dma_len(sg) which | ||
30 | * is 0. | ||
31 | */ | ||
32 | #define sg_dma_address(sg) ((sg)->dma_address) | ||
33 | #define sg_dma_len(sg) ((sg)->length) | ||
34 | |||
26 | #define ISA_DMA_THRESHOLD (0xffffffff) | 35 | #define ISA_DMA_THRESHOLD (0xffffffff) |
27 | 36 | ||
28 | #endif /* !__ASM_SH64_SCATTERLIST_H */ | 37 | #endif /* !__ASM_SH64_SCATTERLIST_H */ |