73 lines
1.7 KiB
C
73 lines
1.7 KiB
C
// SPDX-License-Identifier: MIT
|
|
/*
|
|
* Copyright © 2023-2024 Intel Corporation
|
|
*/
|
|
|
|
#include <linux/debugfs.h>
|
|
|
|
#include <drm/drm_debugfs.h>
|
|
|
|
#include "xe_gt_debugfs.h"
|
|
#include "xe_gt_sriov_vf.h"
|
|
#include "xe_gt_sriov_vf_debugfs.h"
|
|
#include "xe_gt_types.h"
|
|
#include "xe_sriov.h"
|
|
|
|
/*
|
|
* /sys/kernel/debug/dri/0/
|
|
* ├── gt0
|
|
* │ ├── vf
|
|
* │ │ ├── self_config
|
|
* │ │ ├── abi_versions
|
|
* │ │ ├── runtime_regs
|
|
*/
|
|
|
|
static const struct drm_info_list vf_info[] = {
|
|
{
|
|
"self_config",
|
|
.show = xe_gt_debugfs_simple_show,
|
|
.data = xe_gt_sriov_vf_print_config,
|
|
},
|
|
{
|
|
"abi_versions",
|
|
.show = xe_gt_debugfs_simple_show,
|
|
.data = xe_gt_sriov_vf_print_version,
|
|
},
|
|
#if defined(CONFIG_DRM_XE_DEBUG) || defined(CONFIG_DRM_XE_DEBUG_SRIOV)
|
|
{
|
|
"runtime_regs",
|
|
.show = xe_gt_debugfs_simple_show,
|
|
.data = xe_gt_sriov_vf_print_runtime,
|
|
},
|
|
#endif
|
|
};
|
|
|
|
/**
|
|
* xe_gt_sriov_vf_debugfs_register - Register SR-IOV VF specific entries in GT debugfs.
|
|
* @gt: the &xe_gt to register
|
|
* @root: the &dentry that represents the GT directory
|
|
*
|
|
* Register SR-IOV VF entries that are GT related and must be shown under GT debugfs.
|
|
*/
|
|
void xe_gt_sriov_vf_debugfs_register(struct xe_gt *gt, struct dentry *root)
|
|
{
|
|
struct xe_device *xe = gt_to_xe(gt);
|
|
struct drm_minor *minor = xe->drm.primary;
|
|
struct dentry *vfdentry;
|
|
|
|
xe_assert(xe, IS_SRIOV_VF(xe));
|
|
xe_assert(xe, root->d_inode->i_private == gt);
|
|
|
|
/*
|
|
* /sys/kernel/debug/dri/0/
|
|
* ├── gt0
|
|
* │ ├── vf
|
|
*/
|
|
vfdentry = debugfs_create_dir("vf", root);
|
|
if (IS_ERR(vfdentry))
|
|
return;
|
|
vfdentry->d_inode->i_private = gt;
|
|
|
|
drm_debugfs_create_files(vf_info, ARRAY_SIZE(vf_info), vfdentry, minor);
|
|
}
|