diff options
Diffstat (limited to 'arch/arm/kernel/irq.c')
| -rw-r--r-- | arch/arm/kernel/irq.c | 12 | 
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c index 9723d17b8f3..2c425760451 100644 --- a/arch/arm/kernel/irq.c +++ b/arch/arm/kernel/irq.c @@ -37,6 +37,7 @@  #include <linux/proc_fs.h>  #include <linux/export.h> +#include <asm/hardware/cache-l2x0.h>  #include <asm/exception.h>  #include <asm/mach/arch.h>  #include <asm/mach/irq.h> @@ -115,10 +116,21 @@ EXPORT_SYMBOL_GPL(set_irq_flags);  void __init init_IRQ(void)  { +	int ret; +  	if (IS_ENABLED(CONFIG_OF) && !machine_desc->init_irq)  		irqchip_init();  	else  		machine_desc->init_irq(); + +	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; +		ret = l2x0_of_init(machine_desc->l2c_aux_val, +				   machine_desc->l2c_aux_mask); +		if (ret) +			pr_err("L2C: failed to init: %d\n", ret); +	}  }  #ifdef CONFIG_MULTI_IRQ_HANDLER  | 
