linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: robin.murphy@arm.com (Robin Murphy)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/4] arm/arm64: smccc/psci: add arm_smccc_get_conduit()
Date: Fri, 4 May 2018 18:54:14 +0100	[thread overview]
Message-ID: <d04f8eff-06e3-2080-e03e-cd35b7b2c382@arm.com> (raw)
In-Reply-To: <20180503170330.5591-2-mark.rutland@arm.com>

Hi Mark,

On 03/05/18 18:03, Mark Rutland wrote:
> SMCCC callers are currently amassing a collection of enums for the SMCCC
> conduit, and are having to dig into the PSCI driver's internals in order
> to figure out what to do.
> 
> Let's clean this up, with common SMCCC_CONDUIT_* definitions, and an
> arm_smccc_get_conduit() helper that abstracts the PSCI driver's internal
> state.
> 
> We can kill off the PSCI_CONDUIT_* definitions once we've migrated users
> over to the nerw interface.

new

> Signed-off-by: Mark Rutland <mark.rutland@arm.com>
> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> ---
>   drivers/firmware/psci.c   | 15 +++++++++++++++
>   include/linux/arm-smccc.h | 16 ++++++++++++++++
>   2 files changed, 31 insertions(+)
> 
> diff --git a/drivers/firmware/psci.c b/drivers/firmware/psci.c
> index c80ec1d03274..310882185ca4 100644
> --- a/drivers/firmware/psci.c
> +++ b/drivers/firmware/psci.c
> @@ -64,6 +64,21 @@ struct psci_operations psci_ops = {
>   	.smccc_version = SMCCC_VERSION_1_0,
>   };
>   
> +enum arm_smccc_conduit arm_smccc_get_conduit(void)
> +{
> +	if (psci_ops.smccc_version < SMCCC_VERSION_1_1)
> +		return SMCCC_CONDUIT_NONE;
> +
> +	switch (psci_ops.conduit) {
> +	case PSCI_CONDUIT_SMC:
> +		return SMCCC_CONDUIT_SMC;
> +	case PSCI_CONDUIT_HVC:
> +		return SMCCC_CONDUIT_HVC;
> +	default:
> +		return SMCCC_CONDUIT_NONE;
> +	}
> +}
> +
>   typedef unsigned long (psci_fn)(unsigned long, unsigned long,
>   				unsigned long, unsigned long);
>   static psci_fn *invoke_psci_fn;
> diff --git a/include/linux/arm-smccc.h b/include/linux/arm-smccc.h
> index a031897fca76..193e9d8a1ac2 100644
> --- a/include/linux/arm-smccc.h
> +++ b/include/linux/arm-smccc.h
> @@ -84,6 +84,22 @@
>   
>   #include <linux/linkage.h>
>   #include <linux/types.h>
> +
> +enum arm_smccc_conduit {
> +	SMCCC_CONDUIT_NONE,
> +	SMCCC_CONDUIT_SMC,
> +	SMCCC_CONDUIT_HVC,
> +};
> +
> +/**
> + * arm_smccc_get_conduit()
> + *
> + * Returns the conduit to be used for SMCCCv1.1 or later.
> + *
> + * When SMCCCv1.1 is not present, returns SMCCC_CONDUIT_NONE.
> + */
> +enum arm_smccc_conduit arm_smccc_get_conduit(void);

Given that implicit condition, can we save some confusion by naming this 
arm_smccc_1_1_conduit(), in line with the actual SMCCCv1.1 calls?

Robin.

> +
>   /**
>    * struct arm_smccc_res - Result from SMC/HVC call
>    * @a0-a3 result values from registers 0 to 3
> 

  reply	other threads:[~2018-05-04 17:54 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-03 17:03 [PATCH 0/4] arm64: SMCCC conduit cleanup Mark Rutland
2018-05-03 17:03 ` [PATCH 1/4] arm/arm64: smccc/psci: add arm_smccc_get_conduit() Mark Rutland
2018-05-04 17:54   ` Robin Murphy [this message]
2018-05-04 18:02     ` Mark Rutland
2018-05-03 17:03 ` [PATCH 2/4] arm64: errata: use arm_smccc_get_conduit() Mark Rutland
2018-05-03 17:03 ` [PATCH 3/4] firmware/psci: use common SMCCC_CONDUIT_* Mark Rutland
2018-05-03 17:03 ` [PATCH 4/4] firmware: arm_sdei: " Mark Rutland
2018-05-14 15:12   ` James Morse
2018-05-14 11:43 ` [PATCH 0/4] arm64: SMCCC conduit cleanup Lorenzo Pieralisi
2018-05-23 14:51 ` Will Deacon
2019-02-12 15:24 ` Will Deacon
2019-02-12 17:20   ` Catalin Marinas
2019-02-13 11:42     ` Mark Rutland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d04f8eff-06e3-2080-e03e-cd35b7b2c382@arm.com \
    --to=robin.murphy@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).