diff options
Diffstat (limited to 'arch/sh/mm/cache-debugfs.c')
| -rw-r--r-- | arch/sh/mm/cache-debugfs.c | 27 | 
1 files changed, 6 insertions, 21 deletions
diff --git a/arch/sh/mm/cache-debugfs.c b/arch/sh/mm/cache-debugfs.c index 52411462c40..777e50f33c0 100644 --- a/arch/sh/mm/cache-debugfs.c +++ b/arch/sh/mm/cache-debugfs.c @@ -26,9 +26,9 @@ static int cache_seq_show(struct seq_file *file, void *iter)  {  	unsigned int cache_type = (unsigned int)file->private;  	struct cache_info *cache; -	unsigned int waysize, way, cache_size; -	unsigned long ccr, base; -	static unsigned long addrstart = 0; +	unsigned int waysize, way; +	unsigned long ccr; +	unsigned long addrstart = 0;  	/*  	 * Go uncached immediately so we don't skew the results any @@ -36,7 +36,7 @@ static int cache_seq_show(struct seq_file *file, void *iter)  	 */  	jump_to_uncached(); -	ccr = __raw_readl(CCR); +	ccr = __raw_readl(SH_CCR);  	if ((ccr & CCR_CACHE_ENABLE) == 0) {  		back_to_cached(); @@ -45,28 +45,13 @@ static int cache_seq_show(struct seq_file *file, void *iter)  	}  	if (cache_type == CACHE_TYPE_DCACHE) { -		base = CACHE_OC_ADDRESS_ARRAY; +		addrstart = CACHE_OC_ADDRESS_ARRAY;  		cache = ¤t_cpu_data.dcache;  	} else { -		base = CACHE_IC_ADDRESS_ARRAY; +		addrstart = CACHE_IC_ADDRESS_ARRAY;  		cache = ¤t_cpu_data.icache;  	} -	/* -	 * Due to the amount of data written out (depending on the cache size), -	 * we may be iterated over multiple times. In this case, keep track of -	 * the entry position in addrstart, and rewind it when we've hit the -	 * end of the cache. -	 * -	 * Likewise, the same code is used for multiple caches, so care must -	 * be taken for bouncing addrstart back and forth so the appropriate -	 * cache is hit. -	 */ -	cache_size = cache->ways * cache->sets * cache->linesz; -	if (((addrstart & 0xff000000) != base) || -	     (addrstart & 0x00ffffff) > cache_size) -		addrstart = base; -  	waysize = cache->sets;  	/*  | 
