synx: support ICP core

This change adds necessary functionality to support ICP core.

Change-Id: I55793f6508ae5d7180b0f50d477e366842199148
Signed-off-by: Pravin Kumar Ravi <quic_pravinku@quicinc.com>
This commit is contained in:
Pravin Kumar Ravi
2022-11-14 10:29:06 -08:00
rodzic fd9e62c31f
commit eeb75f9c23
5 zmienionych plików z 14 dodań i 5 usunięć

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only // 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> #include <linux/hwspinlock.h>
@@ -151,6 +151,8 @@ u32 synx_global_map_core_id(enum synx_core_id id)
host_id = IPCMEM_VPU; break; host_id = IPCMEM_VPU; break;
case SYNX_CORE_EVA: case SYNX_CORE_EVA:
host_id = IPCMEM_CVP; break; host_id = IPCMEM_CVP; break;
case SYNX_CORE_ICP:
host_id = IPCMEM_CAM; break;
default: default:
host_id = IPCMEM_NUM_HOSTS; host_id = IPCMEM_NUM_HOSTS;
dprintk(SYNX_ERR, "invalid core id\n"); dprintk(SYNX_ERR, "invalid core id\n");

Wyświetl plik

@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-only */ /* 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__ #ifndef __SYNX_SHARED_MEM_H__
@@ -18,12 +18,14 @@
* SYNX_CORE_NSP : NSP core * SYNX_CORE_NSP : NSP core
* SYNX_CORE_EVA : EVA core * SYNX_CORE_EVA : EVA core
* SYNX_CORE_IRIS : IRIS core * SYNX_CORE_IRIS : IRIS core
* SYNX_CORE_ICP : ICP core
*/ */
enum synx_core_id { enum synx_core_id {
SYNX_CORE_APSS = 0, SYNX_CORE_APSS = 0,
SYNX_CORE_NSP, SYNX_CORE_NSP,
SYNX_CORE_EVA, SYNX_CORE_EVA,
SYNX_CORE_IRIS, SYNX_CORE_IRIS,
SYNX_CORE_ICP,
SYNX_CORE_MAX, SYNX_CORE_MAX,
}; };

Wyświetl plik

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