]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
misc: fastrpc: use coherent pool for untranslated Compute Banks
authorDylan Van Assche <me@dylanvanassche.be>
Fri, 5 Jul 2024 07:58:59 +0000 (08:58 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 5 Jul 2024 08:01:43 +0000 (10:01 +0200)
Use fastrpc_remote_heap_alloc to allocate from the FastRPC device
instead of the Compute Bank when the session ID is 0. This ensures
that the allocation is inside the coherent DMA pool which is already
accessible to the DSP. This is necessary to support FastRPC devices
which do not have dedicated Compute Banks such as the SLPI on the SDM845.
The latter uses an allocated CMA region instead of FastRPC Compute Banks.

Signed-off-by: Dylan Van Assche <me@dylanvanassche.be>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Reviewed-by: Ekansh Gupta <quic_ekangupt@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20240705075900.424100-6-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/fastrpc.c

index 1c045f9a75a4c9d2af7057ba478a8db199cb49c4..95931abc3770638a01c571561fdcf33e68baece4 100644 (file)
@@ -953,7 +953,10 @@ static int fastrpc_get_args(u32 kernel, struct fastrpc_invoke_ctx *ctx)
 
        ctx->msg_sz = pkt_size;
 
-       err = fastrpc_buf_alloc(ctx->fl, dev, pkt_size, &ctx->buf);
+       if (ctx->fl->sctx->sid)
+               err = fastrpc_buf_alloc(ctx->fl, dev, pkt_size, &ctx->buf);
+       else
+               err = fastrpc_remote_heap_alloc(ctx->fl, dev, pkt_size, &ctx->buf);
        if (err)
                return err;