aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNavdeep Parhar <np@FreeBSD.org>2021-09-07 23:28:11 +0000
committerNavdeep Parhar <np@FreeBSD.org>2021-09-07 23:28:11 +0000
commit92de737996660b70376a8b72b80037f89d876056 (patch)
treeb94c242482438190bf0af8d72dd05c344cf8d7c0
parent83a611e09238ead5a765c0ea2c02699fe8175756 (diff)
downloadsrc-92de737996660b70376a8b72b80037f89d876056.tar.gz
src-92de737996660b70376a8b72b80037f89d876056.zip
cxgbe(4): Fix the decode and display of the DBVFIFO region in meminfo.
MFC after: 1 week Sponsored by: Chelsio Communications
-rw-r--r--sys/dev/cxgbe/t4_main.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/sys/dev/cxgbe/t4_main.c b/sys/dev/cxgbe/t4_main.c
index eabe52387227..af24977ec29b 100644
--- a/sys/dev/cxgbe/t4_main.c
+++ b/sys/dev/cxgbe/t4_main.c
@@ -9728,23 +9728,24 @@ sysctl_meminfo(SYSCTL_HANDLER_ARGS)
#undef ulp_region
md->base = 0;
- md->idx = nitems(region);
- if (!is_t4(sc)) {
+ if (is_t4(sc))
+ md->idx = nitems(region);
+ else {
uint32_t size = 0;
uint32_t sge_ctrl = t4_read_reg(sc, A_SGE_CONTROL2);
uint32_t fifo_size = t4_read_reg(sc, A_SGE_DBVFIFO_SIZE);
if (is_t5(sc)) {
if (sge_ctrl & F_VFIFO_ENABLE)
- size = G_DBVFIFO_SIZE(fifo_size);
+ size = fifo_size << 2;
} else
- size = G_T6_DBVFIFO_SIZE(fifo_size);
+ size = G_T6_DBVFIFO_SIZE(fifo_size) << 6;
if (size) {
- md->base = G_BASEADDR(t4_read_reg(sc,
- A_SGE_DBVFIFO_BADDR));
- md->limit = md->base + (size << 2) - 1;
- }
+ md->base = t4_read_reg(sc, A_SGE_DBVFIFO_BADDR);
+ md->limit = md->base + size - 1;
+ } else
+ md->idx = nitems(region);
}
md++;