root/arch/sh/mm/cache-shx3.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. shx3_cache_init

   1 /*
   2  * arch/sh/mm/cache-shx3.c - SH-X3 optimized cache ops
   3  *
   4  * Copyright (C) 2010  Paul Mundt
   5  *
   6  * This file is subject to the terms and conditions of the GNU General Public
   7  * License.  See the file "COPYING" in the main directory of this archive
   8  * for more details.
   9  */
  10 #include <linux/init.h>
  11 #include <linux/kernel.h>
  12 #include <linux/io.h>
  13 #include <asm/cache.h>
  14 
  15 #define CCR_CACHE_SNM   0x40000         /* Hardware-assisted synonym avoidance */
  16 #define CCR_CACHE_IBE   0x1000000       /* ICBI broadcast */
  17 
  18 void __init shx3_cache_init(void)
  19 {
  20         unsigned int ccr;
  21 
  22         ccr = __raw_readl(SH_CCR);
  23 
  24         /*
  25          * If we've got cache aliases, resolve them in hardware.
  26          */
  27         if (boot_cpu_data.dcache.n_aliases || boot_cpu_data.icache.n_aliases) {
  28                 ccr |= CCR_CACHE_SNM;
  29 
  30                 boot_cpu_data.icache.n_aliases = 0;
  31                 boot_cpu_data.dcache.n_aliases = 0;
  32 
  33                 pr_info("Enabling hardware synonym avoidance\n");
  34         }
  35 
  36 #ifdef CONFIG_SMP
  37         /*
  38          * Broadcast I-cache block invalidations by default.
  39          */
  40         ccr |= CCR_CACHE_IBE;
  41 #endif
  42 
  43         writel_uncached(ccr, SH_CCR);
  44 }

/* [<][>][^][v][top][bottom][index][help] */