+++ /dev/null
-From f63255cc0d301897eab67847d095d3bdf79fb091 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 14 Nov 2023 20:34:48 +0800
-Subject: RDMA/hns: Add debugfs to hns RoCE
-
-From: Junxian Huang <huangjunxian6@hisilicon.com>
-
-[ Upstream commit ca7ad04cd5d2f8070cd34c2c428cea36de516afc ]
-
-Add debugfs to hns RoCE. This patch only adds an empty directory
-"hns_roce" to debugs root directory.
-
-Signed-off-by: Junxian Huang <huangjunxian6@hisilicon.com>
-Link: https://lore.kernel.org/r/20231114123449.1106162-3-huangjunxian6@hisilicon.com
-Signed-off-by: Leon Romanovsky <leon@kernel.org>
-Stable-dep-of: 8977b561216c ("RDMA/hns: Clean up the legacy CONFIG_INFINIBAND_HNS")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/infiniband/hw/hns/Makefile | 3 +-
- drivers/infiniband/hw/hns/hns_roce_debugfs.c | 63 ++++++++++++++++++++
- drivers/infiniband/hw/hns/hns_roce_debugfs.h | 27 +++++++++
- drivers/infiniband/hw/hns/hns_roce_device.h | 2 +
- drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 2 +
- drivers/infiniband/hw/hns/hns_roce_main.c | 3 +
- 6 files changed, 99 insertions(+), 1 deletion(-)
- create mode 100644 drivers/infiniband/hw/hns/hns_roce_debugfs.c
- create mode 100644 drivers/infiniband/hw/hns/hns_roce_debugfs.h
-
-diff --git a/drivers/infiniband/hw/hns/Makefile b/drivers/infiniband/hw/hns/Makefile
-index a7d259238305b..be1e1cdbcfa8a 100644
---- a/drivers/infiniband/hw/hns/Makefile
-+++ b/drivers/infiniband/hw/hns/Makefile
-@@ -7,7 +7,8 @@ ccflags-y := -I $(srctree)/drivers/net/ethernet/hisilicon/hns3
-
- hns-roce-objs := hns_roce_main.o hns_roce_cmd.o hns_roce_pd.o \
- hns_roce_ah.o hns_roce_hem.o hns_roce_mr.o hns_roce_qp.o \
-- hns_roce_cq.o hns_roce_alloc.o hns_roce_db.o hns_roce_srq.o hns_roce_restrack.o
-+ hns_roce_cq.o hns_roce_alloc.o hns_roce_db.o hns_roce_srq.o hns_roce_restrack.o \
-+ hns_roce_debugfs.o
-
- ifdef CONFIG_INFINIBAND_HNS_HIP08
- hns-roce-hw-v2-objs := hns_roce_hw_v2.o $(hns-roce-objs)
-diff --git a/drivers/infiniband/hw/hns/hns_roce_debugfs.c b/drivers/infiniband/hw/hns/hns_roce_debugfs.c
-new file mode 100644
-index 0000000000000..79825570cc353
---- /dev/null
-+++ b/drivers/infiniband/hw/hns/hns_roce_debugfs.c
-@@ -0,0 +1,63 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * Copyright (c) 2023 Hisilicon Limited.
-+ */
-+
-+#include <linux/debugfs.h>
-+#include <linux/device.h>
-+
-+#include "hns_roce_device.h"
-+
-+static struct dentry *hns_roce_dbgfs_root;
-+
-+static int hns_debugfs_seqfile_open(struct inode *inode, struct file *f)
-+{
-+ struct hns_debugfs_seqfile *seqfile = inode->i_private;
-+
-+ return single_open(f, seqfile->read, seqfile->data);
-+}
-+
-+static const struct file_operations hns_debugfs_seqfile_fops = {
-+ .owner = THIS_MODULE,
-+ .open = hns_debugfs_seqfile_open,
-+ .release = single_release,
-+ .read = seq_read,
-+ .llseek = seq_lseek
-+};
-+
-+static void init_debugfs_seqfile(struct hns_debugfs_seqfile *seq,
-+ const char *name, struct dentry *parent,
-+ int (*read_fn)(struct seq_file *, void *),
-+ void *data)
-+{
-+ debugfs_create_file(name, 0400, parent, seq, &hns_debugfs_seqfile_fops);
-+
-+ seq->read = read_fn;
-+ seq->data = data;
-+}
-+
-+/* debugfs for device */
-+void hns_roce_register_debugfs(struct hns_roce_dev *hr_dev)
-+{
-+ struct hns_roce_dev_debugfs *dbgfs = &hr_dev->dbgfs;
-+
-+ dbgfs->root = debugfs_create_dir(dev_name(&hr_dev->ib_dev.dev),
-+ hns_roce_dbgfs_root);
-+}
-+
-+void hns_roce_unregister_debugfs(struct hns_roce_dev *hr_dev)
-+{
-+ debugfs_remove_recursive(hr_dev->dbgfs.root);
-+}
-+
-+/* debugfs for hns module */
-+void hns_roce_init_debugfs(void)
-+{
-+ hns_roce_dbgfs_root = debugfs_create_dir("hns_roce", NULL);
-+}
-+
-+void hns_roce_cleanup_debugfs(void)
-+{
-+ debugfs_remove_recursive(hns_roce_dbgfs_root);
-+ hns_roce_dbgfs_root = NULL;
-+}
-diff --git a/drivers/infiniband/hw/hns/hns_roce_debugfs.h b/drivers/infiniband/hw/hns/hns_roce_debugfs.h
-new file mode 100644
-index 0000000000000..ece71fe6730c0
---- /dev/null
-+++ b/drivers/infiniband/hw/hns/hns_roce_debugfs.h
-@@ -0,0 +1,27 @@
-+/* SPDX-License-Identifier: GPL-2.0+ */
-+/*
-+ * Copyright (c) 2023 Hisilicon Limited.
-+ */
-+
-+#ifndef __HNS_ROCE_DEBUGFS_H
-+#define __HNS_ROCE_DEBUGFS_H
-+
-+/* debugfs seqfile */
-+struct hns_debugfs_seqfile {
-+ int (*read)(struct seq_file *seq, void *data);
-+ void *data;
-+};
-+
-+/* Debugfs for device */
-+struct hns_roce_dev_debugfs {
-+ struct dentry *root;
-+};
-+
-+struct hns_roce_dev;
-+
-+void hns_roce_init_debugfs(void);
-+void hns_roce_cleanup_debugfs(void);
-+void hns_roce_register_debugfs(struct hns_roce_dev *hr_dev);
-+void hns_roce_unregister_debugfs(struct hns_roce_dev *hr_dev);
-+
-+#endif
-diff --git a/drivers/infiniband/hw/hns/hns_roce_device.h b/drivers/infiniband/hw/hns/hns_roce_device.h
-index 03b6546f63cdc..b064088ed3272 100644
---- a/drivers/infiniband/hw/hns/hns_roce_device.h
-+++ b/drivers/infiniband/hw/hns/hns_roce_device.h
-@@ -35,6 +35,7 @@
-
- #include <rdma/ib_verbs.h>
- #include <rdma/hns-abi.h>
-+#include "hns_roce_debugfs.h"
-
- #define PCI_REVISION_ID_HIP08 0x21
- #define PCI_REVISION_ID_HIP09 0x30
-@@ -981,6 +982,7 @@ struct hns_roce_dev {
- u32 is_vf;
- u32 cong_algo_tmpl_id;
- u64 dwqe_page;
-+ struct hns_roce_dev_debugfs dbgfs;
- };
-
- static inline struct hns_roce_dev *to_hr_dev(struct ib_device *ib_dev)
-diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
-index aded0a7f42838..7005aafb10ffb 100644
---- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
-+++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
-@@ -6967,12 +6967,14 @@ static struct hnae3_client hns_roce_hw_v2_client = {
-
- static int __init hns_roce_hw_v2_init(void)
- {
-+ hns_roce_init_debugfs();
- return hnae3_register_client(&hns_roce_hw_v2_client);
- }
-
- static void __exit hns_roce_hw_v2_exit(void)
- {
- hnae3_unregister_client(&hns_roce_hw_v2_client);
-+ hns_roce_cleanup_debugfs();
- }
-
- module_init(hns_roce_hw_v2_init);
-diff --git a/drivers/infiniband/hw/hns/hns_roce_main.c b/drivers/infiniband/hw/hns/hns_roce_main.c
-index c8c49110a3378..8af0dfe06a9ea 100644
---- a/drivers/infiniband/hw/hns/hns_roce_main.c
-+++ b/drivers/infiniband/hw/hns/hns_roce_main.c
-@@ -1078,6 +1078,8 @@ int hns_roce_init(struct hns_roce_dev *hr_dev)
- if (ret)
- goto error_failed_register_device;
-
-+ hns_roce_register_debugfs(hr_dev);
-+
- return 0;
-
- error_failed_register_device:
-@@ -1107,6 +1109,7 @@ int hns_roce_init(struct hns_roce_dev *hr_dev)
-
- void hns_roce_exit(struct hns_roce_dev *hr_dev)
- {
-+ hns_roce_unregister_debugfs(hr_dev);
- hns_roce_unregister_device(hr_dev);
-
- if (hr_dev->hw->hw_exit)
---
-2.39.5
-
+++ /dev/null
-From ba74f34e4246c963f9ca22ec2f64b7d3340f0e93 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 6 Jan 2025 19:12:11 +0800
-Subject: RDMA/hns: Clean up the legacy CONFIG_INFINIBAND_HNS
-
-From: Junxian Huang <huangjunxian6@hisilicon.com>
-
-[ Upstream commit 8977b561216c7e693d61c6442657e33f134bfeb5 ]
-
-hns driver used to support hip06 and hip08 devices with
-CONFIG_INFINIBAND_HNS_HIP06 and CONFIG_INFINIBAND_HNS_HIP08
-respectively, which both depended on CONFIG_INFINIBAND_HNS.
-
-But we no longer provide support for hip06 and only support
-hip08 and higher since the commit in fixes line, so there is
-no need to have CONFIG_INFINIBAND_HNS any more. Remove it and
-only keep CONFIG_INFINIBAND_HNS_HIP08.
-
-Fixes: 38d220882426 ("RDMA/hns: Remove support for HIP06")
-Signed-off-by: Junxian Huang <huangjunxian6@hisilicon.com>
-Link: https://patch.msgid.link/20250106111211.3945051-1-huangjunxian6@hisilicon.com
-Signed-off-by: Leon Romanovsky <leon@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/infiniband/hw/Makefile | 2 +-
- drivers/infiniband/hw/hns/Kconfig | 20 +++++---------------
- drivers/infiniband/hw/hns/Makefile | 9 +++------
- 3 files changed, 9 insertions(+), 22 deletions(-)
-
-diff --git a/drivers/infiniband/hw/Makefile b/drivers/infiniband/hw/Makefile
-index 1211f4317a9f4..aba96ca9bce5d 100644
---- a/drivers/infiniband/hw/Makefile
-+++ b/drivers/infiniband/hw/Makefile
-@@ -11,7 +11,7 @@ obj-$(CONFIG_INFINIBAND_OCRDMA) += ocrdma/
- obj-$(CONFIG_INFINIBAND_VMWARE_PVRDMA) += vmw_pvrdma/
- obj-$(CONFIG_INFINIBAND_USNIC) += usnic/
- obj-$(CONFIG_INFINIBAND_HFI1) += hfi1/
--obj-$(CONFIG_INFINIBAND_HNS) += hns/
-+obj-$(CONFIG_INFINIBAND_HNS_HIP08) += hns/
- obj-$(CONFIG_INFINIBAND_QEDR) += qedr/
- obj-$(CONFIG_INFINIBAND_BNXT_RE) += bnxt_re/
- obj-$(CONFIG_INFINIBAND_ERDMA) += erdma/
-diff --git a/drivers/infiniband/hw/hns/Kconfig b/drivers/infiniband/hw/hns/Kconfig
-index ab3fbba70789c..44cdb706fe276 100644
---- a/drivers/infiniband/hw/hns/Kconfig
-+++ b/drivers/infiniband/hw/hns/Kconfig
-@@ -1,21 +1,11 @@
- # SPDX-License-Identifier: GPL-2.0-only
--config INFINIBAND_HNS
-- tristate "HNS RoCE Driver"
-- depends on NET_VENDOR_HISILICON
-- depends on ARM64 || (COMPILE_TEST && 64BIT)
-- depends on (HNS_DSAF && HNS_ENET) || HNS3
-- help
-- This is a RoCE/RDMA driver for the Hisilicon RoCE engine.
--
-- To compile HIP08 driver as module, choose M here.
--
- config INFINIBAND_HNS_HIP08
-- bool "Hisilicon Hip08 Family RoCE support"
-- depends on INFINIBAND_HNS && PCI && HNS3
-- depends on INFINIBAND_HNS=m || HNS3=y
-+ tristate "Hisilicon Hip08 Family RoCE support"
-+ depends on ARM64 || (COMPILE_TEST && 64BIT)
-+ depends on PCI && HNS3
- help
- RoCE driver support for Hisilicon RoCE engine in Hisilicon Hip08 SoC.
- The RoCE engine is a PCI device.
-
-- To compile this driver, choose Y here: if INFINIBAND_HNS is m, this
-- module will be called hns-roce-hw-v2.
-+ To compile this driver, choose M here. This module will be called
-+ hns-roce-hw-v2.
-diff --git a/drivers/infiniband/hw/hns/Makefile b/drivers/infiniband/hw/hns/Makefile
-index be1e1cdbcfa8a..7917af8e6380e 100644
---- a/drivers/infiniband/hw/hns/Makefile
-+++ b/drivers/infiniband/hw/hns/Makefile
-@@ -5,12 +5,9 @@
-
- ccflags-y := -I $(srctree)/drivers/net/ethernet/hisilicon/hns3
-
--hns-roce-objs := hns_roce_main.o hns_roce_cmd.o hns_roce_pd.o \
-+hns-roce-hw-v2-objs := hns_roce_main.o hns_roce_cmd.o hns_roce_pd.o \
- hns_roce_ah.o hns_roce_hem.o hns_roce_mr.o hns_roce_qp.o \
- hns_roce_cq.o hns_roce_alloc.o hns_roce_db.o hns_roce_srq.o hns_roce_restrack.o \
-- hns_roce_debugfs.o
-+ hns_roce_debugfs.o hns_roce_hw_v2.o
-
--ifdef CONFIG_INFINIBAND_HNS_HIP08
--hns-roce-hw-v2-objs := hns_roce_hw_v2.o $(hns-roce-objs)
--obj-$(CONFIG_INFINIBAND_HNS) += hns-roce-hw-v2.o
--endif
-+obj-$(CONFIG_INFINIBAND_HNS_HIP08) += hns-roce-hw-v2.o
---
-2.39.5
-