ARM: 8261/1: l2c: Get outer cache .write_sec callback from mach_desc only if not...
authorTomasz Figa <t.figa@samsung.com>
Thu, 8 Jan 2015 06:51:45 +0000 (07:51 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 16 Jan 2015 14:35:33 +0000 (14:35 +0000)
Certain platforms (i.e. Exynos) might need to set .write_sec callback
from firmware initialization which is happenning in .init_early callback
of machine descriptor. However current code will overwrite the pointer
with whatever is present in machine descriptor, even though it can be
already set earlier. This patch fixes this by making the assignment
conditional, depending on whether current .write_sec callback is NULL.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Tested-by: Nishanth Menon <nm@ti.com>
Acked-by: Nishanth Menon <nm@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/kernel/irq.c

index ad857bada96ce75ad09a6a8d79fee364d245df87..350f188c92d29447b59cbdcf62e0f98be5eed484 100644 (file)
@@ -109,7 +109,8 @@ void __init init_IRQ(void)
 
        if (IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_CACHE_L2X0) &&
            (machine_desc->l2c_aux_mask || machine_desc->l2c_aux_val)) {
-               outer_cache.write_sec = machine_desc->l2c_write_sec;
+               if (!outer_cache.write_sec)
+                       outer_cache.write_sec = machine_desc->l2c_write_sec;
                ret = l2x0_of_init(machine_desc->l2c_aux_val,
                                   machine_desc->l2c_aux_mask);
                if (ret)