dde_linux: add dma_wmb/rmb barriers for arm_v6

This commit is contained in:
Alexander Boettcher 2020-01-10 14:08:58 +01:00 committed by Christian Helmuth
parent d8e2c95597
commit 2256f5fb4b
1 changed files with 12 additions and 9 deletions

View File

@ -11,24 +11,27 @@
* version 2.
*/
/*******************
** asm/barrier.h **
*******************/
/*******************************************
** source/arch/arm/include/asm/barrier.h **
*******************************************/
#define mb() asm volatile ("": : :"memory")
#define dsb() asm volatile ("mcr p15, 0, %0, c7, c10, 4": : "r" (0) : "memory")
#define dmb() asm volatile ("mcr p15, 0, %0, c7, c10, 5": : "r" (0) : "memory")
#define mb() dsb()
#define rmb() mb()
#define wmb() asm volatile ("": : :"memory")
#define wmb() dsb()
#define dma_wmb() barrier()
#define dma_rmb() barrier()
#define dma_wmb() dmb()
#define dma_rmb() dmb()
/*
* This is the "safe" implementation as needed for a configuration
* with SMP enabled.
*/
#define smp_mb() asm volatile ("": : :"memory")
#define smp_mb() dmb()
#define smp_rmb() smp_mb()
#define smp_wmb() asm volatile ("": : :"memory")
#define smp_wmb() dmb()
static inline void barrier() { asm volatile ("": : :"memory"); }