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:
@@ -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);
|
||||||
|
@@ -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,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -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");
|
||||||
|
@@ -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,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -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:
|
||||||
|
Reference in New Issue
Block a user