Commit ad5a57df authored by Sudeep Holla's avatar Sudeep Holla Committed by Will Deacon

firmware: smccc: Drop smccc_version enum and use ARM_SMCCC_VERSION_1_x instead

Instead of maintaining 2 sets of enums/macros for tracking SMCCC version,
let us drop smccc_version enum and use ARM_SMCCC_VERSION_1_x directly
instead.

This is in preparation to drop smccc_version here and move it separately
under drivers/firmware/smccc.
Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
Tested-by: default avatarEtienne Carriere <etienne.carriere@st.com>
Reviewed-by: default avatarSteven Price <steven.price@arm.com>
Reviewed-by: default avatarEtienne Carriere <etienne.carriere@st.com>
Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
Link: https://lore.kernel.org/r/20200518091222.27467-5-sudeep.holla@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
parent 0441bfe7
...@@ -120,7 +120,7 @@ static bool has_pv_steal_clock(void) ...@@ -120,7 +120,7 @@ static bool has_pv_steal_clock(void)
struct arm_smccc_res res; struct arm_smccc_res res;
/* To detect the presence of PV time support we require SMCCC 1.1+ */ /* To detect the presence of PV time support we require SMCCC 1.1+ */
if (psci_ops.smccc_version < SMCCC_VERSION_1_1) if (arm_smccc_1_1_get_conduit() == SMCCC_CONDUIT_NONE)
return false; return false;
arm_smccc_1_1_invoke(ARM_SMCCC_ARCH_FEATURES_FUNC_ID, arm_smccc_1_1_invoke(ARM_SMCCC_ARCH_FEATURES_FUNC_ID,
......
...@@ -54,12 +54,12 @@ bool psci_tos_resident_on(int cpu) ...@@ -54,12 +54,12 @@ bool psci_tos_resident_on(int cpu)
struct psci_operations psci_ops = { struct psci_operations psci_ops = {
.conduit = SMCCC_CONDUIT_NONE, .conduit = SMCCC_CONDUIT_NONE,
.smccc_version = SMCCC_VERSION_1_0, .smccc_version = ARM_SMCCC_VERSION_1_0,
}; };
enum arm_smccc_conduit arm_smccc_1_1_get_conduit(void) enum arm_smccc_conduit arm_smccc_1_1_get_conduit(void)
{ {
if (psci_ops.smccc_version < SMCCC_VERSION_1_1) if (psci_ops.smccc_version < ARM_SMCCC_VERSION_1_1)
return SMCCC_CONDUIT_NONE; return SMCCC_CONDUIT_NONE;
return psci_ops.conduit; return psci_ops.conduit;
...@@ -411,8 +411,8 @@ static void __init psci_init_smccc(void) ...@@ -411,8 +411,8 @@ static void __init psci_init_smccc(void)
if (feature != PSCI_RET_NOT_SUPPORTED) { if (feature != PSCI_RET_NOT_SUPPORTED) {
u32 ret; u32 ret;
ret = invoke_psci_fn(ARM_SMCCC_VERSION_FUNC_ID, 0, 0, 0); ret = invoke_psci_fn(ARM_SMCCC_VERSION_FUNC_ID, 0, 0, 0);
if (ret == ARM_SMCCC_VERSION_1_1) { if (ret >= ARM_SMCCC_VERSION_1_1) {
psci_ops.smccc_version = SMCCC_VERSION_1_1; psci_ops.smccc_version = ret;
ver = ret; ver = ret;
} }
} }
......
...@@ -21,11 +21,6 @@ bool psci_power_state_is_valid(u32 state); ...@@ -21,11 +21,6 @@ bool psci_power_state_is_valid(u32 state);
int psci_set_osi_mode(void); int psci_set_osi_mode(void);
bool psci_has_osi_support(void); bool psci_has_osi_support(void);
enum smccc_version {
SMCCC_VERSION_1_0,
SMCCC_VERSION_1_1,
};
struct psci_operations { struct psci_operations {
u32 (*get_version)(void); u32 (*get_version)(void);
int (*cpu_suspend)(u32 state, unsigned long entry_point); int (*cpu_suspend)(u32 state, unsigned long entry_point);
...@@ -36,7 +31,7 @@ struct psci_operations { ...@@ -36,7 +31,7 @@ struct psci_operations {
unsigned long lowest_affinity_level); unsigned long lowest_affinity_level);
int (*migrate_info_type)(void); int (*migrate_info_type)(void);
enum arm_smccc_conduit conduit; enum arm_smccc_conduit conduit;
enum smccc_version smccc_version; u32 smccc_version;
}; };
extern struct psci_operations psci_ops; extern struct psci_operations psci_ops;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment