Переглянути джерело

synx: support ICP core

This change adds necessary functionality to support ICP core.

Change-Id: I55793f6508ae5d7180b0f50d477e366842199148
Signed-off-by: Pravin Kumar Ravi <[email protected]>
Pravin Kumar Ravi 2 роки тому
батько
коміт
eeb75f9c23
5 змінених файлів з 14 додано та 5 видалено
  1. 2 1
      msm/synx/synx.c
  2. 3 1
      msm/synx/synx_api.h
  3. 3 1
      msm/synx/synx_global.c
  4. 3 1
      msm/synx/synx_global.h
  5. 3 1
      msm/synx/synx_util.c

+ 2 - 1
msm/synx/synx.c

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
  * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
- * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #include <linux/atomic.h>
@@ -2455,6 +2455,7 @@ int synx_recover(enum synx_client_id id)
 	switch (core_id) {
 	case SYNX_CORE_EVA:
 	case SYNX_CORE_IRIS:
+	case SYNX_CORE_ICP:
 		break;
 	default:
 		dprintk(SYNX_ERR, "recovery not supported on %u\n", id);

+ 3 - 1
msm/synx/synx_api.h

@@ -1,7 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /*
  * Copyright (c) 2019, 2021, The Linux Foundation. All rights reserved.
- * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #ifndef __SYNX_API_H__
@@ -166,6 +166,7 @@ struct synx_queue_desc {
  * @SYNX_CLIENT_VID_CTX0 : Video Client 0
  * @SYNX_CLIENT_NSP_CTX0 : NSP Client 0
  * @SYNX_CLIENT_IFE_CTX0 : IFE Client 0
+ * @SYNX_CLIENT_ICP_CTX0 : ICP Client 0
  */
 enum synx_client_id {
 	SYNX_CLIENT_NATIVE = 0,
@@ -180,6 +181,7 @@ enum synx_client_id {
 	SYNX_CLIENT_VID_CTX0,
 	SYNX_CLIENT_NSP_CTX0,
 	SYNX_CLIENT_IFE_CTX0,
+	SYNX_CLIENT_ICP_CTX0,
 	SYNX_CLIENT_MAX,
 };
 

+ 3 - 1
msm/synx/synx_global.c

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
- * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #include <linux/hwspinlock.h>
@@ -151,6 +151,8 @@ u32 synx_global_map_core_id(enum synx_core_id id)
 		host_id = IPCMEM_VPU; break;
 	case SYNX_CORE_EVA:
 		host_id = IPCMEM_CVP; break;
+	case SYNX_CORE_ICP:
+		host_id = IPCMEM_CAM; break;
 	default:
 		host_id = IPCMEM_NUM_HOSTS;
 		dprintk(SYNX_ERR, "invalid core id\n");

+ 3 - 1
msm/synx/synx_global.h

@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /*
- * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #ifndef __SYNX_SHARED_MEM_H__
@@ -18,12 +18,14 @@
  * SYNX_CORE_NSP  : NSP core
  * SYNX_CORE_EVA  : EVA core
  * SYNX_CORE_IRIS : IRIS core
+ * SYNX_CORE_ICP  : ICP core
  */
 enum synx_core_id {
 	SYNX_CORE_APSS = 0,
 	SYNX_CORE_NSP,
 	SYNX_CORE_EVA,
 	SYNX_CORE_IRIS,
+	SYNX_CORE_ICP,
 	SYNX_CORE_MAX,
 };
 

+ 3 - 1
msm/synx/synx_util.c

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
  * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
- * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #include <linux/slab.h>
@@ -1511,6 +1511,8 @@ u32 synx_util_map_client_id_to_core(
 	switch (id) {
 	case SYNX_CLIENT_NATIVE:
 		core_id = SYNX_CORE_APSS; break;
+	case SYNX_CLIENT_ICP_CTX0:
+		core_id = SYNX_CORE_ICP; break;
 	case SYNX_CLIENT_EVA_CTX0:
 		core_id = SYNX_CORE_EVA; break;
 	case SYNX_CLIENT_VID_CTX0: