forked from mirrors/linux
		
	ARM: shmobile: Convert file to use cntvoff
Now that a common function is available for CNTVOFF's initialization, let's convert shmobile-apmu code to use this function. Signed-off-by: Mylène Josserand <mylene.josserand@bootlin.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> Acked-by: Simon Horman <horms+renesas@verge.net.au> Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
This commit is contained in:
		
							parent
							
								
									46ebbfcb9f
								
							
						
					
					
						commit
						cad160ed0a
					
				
					 3 changed files with 3 additions and 23 deletions
				
			
		| 
						 | 
					@ -2,7 +2,6 @@
 | 
				
			||||||
#ifndef __ARCH_MACH_COMMON_H
 | 
					#ifndef __ARCH_MACH_COMMON_H
 | 
				
			||||||
#define __ARCH_MACH_COMMON_H
 | 
					#define __ARCH_MACH_COMMON_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern void shmobile_init_cntvoff(void);
 | 
					 | 
				
			||||||
extern void shmobile_init_delay(void);
 | 
					extern void shmobile_init_delay(void);
 | 
				
			||||||
extern void shmobile_boot_vector(void);
 | 
					extern void shmobile_boot_vector(void);
 | 
				
			||||||
extern unsigned long shmobile_boot_fn;
 | 
					extern unsigned long shmobile_boot_fn;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,29 +11,9 @@
 | 
				
			||||||
#include <linux/linkage.h>
 | 
					#include <linux/linkage.h>
 | 
				
			||||||
#include <asm/assembler.h>
 | 
					#include <asm/assembler.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENTRY(shmobile_init_cntvoff)
 | 
					 | 
				
			||||||
	/*
 | 
					 | 
				
			||||||
	 * CNTVOFF has to be initialized either from non-secure Hypervisor
 | 
					 | 
				
			||||||
	 * mode or secure Monitor mode with SCR.NS==1. If TrustZone is enabled
 | 
					 | 
				
			||||||
	 * then it should be handled by the secure code
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
	cps	#MON_MODE
 | 
					 | 
				
			||||||
	mrc	p15, 0, r1, c1, c1, 0		/* Get Secure Config */
 | 
					 | 
				
			||||||
	orr	r0, r1, #1
 | 
					 | 
				
			||||||
	mcr	p15, 0, r0, c1, c1, 0		/* Set Non Secure bit */
 | 
					 | 
				
			||||||
	instr_sync
 | 
					 | 
				
			||||||
	mov	r0, #0
 | 
					 | 
				
			||||||
	mcrr	p15, 4, r0, r0, c14		/* CNTVOFF = 0 */
 | 
					 | 
				
			||||||
	instr_sync
 | 
					 | 
				
			||||||
	mcr	p15, 0, r1, c1, c1, 0		/* Set Secure bit */
 | 
					 | 
				
			||||||
	instr_sync
 | 
					 | 
				
			||||||
	cps	#SVC_MODE
 | 
					 | 
				
			||||||
	ret	lr
 | 
					 | 
				
			||||||
ENDPROC(shmobile_init_cntvoff)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifdef CONFIG_SMP
 | 
					#ifdef CONFIG_SMP
 | 
				
			||||||
ENTRY(shmobile_boot_apmu)
 | 
					ENTRY(shmobile_boot_apmu)
 | 
				
			||||||
	bl	shmobile_init_cntvoff
 | 
						bl	secure_cntvoff_init
 | 
				
			||||||
	b	secondary_startup
 | 
						b	secondary_startup
 | 
				
			||||||
ENDPROC(shmobile_boot_apmu)
 | 
					ENDPROC(shmobile_boot_apmu)
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,6 +26,7 @@
 | 
				
			||||||
#include <linux/of_fdt.h>
 | 
					#include <linux/of_fdt.h>
 | 
				
			||||||
#include <linux/of_platform.h>
 | 
					#include <linux/of_platform.h>
 | 
				
			||||||
#include <asm/mach/arch.h>
 | 
					#include <asm/mach/arch.h>
 | 
				
			||||||
 | 
					#include <asm/secure_cntvoff.h>
 | 
				
			||||||
#include "common.h"
 | 
					#include "common.h"
 | 
				
			||||||
#include "rcar-gen2.h"
 | 
					#include "rcar-gen2.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -70,7 +71,7 @@ void __init rcar_gen2_timer_init(void)
 | 
				
			||||||
	void __iomem *base;
 | 
						void __iomem *base;
 | 
				
			||||||
	u32 freq;
 | 
						u32 freq;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	shmobile_init_cntvoff();
 | 
						secure_cntvoff_init();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (of_machine_is_compatible("renesas,r8a7745") ||
 | 
						if (of_machine_is_compatible("renesas,r8a7745") ||
 | 
				
			||||||
	    of_machine_is_compatible("renesas,r8a7792") ||
 | 
						    of_machine_is_compatible("renesas,r8a7792") ||
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue