
On Mon, 30 Apr 2018 10:37:50 +0200 "Dr. Philipp Tomsich" philipp.tomsich@theobroma-systems.com wrote:
On 30 Apr 2018, at 10:34, Emmanuel Vadot manu@freebsd.org wrote:
Signed-off-by: Emmanuel Vadot manu@freebsd.org
api/api.c | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/api/api.c b/api/api.c index 7eee2fc083..7d1608b520 100644 --- a/api/api.c +++ b/api/api.c @@ -290,6 +290,17 @@ static int API_dev_close(va_list ap) if (!err) di->state = DEV_STA_CLOSED;
+#if defined(CONFIG_SYS_HAVE_DCACHE_MAINTENANCE) && \
- !defined(CONFIG_SYS_DCACHE_OFF)
- if (dcache_status())
flush_dcache_all();
+#endif +#if defined(CONFIG_SYS_HAVE_ICACHE_MAINTENANCE) && \
- !defined(CONFIG_SYS_ICACHE_OFF)
- if (icache_status())
invalidate_icache_all();
+#endif
Wouldn?t it be a cleaner option to make flush_dcache_all and invalidate_icache_all weak-functions and provide a default implementation that does nothing. Those architectures that then need to implement specific cache maintenance, could override these as required.
Tom had some concern about using weak function for this, see https://lists.denx.de/pipermail/u-boot/2017-February/280652.html
But if everybody is happy with me adding some global weak function for caches I'll do that.
return err; }
-- 2.16.3