Enable legacy calling convention in qcom_scm-64. Add enum to represent
current calling convention being used. Update is_call_available to use
legacy function numbers when using legacy convention.
Change-Id: I4aa1364f219d4db68c03023e63009a53326ecca5
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
Copy/paste legacy SCM driver into qcom_scm-64 with the following notes:
- Renamed qcom_scm_call in qcom_scm-32 to qcom_scm_call_legacy in the
copy.
- Renamed qcom_scm_call_atomic in qcom_scm 32 to
qcom_scm_call_atomic_legacy in the copy.
- Rename __qcom_scm_call_smccc to qcom_scm_call_smccc.
- Filled in implementations set_cold_boot_addr, set_warm_boot_addr, and
cpu_power_down from qcom_scm-32.c.
- set_dload_mode, io_writel, io_readl now use atomic variants as in
qcom_scm-32.
Change-Id: Ifa72ded7d6150bef08c6a0451d422b0782e8320a
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
Add this unused parameter to reduce merge friction between SMCCC and
legacy based conventions.
Change-Id: Ie31b220d751ae08430b3e89d41de0217e5213435
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
Downstream SCM driver legacy atomic calling convention supports up to 5
arguments and 3 return values. Create one function to support this
combination.
Change-Id: I516d920e00d6da99a1f8290c2ed8654c75f268f9
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
- Move SMCCC register filling to qcom_scm_call so that qcom_scm_call_do
only needs to concern itself with retry mechanism.
- Use arm_smccc_args struct in atomic variants as well.
Change-Id: I435d974724118943084f618f63fffb1109d1cfe0
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
Use qcom_scm_desc in non-atomic calls to remove legacy convention
details from every SCM wrapper function.
Change-Id: I6962d86b0a8edcedf0d7fe7700794aa8bfdac430
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
Improve the calling convention detection to use qcom_scm_call_atomic
and not blindly assume 32-bit mode if the checks fails.
__qcom_scm_is_call_available() cannot be used directly here as we want
an atomic variant of is_call_available(). This is also a necessary
requirement later when merging in legacy convention.
Change-Id: I66beec550d05afde6c680d256183e8ad207d7268
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
qcom_scm_call_smccc should be responsible for converting qcom_scm_desc
into arguments for smc call. Consolidate the dispersed logic to convert
qcom_scm_desc into smc arguments inside qcom_scm_call_smccc.
Change-Id: Ieae23c5fc6c77dbd76ef28dc4040b0f64de872c0
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
Remove thin wrapper to qcom_scm_call_do_smccc because it doesn't do
enough of anything interesting to dedicate its own function.
Change-Id: Ia726336e4dc14f0a473a86d6c15605a4a020b055
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
Remove knowledge of arm_smccc_res struct from client wrappers so that
client wrappers only work QCOM SCM data structures. SCM calls may have
up to 3 arguments, so qcom_scm_call_smccc is responsible now for filling
those 3 arguments accordingly.
Change-Id: I9712f75f6bea0a6528ccd5a69bc1602493574e19
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
Service, command, and owner IDs are all part of qcom_scm_desc struct and
have no special reason to be a function argument (or hard-coded in the
case of owner). Moving them to be part of qcom_scm_desc struct improves
readability.
Change-Id: I422e5b0c2c117ff4eafc80f16b34874ff86643d3
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
Definitions throughout qcom_scm are loosely grouped and loosely ordered.
Sort all the functions/definitions by service ID/command ID to improve
sanity when needing to add new functionality to this driver.
Change-Id: I698443e8e650d4bc9e65ac27d68c46d1e45ba8e3
Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
Improve understandability of SMCCC macros as they are all functions of
how many arguments can be shoved in registers and how many SCM arguments
are supported.
Change-Id: Iac0378fc4c5e20943a64b98223d53caa4955dd53
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
Add LEGACY_FUNCNUM to qcom_scm-32.c and move SMCCC_FUNCNUM closer to
other smccc-specific macros.
Change-Id: I385f0b5ba31cb14e304617d5aa67b37dc3c33c9c
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
Qcom's smmu-500 needs to toggle wait-for-safe sequence to
handle TLB invalidation sync's.
Few firmwares allow doing that through SCM interface.
Add API to toggle wait for safe from firmware through a
SCM call.
Change-Id: I425b4dda32f285996178540e551e3168c51da610
Signed-off-by: Vivek Gautam <vivek.gautam@codeaurora.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Acked-by: Andy Gross <agross@kernel.org>
Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
Patch-mainline: https://lore.kernel.org/patchwork/patch/1129993/
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
There are scnenarios where drivers are required to make a
scm call in atomic context, such as in one of the qcom's
arm-smmu-500 errata [1].
[1] ("https://source.codeaurora.org/quic/la/kernel/msm-4.9/
tree/drivers/iommu/arm-smmu.c?h=msm-4.9#n4842")
Change-Id: I5b313e6629a7ea54055c2cd83d439f5f0d9069c1
Signed-off-by: Vivek Gautam <vivek.gautam@codeaurora.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Acked-by: Andy Gross <agross@kernel.org>
Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
Patch-mainline: https://lore.kernel.org/patchwork/patch/1129992/
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
PMIC Glink driver provides the interface for the clients to
communicate over GLink for sending and receiving the data to
charger PD firmware that runs on ADSP which supports charging
and gauging.
This enable the clients to read/write and get notifications on
battery charging parameters.
Change-Id: I2747a86d88dac571bd7e4b8c6dfcd7b8ac596e4b
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
The PMIC Glink driver provides the interface for clients to
communicate over GLink for sending and receiving data to charger
firmware that runs on a remote subsystem (e.g. ADSP) which
supports charging and gauging.
This enables clients to read/write battery charging parameters
and get notifications.
Change-Id: I1e4c09d1ee10c8c5397f4459afe8d656593d718a
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Enable BT driver as module in defconfig on Lahaina
Change-Id: Idad7e5fb276e1fa7c4a371fcebad81e453c50422
Signed-off-by: Umesh Vats <uvats@codeaurora.org>
IMD command syntax fix for increment and adding a return
condition for parameter check.
Change-Id: I3e171bd09c3a4ae0d679348186cae1f87da076fe
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
This change will ensure the APIs are updated correctly to the
latest for wakeup_source and dma functions.
Change-Id: Iaaffe6f876dab3824f7a8b72f9d71be686033a6b
Acked-by: Priyadarshini Rajagopal <prajagop@qti.qualcomm.com>
Signed-off-by: Bojun Pan <bojunp@codeaurora.org>
Signed-off-by: Ghanim Fodi <gfodi@codeaurora.org>
SSR is triggered when the system does not have a sound card
registered, but has codecs. The pointer card sent from codec driver
to snd_soc_card_change_online_state is NULL.
Add null check for soc_card before dereferencing.
Change-Id: I23342a6cbd9d53e62b2ea11dfe79aad3759df6f0
Signed-off-by: Meng Wang <mwang@codeaurora.org>
This is a snapshot of watchdog driver as of msm-4.19 commit
<5a4fd734e3e0e76c8e0819c47eb0d333e09d0f9f>. (Merge "msm: audio: support
for gapless_pcm").
Change-Id: I8b683c8b5c4c56f328d0025b2829f42105d03940
Signed-off-by: Prakruthi Deepak Heragu <pheragu@codeaurora.org>
Add virtual QUP bus nodes to separate out bandwidth requests
and clock votes to allow for independent control.
Change-Id: I8d5a171e60b2e76db83e1d5a27f4cdfe4a1408d9
Signed-off-by: David Dai <daidavid1@codeaurora.org>
Close the coaleascing frame before control sequences involving
coalescing to ensure HPS is idle and that there are no open
coalescing frames/contexts.
Change-Id: I5914b7d64c58a7e557854df6fa2c6fc15a4e21df
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>