73 lines · c
1// SPDX-License-Identifier: MIT2/*3 * Copyright © 2023-2024 Intel Corporation4 */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 * ├── gt019 * │ ├── vf20 * │ │ ├── self_config21 * │ │ ├── abi_versions22 * │ │ ├── runtime_regs23 */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 defined(CONFIG_DRM_XE_DEBUG) || defined(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#endif43};44 45/**46 * xe_gt_sriov_vf_debugfs_register - Register SR-IOV VF specific entries in GT debugfs.47 * @gt: the &xe_gt to register48 * @root: the &dentry that represents the GT directory49 *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 * ├── gt064 * │ ├── vf65 */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}73