Commit 50beefde authored by Russell King's avatar Russell King

ARM: l2c: clean up l2c_configure()

l2c_configure() does not follow the pattern of other l2c_* functions.
Fix this so that it does to avoid future confusion.
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 7705dd25
...@@ -110,15 +110,7 @@ static inline void l2c_unlock(void __iomem *base, unsigned num) ...@@ -110,15 +110,7 @@ static inline void l2c_unlock(void __iomem *base, unsigned num)
static void l2c_configure(void __iomem *base) static void l2c_configure(void __iomem *base)
{ {
if (outer_cache.configure) {
outer_cache.configure(&l2x0_saved_regs);
return;
}
l2c_write_sec(l2x0_saved_regs.aux_ctrl, base, L2X0_AUX_CTRL); l2c_write_sec(l2x0_saved_regs.aux_ctrl, base, L2X0_AUX_CTRL);
if (l2x0_data->configure)
l2x0_data->configure(base);
} }
/* /*
...@@ -130,7 +122,11 @@ static void l2c_enable(void __iomem *base, u32 aux, unsigned num_lock) ...@@ -130,7 +122,11 @@ static void l2c_enable(void __iomem *base, u32 aux, unsigned num_lock)
unsigned long flags; unsigned long flags;
l2x0_saved_regs.aux_ctrl = aux; l2x0_saved_regs.aux_ctrl = aux;
l2c_configure(base);
if (outer_cache.configure)
outer_cache.configure(&l2x0_saved_regs);
else
l2x0_data->configure(base);
l2c_unlock(base, num_lock); l2c_unlock(base, num_lock);
...@@ -252,6 +248,7 @@ static const struct l2c_init_data l2c210_data __initconst = { ...@@ -252,6 +248,7 @@ static const struct l2c_init_data l2c210_data __initconst = {
.num_lock = 1, .num_lock = 1,
.enable = l2c_enable, .enable = l2c_enable,
.save = l2c_save, .save = l2c_save,
.configure = l2c_configure,
.outer_cache = { .outer_cache = {
.inv_range = l2c210_inv_range, .inv_range = l2c210_inv_range,
.clean_range = l2c210_clean_range, .clean_range = l2c210_clean_range,
...@@ -409,6 +406,7 @@ static const struct l2c_init_data l2c220_data = { ...@@ -409,6 +406,7 @@ static const struct l2c_init_data l2c220_data = {
.num_lock = 1, .num_lock = 1,
.enable = l2c220_enable, .enable = l2c220_enable,
.save = l2c_save, .save = l2c_save,
.configure = l2c_configure,
.outer_cache = { .outer_cache = {
.inv_range = l2c220_inv_range, .inv_range = l2c220_inv_range,
.clean_range = l2c220_clean_range, .clean_range = l2c220_clean_range,
...@@ -569,6 +567,8 @@ static void l2c310_configure(void __iomem *base) ...@@ -569,6 +567,8 @@ static void l2c310_configure(void __iomem *base)
{ {
unsigned revision; unsigned revision;
l2c_configure(base);
/* restore pl310 setup */ /* restore pl310 setup */
l2c_write_sec(l2x0_saved_regs.tag_latency, base, l2c_write_sec(l2x0_saved_regs.tag_latency, base,
L310_TAG_LATENCY_CTRL); L310_TAG_LATENCY_CTRL);
...@@ -1066,6 +1066,7 @@ static const struct l2c_init_data of_l2c210_data __initconst = { ...@@ -1066,6 +1066,7 @@ static const struct l2c_init_data of_l2c210_data __initconst = {
.of_parse = l2x0_of_parse, .of_parse = l2x0_of_parse,
.enable = l2c_enable, .enable = l2c_enable,
.save = l2c_save, .save = l2c_save,
.configure = l2c_configure,
.outer_cache = { .outer_cache = {
.inv_range = l2c210_inv_range, .inv_range = l2c210_inv_range,
.clean_range = l2c210_clean_range, .clean_range = l2c210_clean_range,
...@@ -1084,6 +1085,7 @@ static const struct l2c_init_data of_l2c220_data __initconst = { ...@@ -1084,6 +1085,7 @@ static const struct l2c_init_data of_l2c220_data __initconst = {
.of_parse = l2x0_of_parse, .of_parse = l2x0_of_parse,
.enable = l2c220_enable, .enable = l2c220_enable,
.save = l2c_save, .save = l2c_save,
.configure = l2c_configure,
.outer_cache = { .outer_cache = {
.inv_range = l2c220_inv_range, .inv_range = l2c220_inv_range,
.clean_range = l2c220_clean_range, .clean_range = l2c220_clean_range,
...@@ -1416,6 +1418,7 @@ static const struct l2c_init_data of_aurora_with_outer_data __initconst = { ...@@ -1416,6 +1418,7 @@ static const struct l2c_init_data of_aurora_with_outer_data __initconst = {
.enable = l2c_enable, .enable = l2c_enable,
.fixup = aurora_fixup, .fixup = aurora_fixup,
.save = aurora_save, .save = aurora_save,
.configure = l2c_configure,
.outer_cache = { .outer_cache = {
.inv_range = aurora_inv_range, .inv_range = aurora_inv_range,
.clean_range = aurora_clean_range, .clean_range = aurora_clean_range,
...@@ -1435,6 +1438,7 @@ static const struct l2c_init_data of_aurora_no_outer_data __initconst = { ...@@ -1435,6 +1438,7 @@ static const struct l2c_init_data of_aurora_no_outer_data __initconst = {
.enable = aurora_enable_no_outer, .enable = aurora_enable_no_outer,
.fixup = aurora_fixup, .fixup = aurora_fixup,
.save = aurora_save, .save = aurora_save,
.configure = l2c_configure,
.outer_cache = { .outer_cache = {
.resume = l2c_resume, .resume = l2c_resume,
}, },
...@@ -1608,6 +1612,7 @@ static void __init tauros3_save(void __iomem *base) ...@@ -1608,6 +1612,7 @@ static void __init tauros3_save(void __iomem *base)
static void tauros3_configure(void __iomem *base) static void tauros3_configure(void __iomem *base)
{ {
l2c_configure(base);
writel_relaxed(l2x0_saved_regs.aux2_ctrl, writel_relaxed(l2x0_saved_regs.aux2_ctrl,
base + TAUROS3_AUX2_CTRL); base + TAUROS3_AUX2_CTRL);
writel_relaxed(l2x0_saved_regs.prefetch_ctrl, writel_relaxed(l2x0_saved_regs.prefetch_ctrl,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment