NIOS2: use dma_addr_t in dma_alloc_coherent
This allows to consolidate the prototype of this function across architectures. Also guard against calles that pass in NULL as the dma handle pointer. Signed-off-by: Lucas Stach <dev@lynxeye.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
f61fa09a42
commit
394a3533a8
|
@ -14,24 +14,25 @@
|
|||
*/
|
||||
|
||||
#if (DCACHE_SIZE != 0)
|
||||
static inline void *dma_alloc_coherent(size_t len, unsigned long *handle)
|
||||
static inline void *dma_alloc_coherent(size_t len, dma_addr_t *handle)
|
||||
{
|
||||
void *addr = malloc(len + DCACHE_LINE_SIZE);
|
||||
if (!addr)
|
||||
return 0;
|
||||
flush_dcache_range((unsigned long)addr,(unsigned long)addr + len + DCACHE_LINE_SIZE);
|
||||
*handle = ((unsigned long)addr +
|
||||
(DCACHE_LINE_SIZE - 1)) &
|
||||
~(DCACHE_LINE_SIZE - 1) & ~(IO_REGION_BASE);
|
||||
if (handle)
|
||||
*handle = ((dma_addr_t)addr + (DCACHE_LINE_SIZE - 1)) &
|
||||
~(DCACHE_LINE_SIZE - 1) & ~(IO_REGION_BASE);
|
||||
return (void *)(*handle | IO_REGION_BASE);
|
||||
}
|
||||
#else
|
||||
static inline void *dma_alloc_coherent(size_t len, unsigned long *handle)
|
||||
static inline void *dma_alloc_coherent(size_t len, dma_addr_t *handle)
|
||||
{
|
||||
void *addr = malloc(len);
|
||||
if (!addr)
|
||||
return 0;
|
||||
*handle = (unsigned long)addr;
|
||||
if (handle)
|
||||
*handle = (dma_addr_t)addr;
|
||||
return (void *)(*handle | IO_REGION_BASE);
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -3,5 +3,7 @@
|
|||
|
||||
#include <asm/int-ll64.h>
|
||||
|
||||
typedef u32 dma_addr_t;
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -520,7 +520,7 @@ static int tse_probe(struct device_d *dev)
|
|||
return PTR_ERR(tx_desc);
|
||||
rx_desc = tx_desc + 2;
|
||||
#else
|
||||
tx_desc = dma_alloc_coherent(sizeof(*tx_desc) * (3 + PKTBUFSRX), (unsigned long *)&dma_handle);
|
||||
tx_desc = dma_alloc_coherent(sizeof(*tx_desc) * (3 + PKTBUFSRX), (dma_addr_t *)&dma_handle);
|
||||
rx_desc = tx_desc + 2;
|
||||
|
||||
if (!tx_desc) {
|
||||
|
|
Loading…
Reference in New Issue