static void uniphier_cache_maint_all(u32 operation)
{
+ /* clear the complete notification flag */
+ writel(SSCOLPQS_EF, SSCOLPQS);
+
/* try until the command is successfully set */
do {
writel(SSCOQM_S_ALL | SSCOQM_CE | operation, SSCOQM);
while (readl(SSCOLPQS) != SSCOLPQS_EF)
;
- /* clear the complete notification flag */
- writel(SSCOLPQS_EF, SSCOLPQS);
-
uniphier_cache_sync();
}
static void __uniphier_cache_maint_range(u32 start, u32 size, u32 operation)
{
+ /* clear the complete notification flag */
+ writel(SSCOLPQS_EF, SSCOLPQS);
+
/* try until the command is successfully set */
do {
writel(SSCOQM_S_ADDRESS | SSCOQM_CE | operation, SSCOQM);
/* wait until the operation is completed */
while (readl(SSCOLPQS) != SSCOLPQS_EF)
;
-
- /* clear the complete notification flag */
- writel(SSCOLPQS_EF, SSCOLPQS);
}
static void uniphier_cache_maint_range(u32 start, u32 end, u32 operation)