@@ -250,6 +250,11 @@ static void l2x0_disable(void)
raw_spin_unlock_irqrestore(&l2x0_lock, flags);
}
+static void l2c_save(void __iomem *base)
+{
+ l2x0_saved_regs.aux_ctrl = readl_relaxed(l2x0_base + L2X0_AUX_CTRL);
+}
+
/*
* L2C-210 specific code.
*
@@ -357,6 +362,7 @@ static const struct l2c_init_data l2c210_data __initconst = {
.way_size_0 = SZ_8K,
.num_lock = 1,
.enable = l2c_enable,
+ .save = l2c_save,
.outer_cache = {
.inv_range = l2c210_inv_range,
.clean_range = l2c210_clean_range,
@@ -501,6 +507,7 @@ static const struct l2c_init_data l2c220_data = {
.way_size_0 = SZ_8K,
.num_lock = 1,
.enable = l2c_enable,
+ .save = l2c_save,
.outer_cache = {
.inv_range = l2c220_inv_range,
.clean_range = l2c220_clean_range,
@@ -638,6 +645,8 @@ static void __init l2c310_save(void __iomem *base)
{
unsigned revision;
+ l2c_save(base);
+
l2x0_saved_regs.tag_latency = readl_relaxed(base +
L310_TAG_LATENCY_CTRL);
l2x0_saved_regs.data_latency = readl_relaxed(base +
@@ -1010,6 +1019,7 @@ static const struct l2c_init_data of_l2c210_data __initconst = {
.num_lock = 1,
.of_parse = l2x0_of_parse,
.enable = l2c_enable,
+ .save = l2c_save,
.outer_cache = {
.inv_range = l2c210_inv_range,
.clean_range = l2c210_clean_range,
@@ -1027,6 +1037,7 @@ static const struct l2c_init_data of_l2c220_data __initconst = {
.num_lock = 1,
.of_parse = l2x0_of_parse,
.enable = l2c_enable,
+ .save = l2c_save,
.outer_cache = {
.inv_range = l2c220_inv_range,
.clean_range = l2c220_clean_range,
@@ -1440,6 +1451,8 @@ static const struct l2c_init_data of_bcm_l2x0_data __initconst = {
static void __init tauros3_save(void __iomem *base)
{
+ l2c_save(base);
+
l2x0_saved_regs.aux2_ctrl =
readl_relaxed(base + TAUROS3_AUX2_CTRL);
l2x0_saved_regs.prefetch_ctrl =