diff options
Diffstat (limited to 'arch/arm/mm/cache-l2x0.c')
| -rw-r--r-- | arch/arm/mm/cache-l2x0.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c index c2f37390308a..c465faca51b0 100644 --- a/arch/arm/mm/cache-l2x0.c +++ b/arch/arm/mm/cache-l2x0.c | |||
| @@ -299,7 +299,7 @@ static void l2x0_unlock(u32 cache_id) | |||
| 299 | int lockregs; | 299 | int lockregs; |
| 300 | int i; | 300 | int i; |
| 301 | 301 | ||
| 302 | switch (cache_id) { | 302 | switch (cache_id & L2X0_CACHE_ID_PART_MASK) { |
| 303 | case L2X0_CACHE_ID_PART_L310: | 303 | case L2X0_CACHE_ID_PART_L310: |
| 304 | lockregs = 8; | 304 | lockregs = 8; |
| 305 | break; | 305 | break; |
| @@ -333,15 +333,14 @@ void __init l2x0_init(void __iomem *base, u32 aux_val, u32 aux_mask) | |||
| 333 | if (cache_id_part_number_from_dt) | 333 | if (cache_id_part_number_from_dt) |
| 334 | cache_id = cache_id_part_number_from_dt; | 334 | cache_id = cache_id_part_number_from_dt; |
| 335 | else | 335 | else |
| 336 | cache_id = readl_relaxed(l2x0_base + L2X0_CACHE_ID) | 336 | cache_id = readl_relaxed(l2x0_base + L2X0_CACHE_ID); |
| 337 | & L2X0_CACHE_ID_PART_MASK; | ||
| 338 | aux = readl_relaxed(l2x0_base + L2X0_AUX_CTRL); | 337 | aux = readl_relaxed(l2x0_base + L2X0_AUX_CTRL); |
| 339 | 338 | ||
| 340 | aux &= aux_mask; | 339 | aux &= aux_mask; |
| 341 | aux |= aux_val; | 340 | aux |= aux_val; |
| 342 | 341 | ||
| 343 | /* Determine the number of ways */ | 342 | /* Determine the number of ways */ |
| 344 | switch (cache_id) { | 343 | switch (cache_id & L2X0_CACHE_ID_PART_MASK) { |
| 345 | case L2X0_CACHE_ID_PART_L310: | 344 | case L2X0_CACHE_ID_PART_L310: |
| 346 | if (aux & (1 << 16)) | 345 | if (aux & (1 << 16)) |
| 347 | ways = 16; | 346 | ways = 16; |
| @@ -725,7 +724,6 @@ static const struct l2x0_of_data pl310_data = { | |||
| 725 | .flush_all = l2x0_flush_all, | 724 | .flush_all = l2x0_flush_all, |
| 726 | .inv_all = l2x0_inv_all, | 725 | .inv_all = l2x0_inv_all, |
| 727 | .disable = l2x0_disable, | 726 | .disable = l2x0_disable, |
| 728 | .set_debug = pl310_set_debug, | ||
| 729 | }, | 727 | }, |
| 730 | }; | 728 | }; |
| 731 | 729 | ||
| @@ -814,9 +812,8 @@ int __init l2x0_of_init(u32 aux_val, u32 aux_mask) | |||
| 814 | data->save(); | 812 | data->save(); |
| 815 | 813 | ||
| 816 | of_init = true; | 814 | of_init = true; |
| 817 | l2x0_init(l2x0_base, aux_val, aux_mask); | ||
| 818 | |||
| 819 | memcpy(&outer_cache, &data->outer_cache, sizeof(outer_cache)); | 815 | memcpy(&outer_cache, &data->outer_cache, sizeof(outer_cache)); |
| 816 | l2x0_init(l2x0_base, aux_val, aux_mask); | ||
| 820 | 817 | ||
| 821 | return 0; | 818 | return 0; |
| 822 | } | 819 | } |
