Linux Audio

Check our new training course

Loading...
Note: File does not exist in v5.4.
 1// SPDX-License-Identifier: MIT
 2/*
 3 * Copyright © 2023-2024 Intel Corporation
 4 */
 5
 6#include <linux/debugfs.h>
 7
 8#include <drm/drm_debugfs.h>
 9
10#include "xe_gt_debugfs.h"
11#include "xe_gt_sriov_vf.h"
12#include "xe_gt_sriov_vf_debugfs.h"
13#include "xe_gt_types.h"
14#include "xe_sriov.h"
15
16/*
17 *      /sys/kernel/debug/dri/0/
18 *      ├── gt0
19 *      │   ├── vf
20 *      │   │   ├── self_config
21 *      │   │   ├── abi_versions
22 *      │   │   ├── runtime_regs
23 */
24
25static const struct drm_info_list vf_info[] = {
26	{
27		"self_config",
28		.show = xe_gt_debugfs_simple_show,
29		.data = xe_gt_sriov_vf_print_config,
30	},
31	{
32		"abi_versions",
33		.show = xe_gt_debugfs_simple_show,
34		.data = xe_gt_sriov_vf_print_version,
35	},
36#if IS_ENABLED(CONFIG_DRM_XE_DEBUG) || IS_ENABLED(CONFIG_DRM_XE_DEBUG_SRIOV)
37	{
38		"runtime_regs",
39		.show = xe_gt_debugfs_simple_show,
40		.data = xe_gt_sriov_vf_print_runtime,
41	},
42#endif
43};
44
45/**
46 * xe_gt_sriov_vf_debugfs_register - Register SR-IOV VF specific entries in GT debugfs.
47 * @gt: the &xe_gt to register
48 * @root: the &dentry that represents the GT directory
49 *
50 * Register SR-IOV VF entries that are GT related and must be shown under GT debugfs.
51 */
52void xe_gt_sriov_vf_debugfs_register(struct xe_gt *gt, struct dentry *root)
53{
54	struct xe_device *xe = gt_to_xe(gt);
55	struct drm_minor *minor = xe->drm.primary;
56	struct dentry *vfdentry;
57
58	xe_assert(xe, IS_SRIOV_VF(xe));
59	xe_assert(xe, root->d_inode->i_private == gt);
60
61	/*
62	 *      /sys/kernel/debug/dri/0/
63	 *      ├── gt0
64	 *      │   ├── vf
65	 */
66	vfdentry = debugfs_create_dir("vf", root);
67	if (IS_ERR(vfdentry))
68		return;
69	vfdentry->d_inode->i_private = gt;
70
71	drm_debugfs_create_files(vf_info, ARRAY_SIZE(vf_info), vfdentry, minor);
72}