Squashed backup commit (no shallow-clone history issues) of xiaomi-mt6833-dev/kernel_xiaomi_mt6833 (lineage-23.2 branch, upstream commit 9eece662e) plus all fixes applied to get everpal_defconfig building clean against a modern (GCC 15.2.0) toolchain -- see the previous commit message on the lineage-23.2 branch (also in this repo history is not available here since this is a squashed snapshot; full incremental history lives in the local DL380 checkout and the upstream GitHub remote). Upstream: https://github.com/xiaomi-mt6833-dev/kernel_xiaomi_mt6833 (lineage-23.2)
35 lines
924 B
C
35 lines
924 B
C
// SPDX-License-Identifier: GPL-2.0
|
|
#include <linux/module.h>
|
|
#include <asm/io.h>
|
|
#include <arch/cache.h>
|
|
#include <arch/hwregs/dma.h>
|
|
|
|
/* This file is used to workaround a cache bug, Guinness TR 106. */
|
|
|
|
inline void flush_dma_descr(struct dma_descr_data *descr, int flush_buf)
|
|
{
|
|
/* Flush descriptor to make sure we get correct in_eop and after. */
|
|
asm volatile ("ftagd [%0]" :: "r" (descr));
|
|
/* Flush buffer pointed out by descriptor. */
|
|
if (flush_buf)
|
|
cris_flush_cache_range(phys_to_virt((unsigned)descr->buf),
|
|
(unsigned)(descr->after - descr->buf));
|
|
}
|
|
EXPORT_SYMBOL(flush_dma_descr);
|
|
|
|
void flush_dma_list(struct dma_descr_data *descr)
|
|
{
|
|
while (1) {
|
|
flush_dma_descr(descr, 1);
|
|
if (descr->eol)
|
|
break;
|
|
descr = phys_to_virt((unsigned)descr->next);
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(flush_dma_list);
|
|
|
|
/* From cacheflush.S */
|
|
EXPORT_SYMBOL(cris_flush_cache);
|
|
/* From cacheflush.S */
|
|
EXPORT_SYMBOL(cris_flush_cache_range);
|