|
@@ -178,7 +178,7 @@ static int enable_smccc_arch_workaround_1(void *data)
|
|
case PSCI_CONDUIT_HVC:
|
|
case PSCI_CONDUIT_HVC:
|
|
arm_smccc_1_1_hvc(ARM_SMCCC_ARCH_FEATURES_FUNC_ID,
|
|
arm_smccc_1_1_hvc(ARM_SMCCC_ARCH_FEATURES_FUNC_ID,
|
|
ARM_SMCCC_ARCH_WORKAROUND_1, &res);
|
|
ARM_SMCCC_ARCH_WORKAROUND_1, &res);
|
|
- if (res.a0)
|
|
|
|
|
|
+ if ((int)res.a0 < 0)
|
|
return 0;
|
|
return 0;
|
|
cb = call_hvc_arch_workaround_1;
|
|
cb = call_hvc_arch_workaround_1;
|
|
smccc_start = __smccc_workaround_1_hvc_start;
|
|
smccc_start = __smccc_workaround_1_hvc_start;
|
|
@@ -188,7 +188,7 @@ static int enable_smccc_arch_workaround_1(void *data)
|
|
case PSCI_CONDUIT_SMC:
|
|
case PSCI_CONDUIT_SMC:
|
|
arm_smccc_1_1_smc(ARM_SMCCC_ARCH_FEATURES_FUNC_ID,
|
|
arm_smccc_1_1_smc(ARM_SMCCC_ARCH_FEATURES_FUNC_ID,
|
|
ARM_SMCCC_ARCH_WORKAROUND_1, &res);
|
|
ARM_SMCCC_ARCH_WORKAROUND_1, &res);
|
|
- if (res.a0)
|
|
|
|
|
|
+ if ((int)res.a0 < 0)
|
|
return 0;
|
|
return 0;
|
|
cb = call_smc_arch_workaround_1;
|
|
cb = call_smc_arch_workaround_1;
|
|
smccc_start = __smccc_workaround_1_smc_start;
|
|
smccc_start = __smccc_workaround_1_smc_start;
|