mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-08-26 21:52:20 +00:00
drm/nouveau: create module debugfs root
Typically DRM drivers use the DRM debugfs root entry. However, since Nouveau is heading towards a split into a core and a DRM driver, create a module specific debugfs root directory. Subsequent patches make use of this new debugfs root in order to store GSP-RM log bufferes (optionally beyond a device driver binding). Acked-by: Timur Tabi <ttabi@nvidia.com> Signed-off-by: Danilo Krummrich <dakr@kernel.org> Link: https://patchwork.freedesktop.org/patch/msgid/20241125142639.9126-1-dakr@kernel.org
This commit is contained in:
parent
c6eabbab35
commit
97118a1816
@ -313,3 +313,19 @@ nouveau_debugfs_fini(struct nouveau_drm *drm)
|
|||||||
kfree(drm->debugfs);
|
kfree(drm->debugfs);
|
||||||
drm->debugfs = NULL;
|
drm->debugfs = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
nouveau_module_debugfs_init(void)
|
||||||
|
{
|
||||||
|
nouveau_debugfs_root = debugfs_create_dir("nouveau", NULL);
|
||||||
|
if (IS_ERR(nouveau_debugfs_root))
|
||||||
|
return PTR_ERR(nouveau_debugfs_root);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
nouveau_module_debugfs_fini(void)
|
||||||
|
{
|
||||||
|
debugfs_remove(nouveau_debugfs_root);
|
||||||
|
}
|
||||||
|
@ -21,6 +21,11 @@ nouveau_debugfs(struct drm_device *dev)
|
|||||||
extern void nouveau_drm_debugfs_init(struct drm_minor *);
|
extern void nouveau_drm_debugfs_init(struct drm_minor *);
|
||||||
extern int nouveau_debugfs_init(struct nouveau_drm *);
|
extern int nouveau_debugfs_init(struct nouveau_drm *);
|
||||||
extern void nouveau_debugfs_fini(struct nouveau_drm *);
|
extern void nouveau_debugfs_fini(struct nouveau_drm *);
|
||||||
|
|
||||||
|
extern struct dentry *nouveau_debugfs_root;
|
||||||
|
|
||||||
|
int nouveau_module_debugfs_init(void);
|
||||||
|
void nouveau_module_debugfs_fini(void);
|
||||||
#else
|
#else
|
||||||
static inline void
|
static inline void
|
||||||
nouveau_drm_debugfs_init(struct drm_minor *minor)
|
nouveau_drm_debugfs_init(struct drm_minor *minor)
|
||||||
@ -37,6 +42,17 @@ nouveau_debugfs_fini(struct nouveau_drm *drm)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
nouveau_module_debugfs_init(void)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
nouveau_module_debugfs_fini(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -113,6 +113,10 @@ static struct drm_driver driver_stub;
|
|||||||
static struct drm_driver driver_pci;
|
static struct drm_driver driver_pci;
|
||||||
static struct drm_driver driver_platform;
|
static struct drm_driver driver_platform;
|
||||||
|
|
||||||
|
#ifdef CONFIG_DEBUG_FS
|
||||||
|
struct dentry *nouveau_debugfs_root;
|
||||||
|
#endif
|
||||||
|
|
||||||
static u64
|
static u64
|
||||||
nouveau_pci_name(struct pci_dev *pdev)
|
nouveau_pci_name(struct pci_dev *pdev)
|
||||||
{
|
{
|
||||||
@ -1423,6 +1427,8 @@ nouveau_platform_device_create(const struct nvkm_device_tegra_func *func,
|
|||||||
static int __init
|
static int __init
|
||||||
nouveau_drm_init(void)
|
nouveau_drm_init(void)
|
||||||
{
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
driver_pci = driver_stub;
|
driver_pci = driver_stub;
|
||||||
driver_platform = driver_stub;
|
driver_platform = driver_stub;
|
||||||
|
|
||||||
@ -1436,6 +1442,10 @@ nouveau_drm_init(void)
|
|||||||
if (!nouveau_modeset)
|
if (!nouveau_modeset)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
ret = nouveau_module_debugfs_init();
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
#ifdef CONFIG_NOUVEAU_PLATFORM_DRIVER
|
#ifdef CONFIG_NOUVEAU_PLATFORM_DRIVER
|
||||||
platform_driver_register(&nouveau_platform_driver);
|
platform_driver_register(&nouveau_platform_driver);
|
||||||
#endif
|
#endif
|
||||||
@ -1444,10 +1454,14 @@ nouveau_drm_init(void)
|
|||||||
nouveau_backlight_ctor();
|
nouveau_backlight_ctor();
|
||||||
|
|
||||||
#ifdef CONFIG_PCI
|
#ifdef CONFIG_PCI
|
||||||
return pci_register_driver(&nouveau_drm_pci_driver);
|
ret = pci_register_driver(&nouveau_drm_pci_driver);
|
||||||
#else
|
if (ret) {
|
||||||
return 0;
|
nouveau_module_debugfs_fini();
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __exit
|
static void __exit
|
||||||
@ -1467,6 +1481,8 @@ nouveau_drm_exit(void)
|
|||||||
#endif
|
#endif
|
||||||
if (IS_ENABLED(CONFIG_DRM_NOUVEAU_SVM))
|
if (IS_ENABLED(CONFIG_DRM_NOUVEAU_SVM))
|
||||||
mmu_notifier_synchronize();
|
mmu_notifier_synchronize();
|
||||||
|
|
||||||
|
nouveau_module_debugfs_fini();
|
||||||
}
|
}
|
||||||
|
|
||||||
module_init(nouveau_drm_init);
|
module_init(nouveau_drm_init);
|
||||||
|
Loading…
Reference in New Issue
Block a user