Skip to content
Snippets Groups Projects
Commit bd91508b authored by Alexey Brodkin's avatar Alexey Brodkin
Browse files

arc/cache: really do invalidate_dcache_all() even if IOC exists


invalidate_dcache_all() could be used in different use-cases
and what is especially important most of those cases won't be
related to DMAed data to or from peripherals, i.e. we'll be doing
invalidation of data used purely by CPU cores.

Given that IOC engine only snoops data that goes through DMA
we need to care ourselves about data used only by CPU cores
and so remove dependency on IOC from invalidate_dcache_all()
and always do real invalidation.

Signed-off-by: default avatarAlexey Brodkin <abrodkin@synopsys.com>
parent 6b3943f1
No related branches found
No related tags found
No related merge requests found
...@@ -417,13 +417,10 @@ void flush_cache(unsigned long start, unsigned long size) ...@@ -417,13 +417,10 @@ void flush_cache(unsigned long start, unsigned long size)
void invalidate_dcache_all(void) void invalidate_dcache_all(void)
{ {
#ifdef CONFIG_ISA_ARCV2 __dc_entire_op(OP_INV);
if (!ioc_exists)
#endif
__dc_entire_op(OP_INV);
#ifdef CONFIG_ISA_ARCV2 #ifdef CONFIG_ISA_ARCV2
if (slc_exists && !ioc_exists) if (slc_exists)
__slc_entire_op(OP_INV); __slc_entire_op(OP_INV);
#endif #endif
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment