mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 18:13:41 +02:00
drm/xe/pf: Expose basic info about VFs in debugfs
We already have function to print summary about VFs, but we missed to add debugfs attribute to make it visible. Do it now. Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com> Reviewed-by: Piotr Piórkowski <piotr.piorkowski@intel.com> Link: https://lore.kernel.org/r/20250713103625.1964-6-michal.wajdeczko@intel.com
This commit is contained in:
parent
ffab82b062
commit
d962178a88
|
|
@ -20,6 +20,7 @@
|
|||
#include "xe_pm.h"
|
||||
#include "xe_pxp_debugfs.h"
|
||||
#include "xe_sriov.h"
|
||||
#include "xe_sriov_pf.h"
|
||||
#include "xe_step.h"
|
||||
#include "xe_wa.h"
|
||||
|
||||
|
|
@ -293,4 +294,7 @@ void xe_debugfs_register(struct xe_device *xe)
|
|||
xe_pxp_debugfs_register(xe->pxp);
|
||||
|
||||
fault_create_debugfs_attr("fail_gt_reset", root, >_reset_failure);
|
||||
|
||||
if (IS_SRIOV_PF(xe))
|
||||
xe_sriov_pf_debugfs_register(xe, root);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
* Copyright © 2023-2024 Intel Corporation
|
||||
*/
|
||||
|
||||
#include <linux/debugfs.h>
|
||||
#include <drm/drm_debugfs.h>
|
||||
#include <drm/drm_managed.h>
|
||||
|
||||
#include "xe_assert.h"
|
||||
|
|
@ -102,3 +104,44 @@ void xe_sriov_pf_print_vfs_summary(struct xe_device *xe, struct drm_printer *p)
|
|||
drm_printf(p, "supported: %u\n", xe->sriov.pf.driver_max_vfs);
|
||||
drm_printf(p, "enabled: %u\n", pci_num_vf(pdev));
|
||||
}
|
||||
|
||||
static int simple_show(struct seq_file *m, void *data)
|
||||
{
|
||||
struct drm_printer p = drm_seq_file_printer(m);
|
||||
struct drm_info_node *node = m->private;
|
||||
struct dentry *parent = node->dent->d_parent;
|
||||
struct xe_device *xe = parent->d_inode->i_private;
|
||||
void (*print)(struct xe_device *, struct drm_printer *) = node->info_ent->data;
|
||||
|
||||
print(xe, &p);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct drm_info_list debugfs_list[] = {
|
||||
{ .name = "vfs", .show = simple_show, .data = xe_sriov_pf_print_vfs_summary },
|
||||
};
|
||||
|
||||
/**
|
||||
* xe_sriov_pf_debugfs_register - Register PF debugfs attributes.
|
||||
* @xe: the &xe_device
|
||||
* @root: the root &dentry
|
||||
*
|
||||
* Prepare debugfs attributes exposed by the PF.
|
||||
*/
|
||||
void xe_sriov_pf_debugfs_register(struct xe_device *xe, struct dentry *root)
|
||||
{
|
||||
struct drm_minor *minor = xe->drm.primary;
|
||||
struct dentry *parent;
|
||||
|
||||
/*
|
||||
* /sys/kernel/debug/dri/0/
|
||||
* ├── pf
|
||||
* │ ├── ...
|
||||
*/
|
||||
parent = debugfs_create_dir("pf", root);
|
||||
if (IS_ERR(parent))
|
||||
return;
|
||||
parent->d_inode->i_private = xe;
|
||||
|
||||
drm_debugfs_create_files(debugfs_list, ARRAY_SIZE(debugfs_list), parent, minor);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,12 +8,14 @@
|
|||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct dentry;
|
||||
struct drm_printer;
|
||||
struct xe_device;
|
||||
|
||||
#ifdef CONFIG_PCI_IOV
|
||||
bool xe_sriov_pf_readiness(struct xe_device *xe);
|
||||
int xe_sriov_pf_init_early(struct xe_device *xe);
|
||||
void xe_sriov_pf_debugfs_register(struct xe_device *xe, struct dentry *root);
|
||||
void xe_sriov_pf_print_vfs_summary(struct xe_device *xe, struct drm_printer *p);
|
||||
#else
|
||||
static inline bool xe_sriov_pf_readiness(struct xe_device *xe)
|
||||
|
|
@ -25,6 +27,10 @@ static inline int xe_sriov_pf_init_early(struct xe_device *xe)
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void xe_sriov_pf_debugfs_register(struct xe_device *xe, struct dentry *root)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user