]> www.infradead.org Git - linux.git/commitdiff
misc: fastrpc: Add support for cdsp1 remoteproc
authorLing Xu <quic_lxu5@quicinc.com>
Mon, 2 Sep 2024 14:18:20 +0000 (15:18 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 3 Sep 2024 10:11:05 +0000 (12:11 +0200)
The fastrpc supports 4 remoteproc. There are some products which
support cdsp1 remoteproc. Add changes to support cdsp1 remoteproc.

Signed-off-by: Ling Xu <quic_lxu5@quicinc.com>
[Bartosz: ported to mainline]
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20240902141821.70656-3-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/fastrpc.c

index 339d126414d4bf842d08c593e15bd6a3954bbf38..04a3422aa984d330bf480dfbca01558db6d21d0f 100644 (file)
@@ -27,7 +27,8 @@
 #define MDSP_DOMAIN_ID (1)
 #define SDSP_DOMAIN_ID (2)
 #define CDSP_DOMAIN_ID (3)
-#define FASTRPC_DEV_MAX                4 /* adsp, mdsp, slpi, cdsp*/
+#define CDSP1_DOMAIN_ID (4)
+#define FASTRPC_DEV_MAX                5 /* adsp, mdsp, slpi, cdsp, cdsp1 */
 #define FASTRPC_MAX_SESSIONS   14
 #define FASTRPC_MAX_VMIDS      16
 #define FASTRPC_ALIGN          128
 #define miscdev_to_fdevice(d) container_of(d, struct fastrpc_device, miscdev)
 
 static const char *domains[FASTRPC_DEV_MAX] = { "adsp", "mdsp",
-                                               "sdsp", "cdsp"};
+                                               "sdsp", "cdsp", "cdsp1" };
 struct fastrpc_phy_page {
        u64 addr;               /* physical address */
        u64 size;               /* size of contiguous region */
@@ -2270,7 +2271,7 @@ static int fastrpc_rpmsg_probe(struct rpmsg_device *rpdev)
                return err;
        }
 
-       for (i = 0; i <= CDSP_DOMAIN_ID; i++) {
+       for (i = 0; i < FASTRPC_DEV_MAX; i++) {
                if (!strcmp(domains[i], domain)) {
                        domain_id = i;
                        break;
@@ -2328,13 +2329,14 @@ static int fastrpc_rpmsg_probe(struct rpmsg_device *rpdev)
        case ADSP_DOMAIN_ID:
        case MDSP_DOMAIN_ID:
        case SDSP_DOMAIN_ID:
-               /* Unsigned PD offloading is only supported on CDSP*/
+               /* Unsigned PD offloading is only supported on CDSP and CDSP1 */
                data->unsigned_support = false;
                err = fastrpc_device_register(rdev, data, secure_dsp, domains[domain_id]);
                if (err)
                        goto fdev_error;
                break;
        case CDSP_DOMAIN_ID:
+       case CDSP1_DOMAIN_ID:
                data->unsigned_support = true;
                /* Create both device nodes so that we can allow both Signed and Unsigned PD */
                err = fastrpc_device_register(rdev, data, true, domains[domain_id]);