summaryrefslogtreecommitdiffstats
path: root/drivers/dma/idxd/registers.h
diff options
context:
space:
mode:
authorDave Jiang <dave.jiang@intel.com>2020-10-30 08:49:06 -0700
committerVinod Koul <vkoul@kernel.org>2020-11-09 17:17:46 +0530
commit5a71270197f39ff3e526cf130bc5d6e84db8f2d7 (patch)
tree199b53ce5a48e8638095a9bfafedbe752b31b900 /drivers/dma/idxd/registers.h
parent4749f51ddd8aee5c7aa11e6593a54f96374a77ad (diff)
downloadlinux-stable-5a71270197f39ff3e526cf130bc5d6e84db8f2d7.tar.gz
linux-stable-5a71270197f39ff3e526cf130bc5d6e84db8f2d7.tar.bz2
linux-stable-5a71270197f39ff3e526cf130bc5d6e84db8f2d7.zip
dmaengine: idxd: Update calculation of group offset to be more readable
Create helper macros to make group offset calculation more readable. Signed-off-by: Dave Jiang <dave.jiang@intel.com> Link: https://lore.kernel.org/r/160407294683.839093.10740868559754142070.stgit@djiang5-desk3.ch.intel.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/dma/idxd/registers.h')
-rw-r--r--drivers/dma/idxd/registers.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/dma/idxd/registers.h b/drivers/dma/idxd/registers.h
index 1041c2779f9b..6f2f736097e5 100644
--- a/drivers/dma/idxd/registers.h
+++ b/drivers/dma/idxd/registers.h
@@ -356,4 +356,22 @@ union wqcfg {
#define WQCFG_STRIDES(_idxd_dev) ((_idxd_dev)->wqcfg_size / sizeof(u32))
+#define GRPCFG_SIZE 64
+#define GRPWQCFG_STRIDES 4
+
+/*
+ * This macro calculates the offset into the GRPCFG register
+ * idxd - struct idxd *
+ * n - wq id
+ * ofs - the index of the 32b dword for the config register
+ *
+ * The WQCFG register block is divided into groups per each wq. The n index
+ * allows us to move to the register group that's for that particular wq.
+ * Each register is 32bits. The ofs gives us the number of register to access.
+ */
+#define GRPWQCFG_OFFSET(idxd_dev, n, ofs) ((idxd_dev)->grpcfg_offset +\
+ (n) * GRPCFG_SIZE + sizeof(u64) * (ofs))
+#define GRPENGCFG_OFFSET(idxd_dev, n) ((idxd_dev)->grpcfg_offset + (n) * GRPCFG_SIZE + 32)
+#define GRPFLGCFG_OFFSET(idxd_dev, n) ((idxd_dev)->grpcfg_offset + (n) * GRPCFG_SIZE + 40)
+
#endif