summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHoegeun Kwon <hoegeun.kwon@samsung.com>2023-07-26 20:32:55 +0900
committerHoegeun Kwon <hoegeun.kwon@samsung.com>2023-07-26 20:32:55 +0900
commitf8496c893debead6b5a75912946f048ed8c952a2 (patch)
treea9bc0e3c91d29f2b0691e45379fcb9c68d2961ac
parenta16ffa31a98812de35a1bd8b9c3a19d18e794b26 (diff)
downloadlinux-starfive-f8496c893debead6b5a75912946f048ed8c952a2.tar.gz
linux-starfive-f8496c893debead6b5a75912946f048ed8c952a2.tar.bz2
linux-starfive-f8496c893debead6b5a75912946f048ed8c952a2.zip
soc: sifive: ccache: Add delay after flushaccepted/tizen/unified/riscv/20230730.231938
Problems with cache flush at resolutions exceeding FUD and with inno hdmi driver. It runs a cache flush and requires a delay. So add delay after cache flush. Change-Id: Id8b1398dcce04851577912e6c1dfd4a2b580a043 Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
-rw-r--r--drivers/soc/sifive/sifive_ccache.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/soc/sifive/sifive_ccache.c b/drivers/soc/sifive/sifive_ccache.c
index 79de3179d066..73c39c349d36 100644
--- a/drivers/soc/sifive/sifive_ccache.c
+++ b/drivers/soc/sifive/sifive_ccache.c
@@ -9,6 +9,9 @@
#define pr_fmt(fmt) "CCACHE: " fmt
#include <linux/debugfs.h>
+#ifdef CONFIG_STARFIVE_INNO_HDMI
+#include <linux/delay.h>
+#endif
#include <linux/interrupt.h>
#include <linux/of_irq.h>
#include <linux/of_address.h>
@@ -159,6 +162,13 @@ void sifive_flush64_range(unsigned long start, unsigned long len)
writeq(line, ccache_base + SIFIVE_FLUSH64);
mb();
}
+#ifdef CONFIG_STARFIVE_INNO_HDMI
+ /*
+ * Problems with cache flush at resolutions exceeding FUD.
+ * It runs a cache flush and requires a delay.
+ */
+ udelay(700);
+#endif
}
EXPORT_SYMBOL_GPL(sifive_flush64_range);
#endif