public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
From: rmk+kernel@arm•linux.org.uk (Russell King)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCH 02/16] ARM: l2c: add platform independent core L2 cache initialisation
Date: Mon, 28 Apr 2014 17:57:57 +0100	[thread overview]
Message-ID: <E1WeosP-0002PO-5m@rmk-PC.arm.linux.org.uk> (raw)
In-Reply-To: <20140428165631.GM26756@n2100.arm.linux.org.uk>

Add a hook into the core ARM code to perform L2 cache initialisation
in a platform independent manner.  Platforms still get to indicate
their auxiliary control register values and mask, but the
initialisation call will now be made from generic code.

Signed-off-by: Russell King <rmk+kernel@arm•linux.org.uk>
---
 arch/arm/include/asm/mach/arch.h |  3 +++
 arch/arm/kernel/irq.c            | 12 ++++++++++++
 2 files changed, 15 insertions(+)

diff --git a/arch/arm/include/asm/mach/arch.h b/arch/arm/include/asm/mach/arch.h
index 17a3fa2979e8..5249cc3c52f4 100644
--- a/arch/arm/include/asm/mach/arch.h
+++ b/arch/arm/include/asm/mach/arch.h
@@ -45,6 +45,9 @@ struct machine_desc {
 	unsigned char		reserve_lp1 :1;	/* never has lp1	*/
 	unsigned char		reserve_lp2 :1;	/* never has lp2	*/
 	enum reboot_mode	reboot_mode;	/* default restart mode	*/
+	unsigned		l2c_aux_val;	/* L2 cache aux value	*/
+	unsigned		l2c_aux_mask;	/* L2 cache aux mask	*/
+	void			(*l2c_write_sec)(unsigned long, unsigned);
 	struct smp_operations	*smp;		/* SMP operations	*/
 	bool			(*smp_init)(void);
 	void			(*fixup)(struct tag *, char **,
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c
index 9723d17b8f38..2c4257604513 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
-- 
1.8.3.1

  parent reply	other threads:[~2014-04-28 16:57 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-28 16:56 [PATCH 00/16] Another 16 L2C patches Russell King - ARM Linux
2014-04-28 16:57 ` [PATCH 01/16] ARM: l2c: bcm - remove UL (needs folding into earlier patch) Russell King
2014-04-28 16:57 ` Russell King [this message]
2014-04-28 17:54   ` [PATCH 02/16] ARM: l2c: add platform independent core L2 cache initialisation Rob Herring
2014-04-28 18:23     ` Russell King - ARM Linux
2014-04-28 18:50       ` Rob Herring
2014-04-28 19:12         ` Russell King - ARM Linux
2014-04-28 16:58 ` [PATCH 03/16] ARM: l2c: convert rockchip to generic l2c initialisation Russell King
2014-04-28 16:58 ` [PATCH 04/16] ARM: l2c: convert nomadik " Russell King
2014-04-28 16:58 ` [PATCH 05/16] ARM: l2c: convert zynq " Russell King
2014-04-28 16:58 ` [PATCH 06/16] ARM: l2c: convert highbank " Russell King
2014-04-28 16:58 ` [PATCH 07/16] ARM: l2c: convert tegra " Russell King
2014-04-28 17:28   ` Stephen Warren
2014-04-28 17:41     ` Russell King - ARM Linux
2014-04-28 16:58 ` [PATCH 08/16] ARM: l2c: convert prima2 " Russell King
2014-04-28 17:34   ` Matt Porter
2014-04-28 18:21     ` Russell King - ARM Linux
2014-04-28 16:58 ` [PATCH 09/16] ARM: l2c: convert vexpress " Russell King
2014-04-28 16:58 ` [PATCH 10/16] ARM: l2c: convert mvebu " Russell King
2014-04-28 16:58 ` [PATCH 11/16] ARM: l2c: convert bcm_5301x " Russell King
2014-04-28 16:58 ` [PATCH 12/16] ARM: l2c: convert imx vf610 " Russell King
2014-04-28 16:58 ` [PATCH 13/16] ARM: l2c: convert sti " Russell King
2014-04-28 16:58 ` [PATCH 14/16] ARM: l2c: convert exynos to generic l2c initialisation (and thereby fix it) Russell King
2014-04-28 16:59 ` [PATCH 15/16] ARM: l2c: convert socfpga to generic l2c initialisation Russell King
2014-04-28 17:56   ` Dinh Nguyen
2014-04-28 16:59 ` [PATCH 16/16] ARM: l2c: convert berlin " Russell King
2014-04-28 17:12 ` [PATCH 00/16] Another 16 L2C patches Stephen Warren
2014-04-28 17:27   ` Stephen Warren
2014-04-28 17:39     ` Russell King - ARM Linux
2014-04-28 18:08       ` Stephen Warren
2014-04-28 18:19         ` Russell King - ARM Linux
2014-04-28 18:40           ` Stephen Warren
2014-04-28 19:10             ` Russell King - ARM Linux
2014-04-28 19:00 ` Heiko Stübner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E1WeosP-0002PO-5m@rmk-PC.arm.linux.org.uk \
    --to=rmk+kernel@arm$(echo .)linux.org.uk \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox