
On Fri, May 04, 2018 at 09:12:49AM +0200, Emmanuel Vadot wrote:
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
In this specific case before we could use weak functions we would need to do some wide-ranging cleanups for consistently named and functional cache functions.