On 1/29/2025 5:00 AM, Dmitry Baryshkov wrote: > On Mon, Jan 27, 2025 at 10:12:39AM +0530, Ekansh Gupta wrote: >> DSP needs last 4 bits of context id to be 0 for polling mode to be >> supported as setting of last 8 is intended for async mode(not yet >> supported on upstream driver) and setting these bits restrics >> writing to poll memory from DSP. Modify context id mask to ensure >> polling mode is supported. > Shouldn't this commit come before the previous one? Yes, I'll change the order in next series. Thanks for reviewing the changes. --ekansh > >> Signed-off-by: Ekansh Gupta <quic_ekangupt@xxxxxxxxxxx> >> --- >> drivers/misc/fastrpc.c | 8 ++++---- >> 1 file changed, 4 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c >> index 257a741af115..ef56c793c564 100644 >> --- a/drivers/misc/fastrpc.c >> +++ b/drivers/misc/fastrpc.c >> @@ -40,7 +40,7 @@ >> #define FASTRPC_INIT_HANDLE 1 >> #define FASTRPC_DSP_UTILITIES_HANDLE 2 >> #define FASTRPC_MAX_STATIC_HANDLE (20) >> -#define FASTRPC_CTXID_MASK (0xFF0) >> +#define FASTRPC_CTXID_MASK (0xFF0000) >> #define INIT_FILELEN_MAX (2 * 1024 * 1024) >> #define INIT_FILE_NAMELEN_MAX (128) >> #define FASTRPC_DEVICE_NAME "fastrpc" >> @@ -524,7 +524,7 @@ static void fastrpc_context_free(struct kref *ref) >> fastrpc_buf_free(ctx->buf); >> >> spin_lock_irqsave(&cctx->lock, flags); >> - idr_remove(&cctx->ctx_idr, ctx->ctxid >> 4); >> + idr_remove(&cctx->ctx_idr, ctx->ctxid >> 16); >> spin_unlock_irqrestore(&cctx->lock, flags); >> >> kfree(ctx->maps); >> @@ -664,7 +664,7 @@ static struct fastrpc_invoke_ctx *fastrpc_context_alloc( >> spin_unlock_irqrestore(&cctx->lock, flags); >> goto err_idr; >> } >> - ctx->ctxid = ret << 4; >> + ctx->ctxid = ret << 16; >> spin_unlock_irqrestore(&cctx->lock, flags); >> >> kref_init(&ctx->refcount); >> @@ -2675,7 +2675,7 @@ static int fastrpc_rpmsg_callback(struct rpmsg_device *rpdev, void *data, >> if (len < sizeof(*rsp)) >> return -EINVAL; >> >> - ctxid = ((rsp->ctx & FASTRPC_CTXID_MASK) >> 4); >> + ctxid = ((rsp->ctx & FASTRPC_CTXID_MASK) >> 16); >> >> spin_lock_irqsave(&cctx->lock, flags); >> ctx = idr_find(&cctx->ctx_idr, ctxid); >> -- >> 2.34.1 >>