162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * AMD IOMMU driver
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (C) 2018 Advanced Micro Devices, Inc.
662306a36Sopenharmony_ci *
762306a36Sopenharmony_ci * Author: Gary R Hook <gary.hook@amd.com>
862306a36Sopenharmony_ci */
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#include <linux/debugfs.h>
1162306a36Sopenharmony_ci#include <linux/pci.h>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#include "amd_iommu.h"
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_cistatic struct dentry *amd_iommu_debugfs;
1662306a36Sopenharmony_cistatic DEFINE_MUTEX(amd_iommu_debugfs_lock);
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci#define	MAX_NAME_LEN	20
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_civoid amd_iommu_debugfs_setup(struct amd_iommu *iommu)
2162306a36Sopenharmony_ci{
2262306a36Sopenharmony_ci	char name[MAX_NAME_LEN + 1];
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci	mutex_lock(&amd_iommu_debugfs_lock);
2562306a36Sopenharmony_ci	if (!amd_iommu_debugfs)
2662306a36Sopenharmony_ci		amd_iommu_debugfs = debugfs_create_dir("amd",
2762306a36Sopenharmony_ci						       iommu_debugfs_dir);
2862306a36Sopenharmony_ci	mutex_unlock(&amd_iommu_debugfs_lock);
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci	snprintf(name, MAX_NAME_LEN, "iommu%02d", iommu->index);
3162306a36Sopenharmony_ci	iommu->debugfs = debugfs_create_dir(name, amd_iommu_debugfs);
3262306a36Sopenharmony_ci}
33