• Guo Ren's avatar
    csky: Fixup mb() synchronization problem · 81b23ba6
    Guo Ren authored
    The mb() is the superset of dma and smp. Using bar.xxx to implement
    mb() will cause problem when sync data with dma device, becasue
    bar.xxx couldn't guarantee bus transactions finished at outside bus
    level.
    
    We must use sync.s instead of bar.xxx for dma data synchronization
    and it will guarantee retirement after getting the bus bresponse.
    
    Changes for V2:
     - Use sync.s for all mb, rmb, wmb, dma_wmb, dma_rmb.
    Signed-off-by: default avatarGuo Ren <ren_guo@c-sky.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    81b23ba6
barrier.h 1.68 KB