On Thu, Jan 29, 2026 at 03:56:55PM +0530, Ekansh Gupta wrote:
> 
> 
> On 1/6/2026 8:23 AM, Dmitry Baryshkov wrote:
> > 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?
> Apologies for the delay in response, had to go back to check on older DSP 
> software.
> 
> DSP will also use this but it handled properly across platforms. DSP get PD 
> details from PD bits
> and mask it to use further for async call checks. Other than async call 
> check, the context ID is
> majorly used for book-keeping on DSP side(no functional utility).
> 
> So, it should also work on MSM8916,

Reviewed-by: Dmitry Baryshkov <[email protected]>



> >
> >> 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