wil6210: [DEBUG] Improve Vring printing
Print '_' for the 'idle' descriptors - this makes vring representation more visible. Also, for the Tx side, differentiate descriptors having associated skb's - print ones with skb as 'H' and without as 'h'. Good to represent scattered frames. Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
3a85543e9f
commit
59f7c0a957
|
@ -30,7 +30,8 @@ static u32 dbg_vring_index; /* 25 for Rx, 0..24 for Tx */
|
||||||
#define WIL_DBG_VRING_INDEX_RX (WIL6210_MAX_TX_RINGS + 1)
|
#define WIL_DBG_VRING_INDEX_RX (WIL6210_MAX_TX_RINGS + 1)
|
||||||
|
|
||||||
static void wil_print_vring(struct seq_file *s, struct wil6210_priv *wil,
|
static void wil_print_vring(struct seq_file *s, struct wil6210_priv *wil,
|
||||||
const char *name, struct vring *vring)
|
const char *name, struct vring *vring,
|
||||||
|
char _s, char _h)
|
||||||
{
|
{
|
||||||
void __iomem *x = wmi_addr(wil, vring->hwtail);
|
void __iomem *x = wmi_addr(wil, vring->hwtail);
|
||||||
|
|
||||||
|
@ -52,8 +53,8 @@ static void wil_print_vring(struct seq_file *s, struct wil6210_priv *wil,
|
||||||
volatile struct vring_tx_desc *d = &vring->va[i].tx;
|
volatile struct vring_tx_desc *d = &vring->va[i].tx;
|
||||||
if ((i % 64) == 0 && (i != 0))
|
if ((i % 64) == 0 && (i != 0))
|
||||||
seq_printf(s, "\n");
|
seq_printf(s, "\n");
|
||||||
seq_printf(s, "%s", (d->dma.status & BIT(0)) ?
|
seq_printf(s, "%c", (d->dma.status & BIT(0)) ?
|
||||||
"S" : (vring->ctx[i].skb ? "H" : "h"));
|
_s : (vring->ctx[i].skb ? _h : 'h'));
|
||||||
}
|
}
|
||||||
seq_printf(s, "\n");
|
seq_printf(s, "\n");
|
||||||
}
|
}
|
||||||
|
@ -65,14 +66,14 @@ static int wil_vring_debugfs_show(struct seq_file *s, void *data)
|
||||||
uint i;
|
uint i;
|
||||||
struct wil6210_priv *wil = s->private;
|
struct wil6210_priv *wil = s->private;
|
||||||
|
|
||||||
wil_print_vring(s, wil, "rx", &wil->vring_rx);
|
wil_print_vring(s, wil, "rx", &wil->vring_rx, 'S', '_');
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(wil->vring_tx); i++) {
|
for (i = 0; i < ARRAY_SIZE(wil->vring_tx); i++) {
|
||||||
struct vring *vring = &(wil->vring_tx[i]);
|
struct vring *vring = &(wil->vring_tx[i]);
|
||||||
if (vring->va) {
|
if (vring->va) {
|
||||||
char name[10];
|
char name[10];
|
||||||
snprintf(name, sizeof(name), "tx_%2d", i);
|
snprintf(name, sizeof(name), "tx_%2d", i);
|
||||||
wil_print_vring(s, wil, name, vring);
|
wil_print_vring(s, wil, name, vring, '_', 'H');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue