From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 71997C4345F for ; Mon, 15 Apr 2024 15:30:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 013C96B00A6; Mon, 15 Apr 2024 11:30:59 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EDDF06B00A7; Mon, 15 Apr 2024 11:30:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D09CB6B00A8; Mon, 15 Apr 2024 11:30:58 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id AC9AB6B00A6 for ; Mon, 15 Apr 2024 11:30:58 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 7DB31A1733 for ; Mon, 15 Apr 2024 15:30:58 +0000 (UTC) X-FDA: 82012154196.04.C1599CB Received: from flow6-smtp.messagingengine.com (flow6-smtp.messagingengine.com [103.168.172.141]) by imf17.hostedemail.com (Postfix) with ESMTP id 46AC640027 for ; Mon, 15 Apr 2024 15:30:55 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=arndb.de header.s=fm2 header.b=Sluq5LoD; dkim=pass header.d=messagingengine.com header.s=fm2 header.b=LcW+evzZ; dmarc=pass (policy=none) header.from=arndb.de; spf=pass (imf17.hostedemail.com: domain of arnd@arndb.de designates 103.168.172.141 as permitted sender) smtp.mailfrom=arnd@arndb.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1713195055; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=uejkFuVJ7S+uU6TPaZslbYYiwuH4wYboz0/NG64qH38=; b=28YfTd0FbZuQkuMAesYhFt7edii/6Hh0Q+Rz3uWluuUbxYV2Y6e90LBalWjhVlhWCUROGE y8ek7p+drnD9hLU1ImIt1bDB4+VEGVzPZWt+ZOiR7UuI7p528V8hVTvKnevwEphF7zPUgo +4fpf7VI5yl7miw8F0UfIwsuf6OMWq0= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=arndb.de header.s=fm2 header.b=Sluq5LoD; dkim=pass header.d=messagingengine.com header.s=fm2 header.b=LcW+evzZ; dmarc=pass (policy=none) header.from=arndb.de; spf=pass (imf17.hostedemail.com: domain of arnd@arndb.de designates 103.168.172.141 as permitted sender) smtp.mailfrom=arnd@arndb.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713195055; a=rsa-sha256; cv=none; b=73eDwp7pcttmZKz47up9N2+VFlXtg9tP4ZhzTgVwxdSgCLexexVyemt1pWN7ygPKclKv4z bD7FWJtHRSkuWAhvuQjEL1W7UvKw9ndCoYmDtit6+uL1TS6O0G/Y8QUR+p6Qs22VEj9rK9 rJ1gAzDO9ltK3bfN2CTg5VlnmOGjPZo= Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailflow.nyi.internal (Postfix) with ESMTP id 27AED200377; Mon, 15 Apr 2024 11:30:54 -0400 (EDT) Received: from imap51 ([10.202.2.101]) by compute5.internal (MEProxy); Mon, 15 Apr 2024 11:30:54 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arndb.de; h=cc :cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm2; t=1713195054; x=1713202254; bh=uejkFuVJ7S +uU6TPaZslbYYiwuH4wYboz0/NG64qH38=; b=Sluq5LoDaSzkucovZOMhBQXHaP dUG7s1ZGFdg3Nn2e5h800o1yl4atGTzBTdzXqa7YX+WUExD+W3qiGrB+r4odYDb1 2NdpAkIvWyS96o+mFAbokhEBWYCkvy+1sPK2JCMHu8a2DptXubi7r4DrXrK1qGZU ix536fKURRDgJy1b2HkGY0hdUSp2SbQxrowETbjPpyFMFHZ/ZSJ45PNjWBxEafKt eDVVtUw2MLKkKyI8V0aw23s0FlMadhP8nHTHhg6iszBXPEeXoU3owAif6GixhEO3 Dd5GWr3mP6rfD7EX9kbZe0gg5JUGTG2rHGIrm3XCnidEBDTCY0D9oHq+jb5g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1713195054; x=1713202254; bh=uejkFuVJ7S+uU6TPaZslbYYiwuH4 wYboz0/NG64qH38=; b=LcW+evzZpp86694hEWffDj/s0rO6BH/rY/Xu5CONrCA4 sIQxjx/VixeHzG0pTaJrMwdcuLegHbOiyhUoaiQcJaF+LcVz4n7pttCBmR1O9Fn1 N9D908gd2ldWni5GGvmgToONZ9Hfrx45QeJ+Jg5jzEznry6bgZ8mYziWmSE38HCo EEfqDUW5AGxfBM1WGzvGHrBrRjQCYAlgMF2d49VDQYGH/TBTTUFBafTQtcMjvuMw Qq0AJl/2YAT7ZbuoAKs9+48/CUtVnGbS1GcjTXrYZE5NUy1u1NqyLQAmXszCYKJS UplsrUiV2g1rlabPhZ9VLFsaKey00cMCgLY8UKJq0w== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrudejvddgleduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepofgfggfkjghffffhvfevufgtsehttdertderredtnecuhfhrohhmpedftehr nhguuceuvghrghhmrghnnhdfuceorghrnhgusegrrhhnuggsrdguvgeqnecuggftrfgrth htvghrnhepffehueegteeihfegtefhjefgtdeugfegjeelheejueethfefgeeghfektdek teffnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomheprg hrnhgusegrrhhnuggsrdguvg X-ME-Proxy: Feedback-ID: i56a14606:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id B461EB6008D; Mon, 15 Apr 2024 11:30:51 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.11.0-alpha0-379-gabd37849b7-fm-20240408.001-gabd37849 MIME-Version: 1.0 Message-Id: <61d0584f-dfe4-4d8c-a178-78f000d477d4@app.fastmail.com> In-Reply-To: References: <20230120141002.2442-1-ysionneau@kalray.eu> <20230120141002.2442-31-ysionneau@kalray.eu> Date: Mon, 15 Apr 2024 17:30:31 +0200 From: "Arnd Bergmann" To: "Yann Sionneau" , "Krzysztof Kozlowski" , "Yann Sionneau" , "Jonathan Corbet" , "Thomas Gleixner" , "Marc Zyngier" , "Rob Herring" , "Krzysztof Kozlowski" , "Will Deacon" , "Peter Zijlstra" , "Boqun Feng" , "Mark Rutland" , "Eric W. Biederman" , "Kees Cook" , "Oleg Nesterov" , "Ingo Molnar" , "Waiman Long" , "Aneesh Kumar" , "Andrew Morton" , "Nicholas Piggin" , "Paul Moore" , "Eric Paris" , "Christian Brauner" , "Paul Walmsley" , "Palmer Dabbelt" , "Albert Ou" , "Jules Maselbas" , "Guillaume Thouvenin" , "Clement Leger" , "Vincent Chardon" , =?UTF-8?Q?Marc_Poulhi=C3=A8s?= , "Julian Vetter" , "Samuel Jones" , "Ashley Lesdalons" , "Thomas Costis" , "Marius Gligor" , "Jonathan Borne" , "Julien Villette" , "Luc Michel" , "Louis Morhet" , "Julien Hascoet" , "Jean-Christophe Pince" , "Guillaume Missonnier" , "Alex Michon" , "Huacai Chen" , "WANG Xuerui" , "Shaokun Zhang" , "John Garry" , "Guangbin Huang" , "Bharat Bhushan" , "Bibo Mao" , "Atish Patra" , "Jason A . Donenfeld" , "Qi Liu" , "Jiaxun Yang" , "Catalin Marinas" , "Mark Brown" , "Janosch Frank" , "Alexey Dobriyan" Cc: "Benjamin Mugnier" , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-mm@kvack.org, Linux-Arch , linux-audit@redhat.com, linux-riscv@lists.infradead.org, bpf@vger.kernel.org Subject: Re: [RFC PATCH v2 30/31] kvx: Add power controller driver Content-Type: text/plain X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 46AC640027 X-Stat-Signature: fo97fsrxi6d43qcfccy6nh4s74t176ru X-Rspam-User: X-HE-Tag: 1713195055-548911 X-HE-Meta: U2FsdGVkX1+91mV0ogbRleOyPVE4nR4NF/zgTlMVP7IGfo5ONIyHI4lU8ccLCZXNu3rNDnClWjQAxWU9LTxJi7O8higKJ73JsmURZVd47BcPwJ3n1KRqJ/hoLrfy5byshpWZvl2fyCM+FPXm7ddn5jTnV+NHGipYBPIOVovlO+Rmri0UUUcsDXSODiUUT7etGdjcXLcRdFPsYs25B/nJ6z2bVCs3dcv0ne3FsutxosuT466GqKhioufktL8TzKq7NhgL6MZUb29y5LbaLp4wsNaXWWGQuGyavgt2Ia1QDFszjLc7J1fJu35ervGpV0MwkXz9FXq+Ahb31BLqzobfB2uRd5nXwqwnOiy44gHcp5YK/SFfVlYCwYJjZePgwJjtuoQBGSAnS/RKfzW4xRiXQLcaBJ2GceBKDE1LVXYEtFrIbuLHvjQkN8HBt/uTl6sw9J8p2Oy/59Tj6szC4cYhj4y+38iQvnPXQD6qCJpjVKqj+xrDW0pesbaAgBPUSF8qfKCCor18DK26qmEfk1jCbL+jWAMsEbSBSQ6Aabm8Gk2slfgwixqz81tzIo/A/f7bpSh3OkJl+dEQcXDyO+blPJnnTyFXsSjNs0f3Ej86IUilSGJAJzgXGQa3b2xGbvQcaTzk6fEnmd9c+OB7aiRjJyPK9JQgsoP84dfn8qBvX36MQRCdPur8BkhMUER5m+lPcSHEU/7zy6cSD4Pin7aewkfjwEIm59WzaCqY33dLOHliFhJ9sMJrfaI7e+D4uohz//tuW1vdXCFHtrlxxVcnIkoJ5//F8wbatZwvJKnElZLG59XVqFb5NT4DVnePgzl0oPA894W5dkxRqtOuCGQduHbJxC3OzNKphh8edMk1mQ+BgX55lzVawHcD4T7Ogycn4VOTp8m+YnZ56WpvlyfxZUOT8RVHynwjNtCPrQYLWuM5TY2HfnvDdR35yGQungvHUJZkXg0XrJm4+7mqcnN +6n9I4ak Z8EHGf/hGwoKzwC/1g0cJxEgDWB5o3CDfg541qAaKNY3hzR325R7zBMZfvz+URjv8aUZWYvdudVXB7cPEruMWdpqCbfVSlRJCdzZY7sasUZym3CsoVuEXkiCm6PjHOFbqtPUBx723ddHklAlLAdWO6rl79Y+ueODmmV2QXZe3Hsu6FdLxF4mzfQu0SxL2bygd69BSgXl99KUa+Q4nRMYm3tlMVlLaKOY0NOLCNCaCgfE/dUaADh0qm/B06/uSjQk5Dnm/tfqQUIldsEE= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Mon, Apr 15, 2024, at 16:08, Yann Sionneau wrote: > On 1/22/23 12:54, Krzysztof Kozlowski wrote: >> On 20/01/2023 15:10, Yann Sionneau wrote: >>> From: Jules Maselbas >>> >>> The Power Controller (pwr-ctrl) control cores reset and wake-up >>> procedure. >>> + >>> +int __init kvx_pwr_ctrl_probe(void) >>> +{ >>> + struct device_node *ctrl; >>> + >>> + ctrl = get_pwr_ctrl_node(); >>> + if (!ctrl) { >>> + pr_err("Failed to get power controller node\n"); >>> + return -EINVAL; >>> + } >>> + >>> + if (!of_device_is_compatible(ctrl, "kalray,kvx-pwr-ctrl")) { >>> + pr_err("Failed to get power controller node\n"); >> No. Drivers go to drivers, not to arch directory. This should be a >> proper driver instead of some fake stub doing its own driver matching. >> You need to rework this. > > I am working on a v3 patchset, therefore I am working on a solution for > this "pwr-ctrl" driver that needs to go somewhere else than arch/kvx/. > > The purpose of this "driver" is just to expose a void > kvx_pwr_ctrl_cpu_poweron(unsigned int cpu) function, used by > kernel/smpboot.c function __cpu_up() in order to start secondary CPUs in > SMP config. > > Doing this, on our SoC, requires writing 3 registers in a memory-mapped > device named "power controller". > > I made some researches in drivers/ but I am not sure yet what's a good > place that fits what our device is doing (booting secondary CPUs). > > * drivers/power/reset seems to be for resetting the entire SoC > > * drivers/power/supply seems to be to control power supplies ICs/periph. > > * drivers/reset seems to be for device reset > > * drivers/pmdomain maybe ? Right, I don't think any of the above are appropriate > * drivers/soc ? > > * drivers/platform ? > > * drivers/misc ? Not drivers/misc, that is mainly for things with a user-space interface. drivers/soc is mainly for drivers used by other drivers, but this would work, especially if you expect to have multiple SoC variants that all use the same architecture code but incompatible register layouts drivers/platform is really for things outside of the SoC that are used for managing the system, especially across architectures, so I don't think that is a good fit. Traditionally we had this code in arch/{arm,mips,powerpc,sh,x86} and we never created a drier subsystem for it since newer targets (arm64, riscv, newer arm, most x86) all use a method that is specified as part of the ISA or firmware interface. The question what you expect to see with future hardware iterations: if you think all arch/kvx/ hardware will use the same code for maybe at least the next five years, I would suggest you keep it in arch/kvx/kernel/smp.c, but if you know or expect other implementations to be needed, I can merge it as a driver through drivers/soc/. Arnd