From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750738Ab3HSNYG (ORCPT ); Mon, 19 Aug 2013 09:24:06 -0400 Received: from service87.mimecast.com ([91.220.42.44]:54184 "EHLO service87.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750705Ab3HSNYE convert rfc822-to-8bit (ORCPT ); Mon, 19 Aug 2013 09:24:04 -0400 Message-ID: <52121C84.1030102@arm.com> Date: Mon, 19 Aug 2013 14:24:20 +0100 From: Sudeep KarkadaNagesha User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130803 Thunderbird/17.0.8 MIME-Version: 1.0 To: Rob Herring CC: Sudeep KarkadaNagesha , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "linux-pm@vger.kernel.org" , "devicetree@vger.kernel.org" , "linuxppc-dev@lists.ozlabs.org" , Jonas Bonn , Michal Simek , Benjamin Herrenschmidt , "rob.herring@calxeda.com" , "Rafael J. Wysocki" , "grant.likely@linaro.org" Subject: Re: [RFC PATCH v2 4/4] of: move of_get_cpu_node implementation to DT core library References: <1376586580-5409-1-git-send-email-Sudeep.KarkadaNagesha@arm.com> <1376674791-28244-1-git-send-email-Sudeep.KarkadaNagesha@arm.com> <1376674791-28244-3-git-send-email-Sudeep.KarkadaNagesha@arm.com> <5212196F.4060708@gmail.com> In-Reply-To: <5212196F.4060708@gmail.com> X-OriginalArrivalTime: 19 Aug 2013 13:24:00.0488 (UTC) FILETIME=[5DC0CE80:01CE9CDF] X-MC-Unique: 113081914240100601 Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 19/08/13 14:11, Rob Herring wrote: > On 08/16/2013 12:39 PM, Sudeep KarkadaNagesha wrote: >> From: Sudeep KarkadaNagesha >> >> This patch moves the generalized implementation of of_get_cpu_node from >> PowerPC to DT core library, thereby adding support for retrieving cpu >> node for a given logical cpu index on any architecture. >> >> The CPU subsystem can now use this function to assign of_node in the >> cpu device while registering CPUs. >> >> It is recommended to use these helper function only in pre-SMP/early >> initialisation stages to retrieve CPU device node pointers in logical >> ordering. Once the cpu devices are registered, it can be retrieved easily >> from cpu device of_node which avoids unnecessary parsing and matching. >> >> Cc: Rob Herring >> Cc: Grant Likely >> Cc: Benjamin Herrenschmidt >> Signed-off-by: Sudeep KarkadaNagesha > > [snip] > >> +/** >> + * of_get_cpu_node - Get device node associated with the given logical CPU >> + * >> + * @cpu: CPU number(logical index) for which device node is required >> + * @thread: if not NULL, local thread number within the physical core is >> + * returned >> + * >> + * The main purpose of this function is to retrieve the device node for the >> + * given logical CPU index. It should be used to initialize the of_node in >> + * cpu device. Once of_node in cpu device is populated, all the further >> + * references can use that instead. >> + * >> + * CPU logical to physical index mapping is architecture specific and is built >> + * before booting secondary cores. This function uses arch_match_cpu_phys_id >> + * which can be overridden by architecture specific implementation. >> + * >> + * Returns a node pointer for the logical cpu if found, else NULL. >> + */ >> +struct device_node *of_get_cpu_node(int cpu, unsigned int *thread) >> +{ >> + struct device_node *cpun, *cpus; >> + >> + cpus = of_find_node_by_path("/cpus"); >> + if (!cpus) { >> + pr_warn("Missing cpus node, bailing out\n"); >> + return NULL; >> + } >> + >> + for_each_child_of_node(cpus, cpun) { >> + if (of_node_cmp(cpun->type, "cpu")) >> + continue; >> +#ifdef CONFIG_PPC > > You don't really need this ifdef as this function should never succeed > on other arches. Alternatively, you can use "IS_ENABLED(CONFIG_PPC)" > instead. > Agreed, I can remove it as long as no other architecture use that property. It's just to avoid checking for it on other architectures. I will use IS_ENABLED as you suggested. > Otherwise, > > Acked-by: Rob Herring > Thanks. Regards, Sudeep