From patchwork Mon Jan 14 07:52:50 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hiroshi Doyu X-Patchwork-Id: 211721 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 389F82C011E for ; Mon, 14 Jan 2013 18:53:12 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755667Ab3ANHxL (ORCPT ); Mon, 14 Jan 2013 02:53:11 -0500 Received: from hqemgate04.nvidia.com ([216.228.121.35]:8531 "EHLO hqemgate04.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755328Ab3ANHxK (ORCPT ); Mon, 14 Jan 2013 02:53:10 -0500 Received: from hqnvupgp08.nvidia.com (Not Verified[216.228.121.13]) by hqemgate04.nvidia.com id ; Sun, 13 Jan 2013 23:52:47 -0800 Received: from hqemhub03.nvidia.com ([172.17.108.22]) by hqnvupgp08.nvidia.com (PGP Universal service); Sun, 13 Jan 2013 23:52:33 -0800 X-PGP-Universal: processed; by hqnvupgp08.nvidia.com on Sun, 13 Jan 2013 23:52:33 -0800 Received: from hqnvemgw01.nvidia.com (172.20.150.20) by HQEMHUB03.nvidia.com (172.20.150.15) with Microsoft SMTP Server id 8.3.279.1; Sun, 13 Jan 2013 23:53:02 -0800 Received: from daphne.nvidia.com (Not Verified[172.16.212.96]) by hqnvemgw01.nvidia.com with MailMarshal (v6,7,2,8378) id ; Sun, 13 Jan 2013 23:53:51 -0800 Received: from oreo.Nvidia.com (dhcp-10-21-25-186.nvidia.com [10.21.25.186]) by daphne.nvidia.com (8.13.8+Sun/8.8.8) with ESMTP id r0E7qvKq022996; Sun, 13 Jan 2013 23:53:01 -0800 (PST) From: Hiroshi Doyu To: , , CC: , , Hiroshi Doyu Subject: [PATCH 2/2] ARM: tegra: Use DT /cpu node to detect number of CPU core Date: Mon, 14 Jan 2013 09:52:50 +0200 Message-ID: <1358149970-28156-2-git-send-email-hdoyu@nvidia.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1358149970-28156-1-git-send-email-hdoyu@nvidia.com> References: <1358149970-28156-1-git-send-email-hdoyu@nvidia.com> MIME-Version: 1.0 Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org SCU based detection only works with Cortex-A9 MP and it doesn't support ones with multiple clusters. The only way to detect number of CPU core correctly is with DT /cpu node. If DT /cpu node based detection fails, we just simply fall back a single core in Tegra SoCs. Signed-off-by: Hiroshi Doyu --- Based on the discussion: http://lists.infradead.org/pipermail/linux-arm-kernel/2013-January/140608.html --- arch/arm/mach-tegra/platsmp.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/arch/arm/mach-tegra/platsmp.c b/arch/arm/mach-tegra/platsmp.c index 6867030..456e7cc 100644 --- a/arch/arm/mach-tegra/platsmp.c +++ b/arch/arm/mach-tegra/platsmp.c @@ -24,6 +24,7 @@ #include #include #include +#include #include @@ -177,22 +178,10 @@ done: return status; } -/* - * Initialise the CPU possible map early - this describes the CPUs - * which may be present or become present in the system. - */ static void __init tegra_smp_init_cpus(void) { - unsigned int i, ncores = scu_get_core_count(scu_base); - - if (ncores > nr_cpu_ids) { - pr_warn("SMP: %u cores greater than maximum (%u), clipping\n", - ncores, nr_cpu_ids); - ncores = nr_cpu_ids; - } - - for (i = 0; i < ncores; i++) - set_cpu_possible(i, true); + if (!arm_dt_cpu_map_valid()) + set_cpu_possible(0, true); set_smp_cross_call(gic_raise_softirq); }