smccc.c 730 B

123456789101112131415161718192021222324252627282930313233
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Copyright (C) 2020 Arm Limited
  4. */
  5. #define pr_fmt(fmt) "smccc: " fmt
  6. #include <linux/init.h>
  7. #include <linux/arm-smccc.h>
  8. static u32 smccc_version = ARM_SMCCC_VERSION_1_0;
  9. static enum arm_smccc_conduit smccc_conduit = SMCCC_CONDUIT_NONE;
  10. void __init arm_smccc_version_init(u32 version, enum arm_smccc_conduit conduit)
  11. {
  12. smccc_version = version;
  13. smccc_conduit = conduit;
  14. }
  15. enum arm_smccc_conduit arm_smccc_1_1_get_conduit(void)
  16. {
  17. if (smccc_version < ARM_SMCCC_VERSION_1_1)
  18. return SMCCC_CONDUIT_NONE;
  19. return smccc_conduit;
  20. }
  21. EXPORT_SYMBOL_GPL(arm_smccc_1_1_get_conduit);
  22. u32 arm_smccc_get_version(void)
  23. {
  24. return smccc_version;
  25. }
  26. EXPORT_SYMBOL_GPL(arm_smccc_get_version);