RE: [PATCH 6/6] omap: Fix SMP on UP interrupt handling for multi-omap

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: linux-omap-owner@xxxxxxxxxxxxxxx [mailto:linux-omap-
> owner@xxxxxxxxxxxxxxx] On Behalf Of Tony Lindgren
> Sent: Thursday, September 02, 2010 9:54 PM
> To: Russell King - ARM Linux
> Cc: linux-omap@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx;
> Bryan Wu; Will Deacon
> Subject: [PATCH 6/6] omap: Fix SMP on UP interrupt handling for multi-omap
> 
> From c04a57fc3b41d886f56ccdc27cf9758de0c95202 Mon Sep 17 00:00:00 2001
> From: Tony Lindgren <tony@xxxxxxxxxxx>
> Date: Tue, 17 Aug 2010 13:33:23 +0300
> Subject: [PATCH 6/6] omap: Fix SMP on UP interrupt handling for multi-omap
> 
> Fix SMP on UP interrupt handling for multi-omap
> 
> Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
> ---
>  arch/arm/mach-omap2/omap-smp.c |   13 +++++++++----
>  arch/arm/mach-omap2/timer-gp.c |    7 +++++--
>  2 files changed, 14 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/omap-smp.c b/arch/arm/mach-omap2/omap-
> smp.c
> index 9e9f70e..a8bb49c 100644
> --- a/arch/arm/mach-omap2/omap-smp.c
> +++ b/arch/arm/mach-omap2/omap-smp.c
> @@ -22,6 +22,7 @@
> 
>  #include <asm/cacheflush.h>
>  #include <asm/localtimer.h>
> +#include <asm/smp_plat.h>
>  #include <asm/smp_scu.h>
>  #include <mach/hardware.h>
>  #include <mach/omap4-common.h>
> @@ -114,11 +115,15 @@ void __init smp_init_cpus(void)
>  {
>  	unsigned int i, ncores;
> 
> -	/* Never released */
> -	scu_base = ioremap(OMAP44XX_SCU_BASE, SZ_256);
> -	BUG_ON(!scu_base);
> +	if (smp_on_up()) {
> +		ncores = 1;
I am not sure if this is the correct approach. The SCU 
hardware is not present other than OMAP4. So we should
just return here when the silicon is not omap4.
	if (!cpu_is_omap44xx())
		return -ENODEV;
> +	} else {
> +		/* Never released */
> +		scu_base = ioremap(OMAP44XX_SCU_BASE, SZ_256);
> +		BUG_ON(!scu_base);
> 
> -	ncores = get_core_count();
> +		ncores = get_core_count();
> +	}
> 
>  	for (i = 0; i < ncores; i++)
>  		set_cpu_possible(i, true);
> diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-
> gp.c
> index 74fbed8..badf5f2 100644
> --- a/arch/arm/mach-omap2/timer-gp.c
> +++ b/arch/arm/mach-omap2/timer-gp.c
> @@ -37,6 +37,7 @@
>  #include <linux/clockchips.h>
> 
>  #include <asm/mach/time.h>
> +#include <asm/smp_plat.h>
>  #include <plat/dmtimer.h>
>  #include <asm/localtimer.h>
> 
> @@ -228,8 +229,10 @@ static void __init omap2_gp_clocksource_init(void)
>  static void __init omap2_gp_timer_init(void)
>  {
>  #ifdef CONFIG_LOCAL_TIMERS
> -	twd_base = ioremap(OMAP44XX_LOCAL_TWD_BASE, SZ_256);
> -	BUG_ON(!twd_base);
> +	if (smp_on_up()) {
> +		twd_base = ioremap(OMAP44XX_LOCAL_TWD_BASE, SZ_256);
> +		BUG_ON(!twd_base);
> +	}
>  #endif
>  	omap_dm_timer_init();
> 
> --
> 1.7.1
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux