|
@@ -82,7 +82,7 @@ struct cpdma_desc {
|
|
|
|
|
|
struct cpdma_desc_pool {
|
|
|
phys_addr_t phys;
|
|
|
- u32 hw_addr;
|
|
|
+ dma_addr_t hw_addr;
|
|
|
void __iomem *iomap; /* ioremap map */
|
|
|
void *cpumap; /* dma_alloc map */
|
|
|
int desc_size, mem_size;
|
|
@@ -152,7 +152,7 @@ struct cpdma_chan {
|
|
|
* abstract out these details
|
|
|
*/
|
|
|
static struct cpdma_desc_pool *
|
|
|
-cpdma_desc_pool_create(struct device *dev, u32 phys, u32 hw_addr,
|
|
|
+cpdma_desc_pool_create(struct device *dev, u32 phys, dma_addr_t hw_addr,
|
|
|
int size, int align)
|
|
|
{
|
|
|
int bitmap_size;
|
|
@@ -176,13 +176,13 @@ cpdma_desc_pool_create(struct device *dev, u32 phys, u32 hw_addr,
|
|
|
|
|
|
if (phys) {
|
|
|
pool->phys = phys;
|
|
|
- pool->iomap = ioremap(phys, size);
|
|
|
+ pool->iomap = ioremap(phys, size); /* should be memremap? */
|
|
|
pool->hw_addr = hw_addr;
|
|
|
} else {
|
|
|
- pool->cpumap = dma_alloc_coherent(dev, size, &pool->phys,
|
|
|
+ pool->cpumap = dma_alloc_coherent(dev, size, &pool->hw_addr,
|
|
|
GFP_KERNEL);
|
|
|
- pool->iomap = pool->cpumap;
|
|
|
- pool->hw_addr = pool->phys;
|
|
|
+ pool->iomap = (void __iomem __force *)pool->cpumap;
|
|
|
+ pool->phys = pool->hw_addr; /* assumes no IOMMU, don't use this value */
|
|
|
}
|
|
|
|
|
|
if (pool->iomap)
|