* Copyright (c) Huawei Technologies Co., Ltd. 2025. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef __DAVINCI_INTERFACE_H__
#define __DAVINCI_INTERFACE_H__
#include <linux/fs.h>
#define DAVINIC_MODULE_NAME_MAX 256
#define DAVINCI_INTF_DEV_NAME "davinci_manager"
#define DAVINCI_INTF_DEV_PATH "/dev/davinci_manager"
#define DAVINCI_INTF_NPU_DEV_CUST_PATH "/dev/npu_device_cust"
#define DAVINCI_INTF_DEV_PATH_NAME "/dev/"DAVINCI_INTF_DEV_NAME
#define DAVINCI_INTF_MODULE_DEVMNG "DEVMNG"
#define DAVINCI_INTF_MODULE_TSDRV "TSDRV"
#define DAVINCI_INTF_MODULE_TRS_SHR_ID "TRS_SHR_ID"
#define DAVINCI_INTF_MODULE_CDQM "CDQM"
#define DAVINCI_INTF_MODULE_URD "URD"
#define DAVINCI_INTF_IOC_MAGIC 'Z'
#define DAVINCI_INTF_IOCTL_OPEN _IO(DAVINCI_INTF_IOC_MAGIC, 0)
#define DAVINCI_INTF_IOCTL_CLOSE _IO(DAVINCI_INTF_IOC_MAGIC, 1)
#define DAVINCI_INTF_IOCTL_GET_MODULE_STATUS _IO(DAVINCI_INTF_IOC_MAGIC, 2)
#define DAVINCI_INTF_IOCTL_CMD_MAX_NR 3
struct davinci_intf_open_arg {
char module_name[DAVINIC_MODULE_NAME_MAX];
int device_id;
};
struct davinci_intf_close_arg {
char module_name[DAVINIC_MODULE_NAME_MAX];
int device_id;
};
struct davinci_intf_check_no_use_arg {
char module_name[DAVINIC_MODULE_NAME_MAX];
unsigned int status;
};
enum {
DAVINCI_STATUS_TYPE_PROCESS,
DAVINCI_STATUS_TYPE_DEVICE
};
#define DAVINCI_INTF_DEVICE_CLEAR_ALL_STATUS 0xffffffff
#define DAVINCI_INTF_DEVICE_CLEAR_STATUS (1<<31)
#define DAVINCI_INTF_DEVICE_STATUS_TS_DOWN (1<<0)
#define DAVINCI_INTF_DEVICE_STATUS_HEARTBIT_LOST (1<<1)
#define DAVINCI_INTF_DEVICE_STATUS_LINK_ABNORMAL (1<<2)
#define DAVINCI_INTF_PROCESS_CLEAR_ALL_STATUS 0xffffffff
#define DAVINCI_INTF_PROCESS_CLEAR_STATUS (1<<31)
#define DAVINCI_INTF_PROCESS_SVM_HUNG (1<<0)
#define DAVINCI_INTF_PROCESS_HDC_CONNECT_CLOSE (1<<1)
#if (defined TSDRV_UT) || (defined DMS_UT) || (defined SDK_UT)
static inline const char *davinci_intf_get_dev_path(void)
{
return DAVINCI_INTF_DEV_PATH;
}
#endif
#endif