soc: sifive: ccache: Add delay after flush 82/296382/1 accepted/tizen/unified/riscv/20230730.231938
authorHoegeun Kwon <hoegeun.kwon@samsung.com>
Wed, 26 Jul 2023 11:32:55 +0000 (20:32 +0900)
committerHoegeun Kwon <hoegeun.kwon@samsung.com>
Wed, 26 Jul 2023 11:32:55 +0000 (20:32 +0900)
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>
drivers/soc/sifive/sifive_ccache.c

index 79de317..73c39c3 100644 (file)
@@ -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