summaryrefslogtreecommitdiff
path: root/drivers/remoteproc/mtk_scp_ipi.c
diff options
context:
space:
mode:
authorTinghan Shen <tinghan.shen@mediatek.com>2023-09-01 11:09:26 +0300
committerMathieu Poirier <mathieu.poirier@linaro.org>2023-09-13 20:44:17 +0300
commit9ea166698f48c299ca6bd4730950ca1176f51e1b (patch)
treeb694b06e708040fcea5877a8c99ced8c340644f8 /drivers/remoteproc/mtk_scp_ipi.c
parent6a1c9aaf04eb4536da922f18e05c73a2afadfe2a (diff)
downloadlinux-9ea166698f48c299ca6bd4730950ca1176f51e1b.tar.xz
remoteproc: mediatek: Extract SCP common registers
This is the 1st preliminary steps for probing multi-core SCP. The registers of config and l1tcm are common on single-core SCP and multi-core SCP. Extract these registers out to reduce duplicated fields in mtk_scp when multiple SCP instances are created. Signed-off-by: Tinghan Shen <tinghan.shen@mediatek.com> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Tested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Link: https://lore.kernel.org/r/20230901080935.14571-6-tinghan.shen@mediatek.com Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Diffstat (limited to 'drivers/remoteproc/mtk_scp_ipi.c')
-rw-r--r--drivers/remoteproc/mtk_scp_ipi.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/remoteproc/mtk_scp_ipi.c b/drivers/remoteproc/mtk_scp_ipi.c
index 9c7c17b9d181..cd0b60106ec2 100644
--- a/drivers/remoteproc/mtk_scp_ipi.c
+++ b/drivers/remoteproc/mtk_scp_ipi.c
@@ -177,7 +177,7 @@ int scp_ipi_send(struct mtk_scp *scp, u32 id, void *buf, unsigned int len,
mutex_lock(&scp->send_lock);
/* Wait until SCP receives the last command */
- ret = readl_poll_timeout_atomic(scp->reg_base + scp->data->host_to_scp_reg,
+ ret = readl_poll_timeout_atomic(scp->cluster->reg_base + scp->data->host_to_scp_reg,
val, !val, 0, SCP_TIMEOUT_US);
if (ret) {
dev_err(scp->dev, "%s: IPI timeout!\n", __func__);
@@ -192,7 +192,7 @@ int scp_ipi_send(struct mtk_scp *scp, u32 id, void *buf, unsigned int len,
scp->ipi_id_ack[id] = false;
/* send the command to SCP */
writel(scp->data->host_to_scp_int_bit,
- scp->reg_base + scp->data->host_to_scp_reg);
+ scp->cluster->reg_base + scp->data->host_to_scp_reg);
if (wait) {
/* wait for SCP's ACK */