Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

misc: fastrpc: add support for gdsp remoteproc

Some platforms (like lemans) feature one or more GPDSPs (General
Purpose DSPs). Similar to other kinds of Hexagon DSPs, they provide
a FastRPC implementation, allowing code execution in both signed and
unsigned protection domains. Extend the checks to allow domain names
starting with "gdsp" (possibly followed by an index).

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>
Signed-off-by: Ling Xu <quic_lxu5@quicinc.com>
Signed-off-by: Srinivas Kandagatla <srini@kernel.org>
Link: https://lore.kernel.org/r/20250912131302.303199-5-srini@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Ling Xu and committed by
Greg Kroah-Hartman
698de37f fb4679f6

+5 -1
+5 -1
drivers/misc/fastrpc.c
··· 27 27 #define MDSP_DOMAIN_ID (1) 28 28 #define SDSP_DOMAIN_ID (2) 29 29 #define CDSP_DOMAIN_ID (3) 30 + #define GDSP_DOMAIN_ID (4) 30 31 #define FASTRPC_MAX_SESSIONS 14 31 32 #define FASTRPC_MAX_VMIDS 16 32 33 #define FASTRPC_ALIGN 128 ··· 2250 2249 return MDSP_DOMAIN_ID; 2251 2250 else if (!strncmp(domain, "sdsp", 4)) 2252 2251 return SDSP_DOMAIN_ID; 2252 + else if (!strncmp(domain, "gdsp", 4)) 2253 + return GDSP_DOMAIN_ID; 2253 2254 2254 2255 return -EINVAL; 2255 2256 } ··· 2321 2318 case ADSP_DOMAIN_ID: 2322 2319 case MDSP_DOMAIN_ID: 2323 2320 case SDSP_DOMAIN_ID: 2324 - /* Unsigned PD offloading is only supported on CDSP */ 2321 + /* Unsigned PD offloading is only supported on CDSP and GDSP */ 2325 2322 data->unsigned_support = false; 2326 2323 err = fastrpc_device_register(rdev, data, secure_dsp, domain); 2327 2324 if (err) 2328 2325 goto err_free_data; 2329 2326 break; 2330 2327 case CDSP_DOMAIN_ID: 2328 + case GDSP_DOMAIN_ID: 2331 2329 data->unsigned_support = true; 2332 2330 /* Create both device nodes so that we can allow both Signed and Unsigned PD */ 2333 2331 err = fastrpc_device_register(rdev, data, true, domain);