diff options
Diffstat (limited to 'arch/arm/mach-vexpress/dcscb.c')
-rw-r--r-- | arch/arm/mach-vexpress/dcscb.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/arch/arm/mach-vexpress/dcscb.c b/arch/arm/mach-vexpress/dcscb.c index 14d499688736..788495d35cf9 100644 --- a/arch/arm/mach-vexpress/dcscb.c +++ b/arch/arm/mach-vexpress/dcscb.c | |||
@@ -137,11 +137,16 @@ static void dcscb_power_down(void) | |||
137 | v7_exit_coherency_flush(all); | 137 | v7_exit_coherency_flush(all); |
138 | 138 | ||
139 | /* | 139 | /* |
140 | * This is a harmless no-op. On platforms with a real | 140 | * A full outer cache flush could be needed at this point |
141 | * outer cache this might either be needed or not, | 141 | * on platforms with such a cache, depending on where the |
142 | * depending on where the outer cache sits. | 142 | * outer cache sits. In some cases the notion of a "last |
143 | * cluster standing" would need to be implemented if the | ||
144 | * outer cache is shared across clusters. In any case, when | ||
145 | * the outer cache needs flushing, there is no concurrent | ||
146 | * access to the cache controller to worry about and no | ||
147 | * special locking besides what is already provided by the | ||
148 | * MCPM state machinery is needed. | ||
143 | */ | 149 | */ |
144 | outer_flush_all(); | ||
145 | 150 | ||
146 | /* | 151 | /* |
147 | * Disable cluster-level coherency by masking | 152 | * Disable cluster-level coherency by masking |