Commit 4f8232bb authored by Christoph Hellwig's avatar Christoph Hellwig
Browse files

dma-direct: remove the cached_kernel_address hook



dma-direct now finds the kernel address for coherent allocations based
on the dma address, so the cached_kernel_address hooks is unused and
can be removed entirely.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarRobin Murphy <robin.murphy@arm.com>
parent 286c21de
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -249,7 +249,7 @@ config ARCH_HAS_SET_DIRECT_MAP


#
#
# Select if arch has an uncached kernel segment and provides the
# Select if arch has an uncached kernel segment and provides the
# uncached_kernel_address / cached_kernel_address symbols to use it
# uncached_kernel_address symbol to use it
#
#
config ARCH_HAS_UNCACHED_SEGMENT
config ARCH_HAS_UNCACHED_SEGMENT
	select ARCH_HAS_DMA_PREP_COHERENT
	select ARCH_HAS_DMA_PREP_COHERENT
+0 −7
Original line number Original line Diff line number Diff line
@@ -49,11 +49,4 @@ void *uncached_kernel_address(void *ptr)
		pr_warn("ERROR: Your cache coherent area is CACHED!!!\n");
		pr_warn("ERROR: Your cache coherent area is CACHED!!!\n");
	return (void *)addr;
	return (void *)addr;
}
}

void *cached_kernel_address(void *ptr)
{
	unsigned long addr = (unsigned long)ptr;

	return (void *)(addr & ~UNCACHED_SHADOW_MASK);
}
#endif /* CONFIG_MMU */
#endif /* CONFIG_MMU */
+0 −5
Original line number Original line Diff line number Diff line
@@ -54,11 +54,6 @@ void *uncached_kernel_address(void *addr)
	return (void *)(__pa(addr) + UNCAC_BASE);
	return (void *)(__pa(addr) + UNCAC_BASE);
}
}


void *cached_kernel_address(void *addr)
{
	return __va(addr) - UNCAC_BASE;
}

static inline void dma_sync_virt(void *addr, size_t size,
static inline void dma_sync_virt(void *addr, size_t size,
		enum dma_data_direction dir)
		enum dma_data_direction dir)
{
{
+0 −10
Original line number Original line Diff line number Diff line
@@ -75,13 +75,3 @@ void *uncached_kernel_address(void *ptr)


	return (void *)ptr;
	return (void *)ptr;
}
}

void *cached_kernel_address(void *ptr)
{
	unsigned long addr = (unsigned long)ptr;

	addr &= ~CONFIG_NIOS2_IO_REGION_BASE;
	addr |= CONFIG_NIOS2_KERNEL_REGION_BASE;

	return (void *)ptr;
}
+2 −8
Original line number Original line Diff line number Diff line
@@ -88,18 +88,12 @@ void arch_dma_prep_coherent(struct page *page, size_t size)


/*
/*
 * Memory caching is platform-dependent in noMMU xtensa configurations.
 * Memory caching is platform-dependent in noMMU xtensa configurations.
 * The following two functions should be implemented in platform code
 * This function should be implemented in platform code in order to enable
 * in order to enable coherent DMA memory operations when CONFIG_MMU is not
 * coherent DMA memory operations when CONFIG_MMU is not enabled.
 * enabled.
 */
 */
#ifdef CONFIG_MMU
#ifdef CONFIG_MMU
void *uncached_kernel_address(void *p)
void *uncached_kernel_address(void *p)
{
{
	return p + XCHAL_KSEG_BYPASS_VADDR - XCHAL_KSEG_CACHED_VADDR;
	return p + XCHAL_KSEG_BYPASS_VADDR - XCHAL_KSEG_CACHED_VADDR;
}
}

void *cached_kernel_address(void *p)
{
	return p + XCHAL_KSEG_CACHED_VADDR - XCHAL_KSEG_BYPASS_VADDR;
}
#endif /* CONFIG_MMU */
#endif /* CONFIG_MMU */
Loading