9a434cee77
Dynamically support SMCCCC and legacy conventions by detecting which convention to use at runtime. qcom_scm_call_atomic and qcom_scm_call can then be moved in qcom_scm.c and use underlying convention backend as appropriate. Thus, rename qcom_scm-64,-32 to reflect that they are backends for -smc and -legacy, respectively. Also add support for making SCM calls earlier than when SCM driver probes to support use cases such as qcom_scm_set_cold_boot_addr. Support is added by lazily initializing the convention and guarding the query with a spin lock. The limitation of these early SCM calls is that they cannot use DMA, as in the case of >4 arguments for SMC convention and any non-atomic call for legacy convention. Tested-by: Brian Masney <masneyb@onstation.org> # arm32 Tested-by: Stephan Gerhold <stephan@gerhold.net> Signed-off-by: Elliot Berman <eberman@codeaurora.org> Link: https://lore.kernel.org/r/1578431066-19600-18-git-send-email-eberman@codeaurora.org Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
35 lines
1.2 KiB
Makefile
35 lines
1.2 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for the linux kernel.
|
|
#
|
|
obj-$(CONFIG_ARM_SCPI_PROTOCOL) += arm_scpi.o
|
|
obj-$(CONFIG_ARM_SCPI_POWER_DOMAIN) += scpi_pm_domain.o
|
|
obj-$(CONFIG_ARM_SDE_INTERFACE) += arm_sdei.o
|
|
obj-$(CONFIG_DMI) += dmi_scan.o
|
|
obj-$(CONFIG_DMI_SYSFS) += dmi-sysfs.o
|
|
obj-$(CONFIG_EDD) += edd.o
|
|
obj-$(CONFIG_EFI_PCDP) += pcdp.o
|
|
obj-$(CONFIG_DMIID) += dmi-id.o
|
|
obj-$(CONFIG_INTEL_STRATIX10_SERVICE) += stratix10-svc.o
|
|
obj-$(CONFIG_INTEL_STRATIX10_RSU) += stratix10-rsu.o
|
|
obj-$(CONFIG_ISCSI_IBFT_FIND) += iscsi_ibft_find.o
|
|
obj-$(CONFIG_ISCSI_IBFT) += iscsi_ibft.o
|
|
obj-$(CONFIG_FIRMWARE_MEMMAP) += memmap.o
|
|
obj-$(CONFIG_RASPBERRYPI_FIRMWARE) += raspberrypi.o
|
|
obj-$(CONFIG_FW_CFG_SYSFS) += qemu_fw_cfg.o
|
|
obj-$(CONFIG_QCOM_SCM) += qcom_scm.o qcom_scm-smc.o qcom_scm-legacy.o
|
|
obj-$(CONFIG_TI_SCI_PROTOCOL) += ti_sci.o
|
|
obj-$(CONFIG_TRUSTED_FOUNDATIONS) += trusted_foundations.o
|
|
obj-$(CONFIG_TURRIS_MOX_RWTM) += turris-mox-rwtm.o
|
|
|
|
obj-$(CONFIG_ARM_SCMI_PROTOCOL) += arm_scmi/
|
|
obj-y += psci/
|
|
obj-y += broadcom/
|
|
obj-y += meson/
|
|
obj-$(CONFIG_GOOGLE_FIRMWARE) += google/
|
|
obj-$(CONFIG_EFI) += efi/
|
|
obj-$(CONFIG_UEFI_CPER) += efi/
|
|
obj-y += imx/
|
|
obj-y += tegra/
|
|
obj-y += xilinx/
|