sparc: Replace sbus_map_single and sbus_unmap_single with sbus_map_page and sbus_unmap_page

This is a preparation for using asm-generic/pci-dma-compat.h;
SPARC32 has two dma_map_ops structures for pci and sbus
(removing arch/sparc/kernel/dma.c, PCI and SBUS DMA accessor).

Signed-off-by: FUJITA Tomonori <[email protected]>
Tested-by: Robert Reif <[email protected]>
Acked-by: David S. Miller <[email protected]>
Cc: [email protected]
Cc: [email protected]
LKML-Reference: <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
This commit is contained in:
FUJITA Tomonori 2009-08-10 11:53:15 +09:00 • committed by Ingo Molnar
commit c2c07dbd87
3 changed files with 10 additions and 8 deletions

View file

@ -68,8 +68,7 @@ static dma_addr_t dma32_map_page(struct device *dev, struct page *page,
return pci_map_page(to_pci_dev(dev), page, offset,
size, (int)direction);
#endif
return sbus_map_single(dev, page_address(page) + offset,
size, (int)direction);
return sbus_map_page(dev, page, offset, size, (int)direction);
}
static void dma32_unmap_page(struct device *dev, dma_addr_t dma_address,
@ -83,7 +82,7 @@ static void dma32_unmap_page(struct device *dev, dma_addr_t dma_address,
return;
}
#endif
sbus_unmap_single(dev, dma_address, size, (int)direction);
sbus_unmap_page(dev, dma_address, size, (int)direction);
}
static int dma32_map_sg(struct device *dev, struct scatterlist *sg,

View file

@ -1,8 +1,8 @@
void *sbus_alloc_consistent(struct device *dev, long len, u32 *dma_addrp);
void sbus_free_consistent(struct device *dev, long n, void *p, u32 ba);
dma_addr_t sbus_map_single(struct device *dev, void *va,
size_t len, int direction);
void sbus_unmap_single(struct device *dev, dma_addr_t ba,
dma_addr_t sbus_map_page(struct device *dev, struct page *page,
unsigned long offset, size_t len, int direction);
void sbus_unmap_page(struct device *dev, dma_addr_t ba,
size_t n, int direction);
int sbus_map_sg(struct device *dev, struct scatterlist *sg,
int n, int direction);

View file

@ -337,8 +337,11 @@ void sbus_free_consistent(struct device *dev, long n, void *p, u32 ba)
* CPU view of this memory may be inconsistent with
* a device view and explicit flushing is necessary.
*/
dma_addr_t sbus_map_single(struct device *dev, void *va, size_t len, int direction)
dma_addr_t sbus_map_page(struct device *dev, struct page *page,
unsigned long offset, size_t len, int direction)
{
void *va = page_address(page) + offset;
/* XXX why are some lengths signed, others unsigned? */
if (len <= 0) {
return 0;
@ -350,7 +353,7 @@ dma_addr_t sbus_map_single(struct device *dev, void *va, size_t len, int directi
return mmu_get_scsi_one(dev, va, len);
}
void sbus_unmap_single(struct device *dev, dma_addr_t ba, size_t n, int direction)
void sbus_unmap_page(struct device *dev, dma_addr_t ba, size_t n, int direction)
{
mmu_release_scsi_one(dev, ba, n);
}