Path: blob/master/arch/cris/arch-v32/kernel/cache.c
15125 views
#include <linux/module.h>1#include <asm/io.h>2#include <arch/cache.h>3#include <arch/hwregs/dma.h>45/* This file is used to workaround a cache bug, Guinness TR 106. */67inline void flush_dma_descr(struct dma_descr_data *descr, int flush_buf)8{9/* Flush descriptor to make sure we get correct in_eop and after. */10asm volatile ("ftagd [%0]" :: "r" (descr));11/* Flush buffer pointed out by descriptor. */12if (flush_buf)13cris_flush_cache_range(phys_to_virt((unsigned)descr->buf),14(unsigned)(descr->after - descr->buf));15}16EXPORT_SYMBOL(flush_dma_descr);1718void flush_dma_list(struct dma_descr_data *descr)19{20while (1) {21flush_dma_descr(descr, 1);22if (descr->eol)23break;24descr = phys_to_virt((unsigned)descr->next);25}26}27EXPORT_SYMBOL(flush_dma_list);2829/* From cacheflush.S */30EXPORT_SYMBOL(cris_flush_cache);31/* From cacheflush.S */32EXPORT_SYMBOL(cris_flush_cache_range);333435