On Tue, Dec 30, 2025 at 11:58:30AM +0530, Ekansh Gupta wrote:
> Current FastRPC context uses a 12-bit mask:
>   [ID(8 bits)][PD type(4 bits)] = GENMASK(11, 4)

Is it Linux-only representation or is it also used by the DSP? Will it
work with MSM8916?

> 
> This works for normal calls but fails for DSP polling mode.
> Polling mode expects a 16-bit layout:
>   [15:8] = context ID (8 bits)
>   [7:5]  = reserved
>   [4]    = async mode bit
>   [3:0]  = PD type (4 bits)
> 
> If async bit (bit 4) is set, DSP disables polling. With current
> mask, odd IDs can set this bit, causing DSP to skip poll updates.
> 
> Update FASTRPC_CTXID_MASK to GENMASK(15, 8) so IDs occupy upper
> byte and lower byte is left for DSP flags and PD type.
> 
> Reserved bits remain unused. This change is compatible with
> polling mode and does not break non-polling behavior.
> 
> Bit layout:
>   [15:8] = CCCCCCCC (context ID)
>   [7:5]  = xxx (reserved)
>   [4]    = A (async mode)
>   [3:0]  = PPPP (PD type)
> 
> Signed-off-by: Ekansh Gupta <[email protected]>
> ---
>  drivers/misc/fastrpc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 

-- 
With best wishes
Dmitry

Reply via email to