Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/qat/qat_common/adf_freebsd_transport_debug.c
Show All 14 Lines | |||||
#include <sys/sbuf.h> | #include <sys/sbuf.h> | ||||
#include <sys/sysctl.h> | #include <sys/sysctl.h> | ||||
#include <sys/systm.h> | #include <sys/systm.h> | ||||
static int adf_ring_show(SYSCTL_HANDLER_ARGS) | static int adf_ring_show(SYSCTL_HANDLER_ARGS) | ||||
{ | { | ||||
struct adf_etr_ring_data *ring = arg1; | struct adf_etr_ring_data *ring = arg1; | ||||
struct adf_etr_bank_data *bank = ring->bank; | struct adf_etr_bank_data *bank = ring->bank; | ||||
struct adf_hw_csr_ops *csr_ops = GET_CSR_OPS(bank->accel_dev); | |||||
struct resource *csr = ring->bank->csr_addr; | struct resource *csr = ring->bank->csr_addr; | ||||
struct sbuf sb; | struct sbuf sb; | ||||
int error, word; | int error, word; | ||||
uint32_t *wp, *end; | uint32_t *wp, *end; | ||||
sbuf_new_for_sysctl(&sb, NULL, 128, req); | sbuf_new_for_sysctl(&sb, NULL, 128, req); | ||||
{ | { | ||||
int head, tail, empty; | int head, tail, empty; | ||||
head = READ_CSR_RING_HEAD(csr, | head = csr_ops->read_csr_ring_head(csr, | ||||
bank->bank_number, | bank->bank_number, | ||||
ring->ring_number); | ring->ring_number); | ||||
tail = READ_CSR_RING_TAIL(csr, | tail = csr_ops->read_csr_ring_tail(csr, | ||||
bank->bank_number, | bank->bank_number, | ||||
ring->ring_number); | ring->ring_number); | ||||
empty = READ_CSR_E_STAT(csr, bank->bank_number); | empty = csr_ops->read_csr_e_stat(csr, bank->bank_number); | ||||
sbuf_cat(&sb, "\n------- Ring configuration -------\n"); | sbuf_cat(&sb, "\n------- Ring configuration -------\n"); | ||||
sbuf_printf(&sb, | sbuf_printf(&sb, | ||||
"ring name: %s\n", | "ring name: %s\n", | ||||
ring->ring_debug->ring_name); | ring->ring_debug->ring_name); | ||||
sbuf_printf(&sb, | sbuf_printf(&sb, | ||||
"ring num %d, bank num %d\n", | "ring num %d, bank num %d\n", | ||||
ring->ring_number, | ring->ring_number, | ||||
▲ Show 20 Lines • Show All 67 Lines • ▼ Show 20 Lines | if (ring->ring_debug) { | ||||
ring->ring_debug = NULL; | ring->ring_debug = NULL; | ||||
} | } | ||||
} | } | ||||
static int adf_bank_show(SYSCTL_HANDLER_ARGS) | static int adf_bank_show(SYSCTL_HANDLER_ARGS) | ||||
{ | { | ||||
struct adf_etr_bank_data *bank; | struct adf_etr_bank_data *bank; | ||||
struct adf_accel_dev *accel_dev = NULL; | struct adf_accel_dev *accel_dev = NULL; | ||||
struct adf_hw_csr_ops *csr_ops = NULL; | |||||
struct adf_hw_device_data *hw_data = NULL; | struct adf_hw_device_data *hw_data = NULL; | ||||
u8 num_rings_per_bank = 0; | u8 num_rings_per_bank = 0; | ||||
struct sbuf sb; | struct sbuf sb; | ||||
int error, ring_id; | int error, ring_id; | ||||
sbuf_new_for_sysctl(&sb, NULL, 128, req); | sbuf_new_for_sysctl(&sb, NULL, 128, req); | ||||
bank = arg1; | bank = arg1; | ||||
accel_dev = bank->accel_dev; | accel_dev = bank->accel_dev; | ||||
csr_ops = GET_CSR_OPS(bank->accel_dev); | |||||
hw_data = accel_dev->hw_device; | hw_data = accel_dev->hw_device; | ||||
num_rings_per_bank = hw_data->num_rings_per_bank; | num_rings_per_bank = hw_data->num_rings_per_bank; | ||||
sbuf_printf(&sb, | sbuf_printf(&sb, | ||||
"\n------- Bank %d configuration -------\n", | "\n------- Bank %d configuration -------\n", | ||||
bank->bank_number); | bank->bank_number); | ||||
for (ring_id = 0; ring_id < num_rings_per_bank; ring_id++) { | for (ring_id = 0; ring_id < num_rings_per_bank; ring_id++) { | ||||
struct adf_etr_ring_data *ring = &bank->rings[ring_id]; | struct adf_etr_ring_data *ring = &bank->rings[ring_id]; | ||||
struct resource *csr = bank->csr_addr; | struct resource *csr = bank->csr_addr; | ||||
int head, tail, empty; | int head, tail, empty; | ||||
if (!(bank->ring_mask & 1 << ring_id)) | if (!(bank->ring_mask & 1 << ring_id)) | ||||
continue; | continue; | ||||
head = READ_CSR_RING_HEAD(csr, | head = csr_ops->read_csr_ring_head(csr, | ||||
bank->bank_number, | bank->bank_number, | ||||
ring->ring_number); | ring->ring_number); | ||||
tail = READ_CSR_RING_TAIL(csr, | tail = csr_ops->read_csr_ring_tail(csr, | ||||
bank->bank_number, | bank->bank_number, | ||||
ring->ring_number); | ring->ring_number); | ||||
empty = READ_CSR_E_STAT(csr, bank->bank_number); | empty = csr_ops->read_csr_e_stat(csr, bank->bank_number); | ||||
sbuf_printf(&sb, | sbuf_printf(&sb, | ||||
"ring num %02d, head %04x, tail %04x, empty: %d\n", | "ring num %02d, head %04x, tail %04x, empty: %d\n", | ||||
ring->ring_number, | ring->ring_number, | ||||
head, | head, | ||||
tail, | tail, | ||||
(empty & 1 << ring->ring_number) >> | (empty & 1 << ring->ring_number) >> | ||||
ring->ring_number); | ring->ring_number); | ||||
▲ Show 20 Lines • Show All 52 Lines • Show Last 20 Lines |