Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ebac6546 authored by Catalin Marinas's avatar Catalin Marinas
Browse files

RealView: Use only the shadow mapping of ARM11MPCore local timers



All the cases where the local timer for a CPU is accessed happen on the
corresponding current CPU, hence no need to access the per-CPU local
timer mappings.

Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>


parent 4c3ea371
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -114,7 +114,7 @@ extern void local_timer_interrupt(void);
/*
 * Stop a local timer interrupt.
 */
extern void local_timer_stop(unsigned int cpu);
extern void local_timer_stop(void);

/*
 * Platform provides this to acknowledge a local timer IRQ
@@ -123,7 +123,7 @@ extern int local_timer_ack(void);

#else

static inline void local_timer_stop(unsigned int cpu)
static inline void local_timer_stop(void)
{
}

@@ -132,7 +132,7 @@ static inline void local_timer_stop(unsigned int cpu)
/*
 * Setup a local timer interrupt for a CPU.
 */
extern void local_timer_setup(unsigned int cpu);
extern void local_timer_setup(void);

/*
 * show local interrupt info
+2 −2
Original line number Diff line number Diff line
@@ -181,7 +181,7 @@ int __cpuexit __cpu_disable(void)
	/*
	 * Stop the local timer for this CPU.
	 */
	local_timer_stop(cpu);
	local_timer_stop();

	/*
	 * Flush user cache and TLB mappings, and then remove this CPU
@@ -284,7 +284,7 @@ asmlinkage void __cpuinit secondary_start_kernel(void)
	/*
	 * Setup local timer for this CPU.
	 */
	local_timer_setup(cpu);
	local_timer_setup();

	calibrate_delay();

+1 −1
Original line number Diff line number Diff line
@@ -629,7 +629,7 @@ void __init realview_timer_init(unsigned int timer_irq)
	 * The dummy clock device has to be registered before the main device
	 * so that the latter will broadcast the clock events
	 */
	local_timer_setup(smp_processor_id());
	local_timer_setup();
#endif

	/* 
+1 −2
Original line number Diff line number Diff line
@@ -52,8 +52,7 @@ extern struct clk realview_clcd_clk;
extern struct clcd_board clcd_plat_data;
extern void __iomem *gic_cpu_base_addr;
#ifdef CONFIG_LOCAL_TIMERS
extern void __iomem *twd_base_addr;
extern unsigned int twd_size;
extern void __iomem *twd_base;
#endif
extern void __iomem *timer0_va_base;
extern void __iomem *timer1_va_base;
+2 −4
Original line number Diff line number Diff line
@@ -49,16 +49,14 @@
#ifdef CONFIG_REALVIEW_EB_ARM11MP_REVB
#define REALVIEW_EB11MP_SCU_BASE	0x10100000	/* SCU registers */
#define REALVIEW_EB11MP_GIC_CPU_BASE	0x10100100	/* Generic interrupt controller CPU interface */
#define REALVIEW_EB11MP_TWD_BASE	0x10100700
#define REALVIEW_EB11MP_TWD_SIZE	0x00000100
#define REALVIEW_EB11MP_TWD_BASE	0x10100600
#define REALVIEW_EB11MP_GIC_DIST_BASE	0x10101000	/* Generic interrupt controller distributor */
#define REALVIEW_EB11MP_L220_BASE	0x10102000	/* L220 registers */
#define REALVIEW_EB11MP_SYS_PLD_CTRL1	0xD8		/* Register offset for MPCore sysctl */
#else
#define REALVIEW_EB11MP_SCU_BASE	0x1F000000	/* SCU registers */
#define REALVIEW_EB11MP_GIC_CPU_BASE	0x1F000100	/* Generic interrupt controller CPU interface */
#define REALVIEW_EB11MP_TWD_BASE	0x1F000700
#define REALVIEW_EB11MP_TWD_SIZE	0x00000100
#define REALVIEW_EB11MP_TWD_BASE	0x1F000600
#define REALVIEW_EB11MP_GIC_DIST_BASE	0x1F001000	/* Generic interrupt controller distributor */
#define REALVIEW_EB11MP_L220_BASE	0x1F002000	/* L220 registers */
#define REALVIEW_EB11MP_SYS_PLD_CTRL1	0x74		/* Register offset for MPCore sysctl */
Loading