Received: by 2002:a05:6500:1b45:b0:1f5:f2ab:c469 with SMTP id cz5csp843547lqb; Wed, 17 Apr 2024 12:21:10 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWm66U2GillVNqZRp3wy+2Nj0b4tRfEGERhC3pSGUoGbiYlIx1g8DJSrWrlcZNDoozWG7Df3wQTPHEeqxBqLdYCJFNSH0bBLmVbRudVEQ== X-Google-Smtp-Source: AGHT+IF/eqySxBTC/jRKYAu0wGPpw4/Cz33K15fW2E3wDN/8RTeXv1JkFn0dZZtxd07RVFp0fUX+ X-Received: by 2002:a05:6a00:3985:b0:6ec:fdcc:40b9 with SMTP id fi5-20020a056a00398500b006ecfdcc40b9mr627090pfb.9.1713381670132; Wed, 17 Apr 2024 12:21:10 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1713381670; cv=pass; d=google.com; s=arc-20160816; b=W/j2WB7+2kuh17Vq6Xq3nPpcDFrO8wPs2ky9/f1n+HzNkslLKSVydYDP6ZUQw57c7k tFfGklITK5xyOg90wf3kUm9e6DkbuKpTVl1kEadL571sOSdlap2HjvQ0h+lt5EPH2Dt6 o8vxbBIGt34neJ0cgRfo3wYa7IsvSE6qwUzmQdWYIv1fy14KU47dpLBoXjuuAmCaOusB fELwM2a/eP/XlbxsubXZ0nNOEmDIlV/MkGvxYz4xNc9doWo2CrhzPSzqfL6PqQ4EDHQA +p7C/4eYnnvx+JoE2wywWmtofDr4u/1IYgleC9S3Rnk5me7bwCQCBmyzri9c4akSi7qu IXIA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:autocrypt:from :content-language:references:cc:to:subject:user-agent:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:date:message-id :dkim-signature; bh=ORRZpXUfxr9ItRDDr0g7BO8pI4LaWWkmIOzOV1lUjes=; fh=Uk+SKUtZZp17mOS8ieB5H20Qo2P5jy+fkRfdAJonbOc=; b=lqYhLAsGJNNOUfERtv/n6VkayeaVDuvIx9tFtLVRYJ8bN+JvLEZ6+1VPVMEJqXRe1o /zOkJk9rmL8Wko53KFMbCDjyT8HOIv0hxU2AwRmFL7cFQQjJMfH8Pnc180j3sudfSwGN 4emZECFxv2tumwpxaNaJoF6xWSK8tQJeormhdzkuVc5UGZQXBfo2dDeBydi+0bW9H8+d /n+XuUB6/DmK6DlGVJAZ3DyqA9lxAgpOzw0M2rOq9Q7vfUSF9oBpCkqQUoGZRMXJxOmy J83X9qyUvQFBcU1Ab3tLJxpx98sTzLyWo9eOEEH37aVzbmiFlN0MSDvdVUjihxnMGMDF vOLA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ThUs+zBK; arc=pass (i=1 spf=pass spfdomain=linaro.org dkim=pass dkdomain=linaro.org dmarc=pass fromdomain=linaro.org); spf=pass (google.com: domain of linux-kernel+bounces-149116-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-149116-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id fj31-20020a056a003a1f00b006ed87019e44si18701pfb.132.2024.04.17.12.21.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Apr 2024 12:21:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-149116-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ThUs+zBK; arc=pass (i=1 spf=pass spfdomain=linaro.org dkim=pass dkdomain=linaro.org dmarc=pass fromdomain=linaro.org); spf=pass (google.com: domain of linux-kernel+bounces-149116-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-149116-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id BA1D7287244 for ; Wed, 17 Apr 2024 19:21:09 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7020129413; Wed, 17 Apr 2024 19:20:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="ThUs+zBK" Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com [209.85.210.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F133624B21 for ; Wed, 17 Apr 2024 19:20:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.182 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713381658; cv=none; b=D0juL/fIcVPuTxTw7BIuINiSpyCCHpSJ4hmgtkaEdwe47vJXrt7bgWH/Juz9QabdUezRWRCnQlB9CsuOnjRvha5KPETTyxGfRN5W3+A21EZHIkCSHwYNingOKvgl2EDXgKvHZ+XIjP2IypiQUNP4s9Pd15pQae8fLUcp+T3U7I0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713381658; c=relaxed/simple; bh=Z3bCMaGhwbj6srUu4nYse27BveBCdxJ6ls99+RXNmvI=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=NcjWPqGbLi88NEe4gZHtBrMenprMBVdffIHDZdJufmEQllRbNm7snUuHaQ1tMXgTtUklw7fSGk8pC+94T4gP9+jqRecXjyDvqTegwjgDxvQU37+UMjK1O58m+sxgNMVfLbOG8W1yfBzUtTpWrBBxc7c8DpFihkpPWHqMkx0C5l8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=ThUs+zBK; arc=none smtp.client-ip=209.85.210.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Received: by mail-pf1-f182.google.com with SMTP id d2e1a72fcca58-6f043f9e6d7so140941b3a.3 for ; Wed, 17 Apr 2024 12:20:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1713381656; x=1713986456; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:autocrypt:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to; bh=ORRZpXUfxr9ItRDDr0g7BO8pI4LaWWkmIOzOV1lUjes=; b=ThUs+zBKSaponbb58Dod6Z1IGSmlxw4Jpi+7ppdNpbhVobZZfXcwvIlBUzj+QnxvBG kwj+XCcOvud8clC5wr/3MmbXBZr+l+OHAbupDcSvfkEJ3ynDAl9BUikip+WbrjFVIg7V b774TsOVcobqdEYTexydbT9MDoawO2vPpHum9ZcI7/upqCNARAgNCcqJDVETFl8Kl1nz 15ASyQBLSEN7sX9YO8AnGppQZsuK9OdYmanZz3NGTL+0ExqiSVM4GRwduLimHtY1Ev33 dqGoKDpvjR6fycJ61phEwiwgfKsw5w4ECcPBz8jOYtj5dpK/yo6cPx8cwSnUIAi2vQKl k4lQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713381656; x=1713986456; h=content-transfer-encoding:in-reply-to:autocrypt:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ORRZpXUfxr9ItRDDr0g7BO8pI4LaWWkmIOzOV1lUjes=; b=QY8S+A84QBVbmHV/TZ3r8a/ZN3NoM9USSOjv5Su1AFDlfPdbnaWMe4QFQMM3UzS2jZ Bo1xnhZFS0YRkA+WQzZjU3bNAOCTG3KqEeirlgKp+jGe7zh12gq8Q+o+j4JR7eAP88T8 DbJ2mxO1/haR6J+11wHtER0gtRfPVg4Boi1fieAtE5OG9deCZfFBW5uiENvBsw678sj6 emHd1RUGMbje+WD34jB9zxHCsWiTEqJvhOD21R03+BQZ40jCjaHDqQX0Yn2oHqtt2lAW cOWD6ZjjoyWUpn5QQdoGL1AKV4/oCt8zMa0bApVO0gURkUNR8gDKeyFJKf5EyLhTyqw+ VLZQ== X-Forwarded-Encrypted: i=1; AJvYcCWIcC2caBB/Tzk7DGeh+mUStkHiQ3NkcVFry5z0wxJumlO/mmq2Wzx/fF/+/VvBh0XumHBfwTf/+XJwJiblYIth3MwCsWUqARUePPdW X-Gm-Message-State: AOJu0Yy7W+csS2tkfgEYBmvqGbKxDGKgrBU1x4FAEvf12cSaQwb8NjDo P4z/Z2K0CSTMpCnVnJo16kDsT6J+wxXHMGEYDcxIwE62yrdcsedvTZXtOafsI04= X-Received: by 2002:a05:6a21:27a8:b0:1aa:5f1f:79d1 with SMTP id rn40-20020a056a2127a800b001aa5f1f79d1mr709847pzb.1.1713381656202; Wed, 17 Apr 2024 12:20:56 -0700 (PDT) Received: from [10.36.51.174] ([24.75.208.145]) by smtp.gmail.com with ESMTPSA id r13-20020aa79ecd000000b006ed045af796sm11536pfq.88.2024.04.17.12.20.54 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 17 Apr 2024 12:20:55 -0700 (PDT) Message-ID: <7eeef2c6-7375-4e41-aad6-ca0a39e95e2e@linaro.org> Date: Wed, 17 Apr 2024 21:20:53 +0200 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH v2 30/31] kvx: Add power controller driver To: Yann Sionneau , Yann Sionneau , Arnd Bergmann , Jonathan Corbet , Thomas Gleixner , Marc Zyngier , Rob Herring , Krzysztof Kozlowski , Will Deacon , Peter Zijlstra , Boqun Feng , Mark Rutland , Eric Biederman , Kees Cook , Oleg Nesterov , Ingo Molnar , Waiman Long , "Aneesh Kumar K.V" , Andrew Morton , Nick 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@vger.kernel.org, linux-audit@redhat.com, linux-riscv@lists.infradead.org, bpf@vger.kernel.org References: <20230120141002.2442-1-ysionneau@kalray.eu> <20230120141002.2442-31-ysionneau@kalray.eu> Content-Language: en-US From: Krzysztof Kozlowski Autocrypt: addr=krzysztof.kozlowski@linaro.org; keydata= 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 D2GYIS41Kv4Isx2dEFh+/Q== In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 15/04/2024 16:08, Yann Sionneau wrote: > Hello Krzysztof, Arnd, all, > > 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. I might be missing here some bigger picture and maybe my original comment was no appropriate, but IIUC, you might now create dependencies between arch code and drivers. That's also fragile. > > 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 ? > > * drivers/soc ? > Bringup of CPU? Then I would vote for here. You also have existing example: r9a06g032-smp.c But anyway the point is to make it clear - either it is a driver or core code. Not both. The original code was not looking like any other CPU bringup code. Best regards, Krzysztof