if (rx) {
stats->rx_count++;
stats->rx_packets += rx;
- if (rx <= AG71XX_NAPI_WEIGHT)
+ if (rx <= NAPI_POLL_WEIGHT)
stats->rx[rx]++;
if (rx > stats->rx_packets_max)
stats->rx_packets_max = rx;
if (tx) {
stats->tx_count++;
stats->tx_packets += tx;
- if (tx <= AG71XX_NAPI_WEIGHT)
+ if (tx <= NAPI_POLL_WEIGHT)
stats->tx[tx]++;
if (tx > stats->tx_packets_max)
stats->tx_packets_max = tx;
len += snprintf(buf + len, buflen - len, "%3s %10s %10s\n",
"len", "rx", "tx");
- for (i = 1; i <= AG71XX_NAPI_WEIGHT; i++)
+ for (i = 1; i <= NAPI_POLL_WEIGHT; i++)
len += snprintf(buf + len, buflen - len,
"%3d: %10lu %10lu\n",
i, stats->rx[i], stats->tx[i]);
struct ag71xx_ring *ring,
unsigned desc_reg)
{
+ int ring_size = BIT(ring->order);
+ int ring_mask = ring_size - 1;
char *buf;
unsigned int buflen;
unsigned int len = 0;
u32 desc_hw;
int i;
- buflen = (ring->size * DESC_PRINT_LEN);
+ buflen = (ring_size * DESC_PRINT_LEN);
buf = kmalloc(buflen, GFP_KERNEL);
if (!buf)
return -ENOMEM;
spin_lock_irqsave(&ag->lock, flags);
- curr = (ring->curr % ring->size);
- dirty = (ring->dirty % ring->size);
+ curr = (ring->curr & ring_mask);
+ dirty = (ring->dirty & ring_mask);
desc_hw = ag71xx_rr(ag, desc_reg);
- for (i = 0; i < ring->size; i++) {
+ for (i = 0; i < ring_size; i++) {
struct ag71xx_buf *ab = &ring->buf[i];
- u32 desc_dma = ((u32) ring->descs_dma) + i * ring->desc_size;
+ struct ag71xx_desc *desc = ag71xx_ring_desc(ring, i);
+ u32 desc_dma = ((u32) ring->descs_dma) + i * AG71XX_DESC_SIZE;
len += snprintf(buf + len, buflen - len,
"%3d %c%c%c %08x %08x %08x %08x %c %10lu\n",
(i == dirty) ? 'D' : ' ',
(desc_hw == desc_dma) ? 'H' : ' ',
desc_dma,
- ab->desc->next,
- ab->desc->data,
- ab->desc->ctrl,
- (ab->desc->ctrl & DESC_EMPTY) ? 'E' : '*',
+ desc->next,
+ desc->data,
+ desc->ctrl,
+ (desc->ctrl & DESC_EMPTY) ? 'E' : '*',
ab->timestamp);
}