From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753013AbdJLC6Z (ORCPT ); Wed, 11 Oct 2017 22:58:25 -0400 Received: from mail-cys01nam02on0040.outbound.protection.outlook.com ([104.47.37.40]:9488 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752539AbdJLC6W (ORCPT ); Wed, 11 Oct 2017 22:58:22 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jisheng.Zhang@synaptics.com; Date: Thu, 12 Oct 2017 10:58:01 +0800 From: Jisheng Zhang To: Geert Uytterhoeven Cc: Mark Rutland , Lorenzo Pieralisi , linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 1/2] drivers: firmware: psci: Add psci_is_available() Message-ID: <20171012105801.0bb643eb@xhacker.debian> In-Reply-To: <1507708982-12336-2-git-send-email-geert+renesas@glider.be> References: <1507708982-12336-1-git-send-email-geert+renesas@glider.be> <1507708982-12336-2-git-send-email-geert+renesas@glider.be> X-Mailer: Claws Mail 3.15.1-dirty (GTK+ 2.24.31; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Originating-IP: [124.74.246.114] X-ClientProxiedBy: HK2PR04CA0083.apcprd04.prod.outlook.com (10.170.154.155) To BY2PR0301MB0758.namprd03.prod.outlook.com (10.160.63.23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9bc8ed2d-3816-4214-8945-08d5111d1704 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075);SRVR:BY2PR0301MB0758; X-Microsoft-Exchange-Diagnostics: 1;BY2PR0301MB0758;3:VUzfStaCfzNhY5qfVMbTKA90v1m803xCw4Umrzdz5Bg9BFBU/hiMIBE+6q0nAsuXYh90TvYJWeycUkyQfYwtibQqaFxDC4oSUEftMJqSY+rT/F+PE3bVtdYKTaR9y6APyMlwml64kBU6nMFohYTTpAj2ZPRx97ll6Md1RcopDfwpVQkKRnfahogxFgh/lZ2lPLiXE1UwNO2hvSEgEkVgIFEHUR51QMcduaFqkQqSGP1er0U0wsXdNcmK7ddyp0Z8;25:iRbf54igxISB6dCpnerDKWYNPJkgmtOQLeZX9f3CHcV0s02otK5i6NUi0JTXkyreDbUd3ZSfnvYL3UhV5E/QShwz9UCDL2BKnciXlx6b40+eIxxoXAceA1lvDjMEP7qK67oP6zetGXFKVcP6Itfyr9jEp3vEcWD3BRe5r1as8Uce8dIT6n3YAu8xdpbglN4mymlorXhXqetfgS8BRqOJmNtIdaII8ptVIw97vlw2VV2nOuhrflZiWtRyFQbvsctWKtRpIGB1R3+/Iir5fKiiXT2PQBddfg205PtNldBw3N4wn+Ah/WNUBei7NzyJGBMGNjXAE9ElTsZQf2Jg3piWZA==;31:Puk+DP69BJyJbQ3J+jSo3Ug+gfZ4FpB0C2eAY3PZKx6WxiGMFKB8fSrhTZvHNqot48WViYJj6wtPnjkmybxLWI8FPHnkI0Dor2RHrv5BVTRa8Mx4koa4sqE9fh1bqYMIFClx9qpsx++v+4i/jGdo0GLV7uyFYR4WyhgzdoPsS2c4MM+8DGJ77HbnkrT/cXCCZQLa49XvfJxo1E6G5HTMoonykfMZDifOGvV6/d21lh4= X-MS-TrafficTypeDiagnostic: BY2PR0301MB0758: X-Microsoft-Exchange-Diagnostics: 1;BY2PR0301MB0758;20:71AdWbHDQEV2pVUrqXTbpRKJ80gT/wV48CyA3+ZN3FluF7WPa3CQFQew9uT/3x+grlEEBrTMmf80d3ibemEqef4eNlinHcNzHgv36oRhmwJuthSUUlzi943bawfug9Or667cxeBuWpYNFoRUDEzcYKFr/K6PY7jUGD+9qOVuI00HR0mfFnp3wyssU/LuORMbi3WKDH2zpYp1bfd3MxFY+zFh40dtONfsWzK7ksY5rXHKUIvWfyChoCVDwz7yXiYWlAeqkNtEx+zfofIclE3KQCsEDjO5mDhAa3AwFtFOLbzj/rfz+JKbOu424lVzTyRXYj0tkXZrzv7YOGt1d922uHb3gbsVegyTyMGbYUcuudINOX9mM6n82alOkJYtvCF078e1kDtT8tHc5Z5wcgXqepJbgvB7f/AxCurcR2Lets0=;4:w8kHu6Yg4aSx4SBUNd/In8oAk0KHO2283HkTPefEGUEWxhIBN/IaXu1rLYiQ4dE9LLKlRjAmpiDjIVvsv93zITkWF/OmaoTCowIVh6a1uW0nB81nDHPEF4kBvDMxnnZqXxe6cjMoL+pTKgkeWd3sOTy+jxExke0tb94HAvX1UyXby1LqrgqbIGgS7vky6Xib6zQzpLh1+W1K4Gda+XaLtIIPRrp9WYlCM7RoEDNKgzxI+BK3MXnjFfkK9L6IaiDe X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(10201501046)(3002001)(93006095)(93001095)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123560025)(20161123562025)(20161123564025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:BY2PR0301MB0758;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:BY2PR0301MB0758; X-Forefront-PRVS: 04583CED1A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(979002)(6009001)(376002)(346002)(199003)(189002)(24454002)(50466002)(97736004)(106356001)(105586002)(50226002)(33646002)(189998001)(2906002)(478600001)(72206003)(6116002)(3846002)(1076002)(6506006)(68736007)(86362001)(230700001)(6666003)(23726003)(25786009)(5660300001)(6246003)(47776003)(66066001)(81156014)(81166006)(8676002)(55016002)(7736002)(4326008)(305945005)(2950100002)(229853002)(53936002)(50986999)(316002)(8936002)(9686003)(76176999)(101416001)(16526018)(54906003)(39210200001)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:BY2PR0301MB0758;H:xhacker.debian;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY2PR0301MB0758;23:0U9f6Ty3X1/qabtl/r9+uW9db8LDqlpKvr2wZbF?= =?us-ascii?Q?27T4TxPUdWilfWB3tQXLurtyqqVWzheOr2szYxm7u9tJoJfMDqv44p+uyWKd?= =?us-ascii?Q?geV0JwlpsM3vvrQ6npmTSmciehWkJTtayzG2TOrtd0FsNWt0cMOvmt+rPjOT?= =?us-ascii?Q?m4NpJ/r51fnYCjI3kDbidsEDECgEumBoOm7A/KfRDc/DnqCNPDD1sinorxU3?= =?us-ascii?Q?mraHj9spApXLwejuIyK1DHyiPG3ZsPUef+ISaV0+7Z3n2MpezXwmA4TH5PVm?= =?us-ascii?Q?S0pMHg3B3K/Z0bQ2hyygOXmcDcgiWw7kY9dgG/7Csz88Z1OsVD0qWNJwof0n?= =?us-ascii?Q?NMEHCNUrnJuc2scTIBU2lL8j6cosqNlF6S+mMpGGiEKwZhAE2iKc9zEKz/Sg?= =?us-ascii?Q?xUqHoJZxJ5fwLK9maJ9PLYKzhpDBbxSbwpeyqYxHrZ4a/+uMCzcs9FC60Kx7?= =?us-ascii?Q?sUbW36+8gzmsP8ut4p0Ca5qlW10QRP+L9XnGKxu7pe4GubxHYkUEIlKMZKku?= =?us-ascii?Q?kb9/Xr0yCqqngB2FvuX0lgLazwLALhosDxwfga+66I/a9hQEhwMQQbZFNzKI?= =?us-ascii?Q?WievbKsTZm2bJB/5rCbgetnu3QVQvqTLyMJT5hL23YsMFKI65cjwiBOgFgxn?= =?us-ascii?Q?5OreaS/hWVlDGkNf097550utPO7XGJzdG5erupUtdqPakaBvTU4kqqWQ7y72?= =?us-ascii?Q?OFCnd3ejHu4mw2vnIPDqSTnSCEWQFhJvDpCScegV4wF2hZqt7AACy+56U6tH?= =?us-ascii?Q?fMaYhB2giwgUGGo4iRkyYDqjCqsQy6OmeT//bbhChKnttM/btFIlcUbSpZW+?= =?us-ascii?Q?uUXa3jQmlbcnEy9zK9LiWsjRTAQOO2yVycKgLE7DEya232vnlIkn3o1GPDs7?= =?us-ascii?Q?zDQsDGFhPQ8PKjkcgYIa0zXAeVUWv64FpPTBDXwH+Pf6d1z5dXuSMqs46OGV?= =?us-ascii?Q?CUcN/P6NaEqw71LnaHzeKlP0+YnCpufwNkE2kFh6IvoFNffYYcnJdDajb5qF?= =?us-ascii?Q?VieQnzCXt7sCu9FFCIzrGSb3GsCLiK+EyvrmBDPI3kO4buj8Q47k5mTeR4Bq?= =?us-ascii?Q?r6BJSo9DurVlnMnD5zuf5k5i5ECM0uMyN6slKJoojD/HcbdLlVoMe6fMC+IU?= =?us-ascii?Q?mcYtSmbFltUFFZoF1Ca63H69MmCSoroKps6/5eDReTOeWapoTWdKGt3ec3yg?= =?us-ascii?Q?uppH14hA5nV/FUfFVJoZP6hnI7hwdHcvO4By8IKi7ZnOcVjBJHx/+1LjHavO?= =?us-ascii?Q?KAZ33K8yIU/JdUv1lVwk=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR0301MB0758;6:6fBz7S/9yVMDo3mbU4caHvcsM09nSRTHdWjN9nfZUTGoienWqHtf+Q/Z8q6l1Ys7/lQBJJz1avunehMmXeWlUzL6WEiyOOi0/uJPsRznqAnXPP8nma/5w98JoqQ+Fn7WpEG+xCbT2XBaMXf0Kl7DDng6+bRQjbjpxXJz7FsZNmudqybjpOsUao3rJqHBPV4sK2Ena9Ht1WpwaYbktXhhzBQ3o/q34CZjAYFfmjcfDZA/789QxHs3eI1BsdKJ+g7cMPk9RIWzZ2QsUtdDo0B2VYSKbA+IcxZrDldF9LAtKtXZrDW8YZiG5FFoqUs+ExTeME/P9DO+UAwhHndhAeGvQQ==;5:K6I6e94NfKWdYczDxDkpCBrY226mQKfXXbbpavBMDmtvnrNVZMQ/qD54wF4t6MkZ2StNR/R/RjXf24zikOLwtnberPC/RyxUfsgbysuTnYjHlBWAocbRobTgUeWutlyw98ls09vP1wcoYPP0B2DUPS3ecmMQNl1MESCocWyYQTI=;24:kq65bbTk2mcVPgDXUWtPgRLaxz8XjbcetC3nv1oHCJ8puamnoKyZoCIf6cBvMkz6TOJRhdNvo89uCJ5W3FcWoLUMJP+TGi2IRAonNEeXNM8=;7:VQcryOcRf5xHxQjglXuNT8iR8KqJTRGLULhe8h8qyKdfWpVZaDm+yDynWcI9GlHzVYFtUyqkWPFeXiS/5PmLczMlSXIsVrUIzcj9Ugjlh52GR23yBuCBSsObM2fgqfbOVypjVWrQ/LacOpC29atPRuKO0lXP/T0Vu1S3J5EGAiG+D+DeS4FTbT6hCPYJ791c7Yb+S07I2R5BmQJ/A+wZg0Y2872QjqAMmPwTMwkhv74= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: synaptics.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Oct 2017 02:58:16.5377 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335d1fbc-2124-4173-9863-17e7051a2a0e X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0301MB0758 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 11 Oct 2017 10:03:01 +0200 Geert Uytterhoeven wrote: > PSCI support may be disabled at build time (by configuration) or at > run-time (PSCI firmware not present). While CONFIG_ARM_PSCI_FW can be > used to check for build time enablement, there is currently no simple > way to check if PSCI is actually available and used. > > Hence add a helper function to check if PSCI is available. > > This is useful for e.g. drivers that are used on platforms with and > without PSCI. Such drivers may need to take provisions for proper > operation when PSCI is used, and/or to implement functionality that is > usually provided by PSCI. the psci_ops is a global var, why not check psci_ops.mmnn members individually in each drivers? check IS_ENABLED(CONFIG_ARM_PSCI_FW) for building time ennoblement. > > Signed-off-by: Geert Uytterhoeven > --- > drivers/firmware/psci.c | 5 +++++ > include/linux/psci.h | 2 ++ > 2 files changed, 7 insertions(+) > > diff --git a/drivers/firmware/psci.c b/drivers/firmware/psci.c > index da469c972b503f83..a3a11e2d8ffffaaa 100644 > --- a/drivers/firmware/psci.c > +++ b/drivers/firmware/psci.c > @@ -670,6 +670,11 @@ int __init psci_dt_init(void) > return init_fn(np); > } > > +bool psci_is_available(void) > +{ > + return psci_ops.cpu_off && psci_ops.cpu_on && psci_ops.cpu_suspend; IIRC, for PSCI 0.1, cpu_suspend is optional, we can't say the PSCI isn't available if cpu_suspend is missing. Thanks