V2: Fix several build issues reported by kbuild test robot: - patch 1/6: fix erroneous ';' in inline functions; - patch 5/6: fix bad function label used; - patch 6/6: fix bad function label used. Reported-by: kbuild test robot lkp@intel.com Fix function stubs to return -ENXIO not -EINVAL when SMCCC is not supported. Few rephrasing in commit message for all patches of the series. Add an empty line between a trace and a return instruction in patch 1/6. Add argument label in arm_smccc_1_0_set_conduit() prototype in patch 1/6. Fix typo in inline description comments in patch 1/6.
These changes propose helper functions and macros to consolidate choice of the conduit method among devices communicating with a secure world that complies with SMCCC v1.0 but not SMCCC v1.1 or later. The new helper functions mimic arm_smccc_1_1_*() function but for SMCCC v1.0 compliant firmwares.
This series of changes updates several firmware drivers that each define a conduit method whereas kernel drivers are expected to use the very same conduit. This series obviously does not enforce these drivers to apply the proposed changes but the interest of the first patch is this series is that at least the PSCI driver upgrades as it will allow new drivers to benefit from the early initialized PSCI conduit method.
Etienne Carriere (6): firmware: helper functions for SMCCC v1.0 invocation conduit firmware: psci: set SMCCC v1.0 conduit and use helpers functions tee: optee: use SMCCC v1.0 helper functions firmware: arm_sdei: use SMCCC v1.0 helper functions firmware: stratix10: use SMCCC v1.0 helper functions firmware: zynqmp: use SMCCC v1.0 helper functions
drivers/firmware/Makefile | 1 + drivers/firmware/arm_sdei.c | 79 +++++--------- drivers/firmware/arm_smccc_conduit.c | 148 +++++++++++++++++++++++++++ drivers/firmware/psci/psci.c | 60 ++--------- drivers/firmware/stratix10-svc.c | 97 ++---------------- drivers/firmware/xilinx/zynqmp.c | 87 ++-------------- drivers/tee/optee/call.c | 14 +-- drivers/tee/optee/core.c | 85 ++++----------- drivers/tee/optee/optee_private.h | 4 +- include/linux/arm-smccc.h | 106 +++++++++++++++++++ include/linux/psci.h | 1 - 11 files changed, 338 insertions(+), 344 deletions(-) create mode 100644 drivers/firmware/arm_smccc_conduit.c