Lines Matching refs:rx_q

232 	struct stmmac_rx_queue *rx_q;  in stmmac_disable_all_queues()  local
237 rx_q = &priv->dma_conf.rx_queue[queue]; in stmmac_disable_all_queues()
238 if (rx_q->xsk_pool) { in stmmac_disable_all_queues()
381 struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[queue]; in stmmac_rx_dirty() local
384 if (rx_q->dirty_rx <= rx_q->cur_rx) in stmmac_rx_dirty()
385 dirty = rx_q->cur_rx - rx_q->dirty_rx; in stmmac_rx_dirty()
387 dirty = priv->dma_conf.dma_rx_size - rx_q->dirty_rx + rx_q->cur_rx; in stmmac_rx_dirty()
1255 struct stmmac_rx_queue *rx_q = &dma_conf->rx_queue[queue]; in stmmac_display_rx_rings() local
1260 head_rx = (void *)rx_q->dma_erx; in stmmac_display_rx_rings()
1263 head_rx = (void *)rx_q->dma_rx; in stmmac_display_rx_rings()
1269 rx_q->dma_rx_phy, desc_size); in stmmac_display_rx_rings()
1343 struct stmmac_rx_queue *rx_q = &dma_conf->rx_queue[queue]; in stmmac_clear_rx_descriptors() local
1349 stmmac_init_rx_desc(priv, &rx_q->dma_erx[i].basic, in stmmac_clear_rx_descriptors()
1354 stmmac_init_rx_desc(priv, &rx_q->dma_rx[i], in stmmac_clear_rx_descriptors()
1430 struct stmmac_rx_queue *rx_q = &dma_conf->rx_queue[queue]; in stmmac_init_rx_buffers() local
1431 struct stmmac_rx_buffer *buf = &rx_q->buf_pool[i]; in stmmac_init_rx_buffers()
1438 buf->page = page_pool_alloc_pages(rx_q->page_pool, gfp); in stmmac_init_rx_buffers()
1445 buf->sec_page = page_pool_alloc_pages(rx_q->page_pool, gfp); in stmmac_init_rx_buffers()
1472 struct stmmac_rx_queue *rx_q, in stmmac_free_rx_buffer() argument
1475 struct stmmac_rx_buffer *buf = &rx_q->buf_pool[i]; in stmmac_free_rx_buffer()
1478 page_pool_put_full_page(rx_q->page_pool, buf->page, false); in stmmac_free_rx_buffer()
1482 page_pool_put_full_page(rx_q->page_pool, buf->sec_page, false); in stmmac_free_rx_buffer()
1543 struct stmmac_rx_queue *rx_q = &dma_conf->rx_queue[queue]; in dma_free_rx_skbufs() local
1547 stmmac_free_rx_buffer(priv, rx_q, i); in dma_free_rx_skbufs()
1554 struct stmmac_rx_queue *rx_q = &dma_conf->rx_queue[queue]; in stmmac_alloc_rx_buffers() local
1562 p = &((rx_q->dma_erx + i)->basic); in stmmac_alloc_rx_buffers()
1564 p = rx_q->dma_rx + i; in stmmac_alloc_rx_buffers()
1571 rx_q->buf_alloc_num++; in stmmac_alloc_rx_buffers()
1587 struct stmmac_rx_queue *rx_q = &dma_conf->rx_queue[queue]; in dma_free_rx_xskbufs() local
1591 struct stmmac_rx_buffer *buf = &rx_q->buf_pool[i]; in dma_free_rx_xskbufs()
1605 struct stmmac_rx_queue *rx_q = &dma_conf->rx_queue[queue]; in stmmac_alloc_rx_buffers_zc() local
1614 p = (struct dma_desc *)(rx_q->dma_erx + i); in stmmac_alloc_rx_buffers_zc()
1616 p = rx_q->dma_rx + i; in stmmac_alloc_rx_buffers_zc()
1618 buf = &rx_q->buf_pool[i]; in stmmac_alloc_rx_buffers_zc()
1620 buf->xdp = xsk_buff_alloc(rx_q->xsk_pool); in stmmac_alloc_rx_buffers_zc()
1626 rx_q->buf_alloc_num++; in stmmac_alloc_rx_buffers_zc()
1654 struct stmmac_rx_queue *rx_q = &dma_conf->rx_queue[queue]; in __init_dma_rx_desc_rings() local
1659 (u32)rx_q->dma_rx_phy); in __init_dma_rx_desc_rings()
1663 xdp_rxq_info_unreg_mem_model(&rx_q->xdp_rxq); in __init_dma_rx_desc_rings()
1665 rx_q->xsk_pool = stmmac_get_xsk_pool(priv, queue); in __init_dma_rx_desc_rings()
1667 if (rx_q->xsk_pool) { in __init_dma_rx_desc_rings()
1668 WARN_ON(xdp_rxq_info_reg_mem_model(&rx_q->xdp_rxq, in __init_dma_rx_desc_rings()
1673 rx_q->queue_index); in __init_dma_rx_desc_rings()
1674 xsk_pool_set_rxq_info(rx_q->xsk_pool, &rx_q->xdp_rxq); in __init_dma_rx_desc_rings()
1676 WARN_ON(xdp_rxq_info_reg_mem_model(&rx_q->xdp_rxq, in __init_dma_rx_desc_rings()
1678 rx_q->page_pool)); in __init_dma_rx_desc_rings()
1681 rx_q->queue_index); in __init_dma_rx_desc_rings()
1684 if (rx_q->xsk_pool) { in __init_dma_rx_desc_rings()
1698 stmmac_mode_init(priv, rx_q->dma_erx, in __init_dma_rx_desc_rings()
1699 rx_q->dma_rx_phy, in __init_dma_rx_desc_rings()
1702 stmmac_mode_init(priv, rx_q->dma_rx, in __init_dma_rx_desc_rings()
1703 rx_q->dma_rx_phy, in __init_dma_rx_desc_rings()
1733 struct stmmac_rx_queue *rx_q = &dma_conf->rx_queue[queue]; in init_dma_rx_desc_rings() local
1735 if (rx_q->xsk_pool) in init_dma_rx_desc_rings()
1740 rx_q->buf_alloc_num = 0; in init_dma_rx_desc_rings()
1741 rx_q->xsk_pool = NULL; in init_dma_rx_desc_rings()
1898 struct stmmac_rx_queue *rx_q = &dma_conf->rx_queue[queue]; in __free_dma_rx_desc_resources() local
1901 if (rx_q->xsk_pool) in __free_dma_rx_desc_resources()
1906 rx_q->buf_alloc_num = 0; in __free_dma_rx_desc_resources()
1907 rx_q->xsk_pool = NULL; in __free_dma_rx_desc_resources()
1913 rx_q->dma_rx, rx_q->dma_rx_phy); in __free_dma_rx_desc_resources()
1917 rx_q->dma_erx, rx_q->dma_rx_phy); in __free_dma_rx_desc_resources()
1919 if (xdp_rxq_info_is_reg(&rx_q->xdp_rxq)) in __free_dma_rx_desc_resources()
1920 xdp_rxq_info_unreg(&rx_q->xdp_rxq); in __free_dma_rx_desc_resources()
1922 kfree(rx_q->buf_pool); in __free_dma_rx_desc_resources()
1923 if (rx_q->page_pool) in __free_dma_rx_desc_resources()
1924 page_pool_destroy(rx_q->page_pool); in __free_dma_rx_desc_resources()
1999 struct stmmac_rx_queue *rx_q = &dma_conf->rx_queue[queue]; in __alloc_dma_rx_desc_resources() local
2007 rx_q->queue_index = queue; in __alloc_dma_rx_desc_resources()
2008 rx_q->priv_data = priv; in __alloc_dma_rx_desc_resources()
2020 rx_q->page_pool = page_pool_create(&pp_params); in __alloc_dma_rx_desc_resources()
2021 if (IS_ERR(rx_q->page_pool)) { in __alloc_dma_rx_desc_resources()
2022 ret = PTR_ERR(rx_q->page_pool); in __alloc_dma_rx_desc_resources()
2023 rx_q->page_pool = NULL; in __alloc_dma_rx_desc_resources()
2027 rx_q->buf_pool = kcalloc(dma_conf->dma_rx_size, in __alloc_dma_rx_desc_resources()
2028 sizeof(*rx_q->buf_pool), in __alloc_dma_rx_desc_resources()
2030 if (!rx_q->buf_pool) in __alloc_dma_rx_desc_resources()
2034 rx_q->dma_erx = dma_alloc_coherent(priv->device, in __alloc_dma_rx_desc_resources()
2037 &rx_q->dma_rx_phy, in __alloc_dma_rx_desc_resources()
2039 if (!rx_q->dma_erx) in __alloc_dma_rx_desc_resources()
2043 rx_q->dma_rx = dma_alloc_coherent(priv->device, in __alloc_dma_rx_desc_resources()
2046 &rx_q->dma_rx_phy, in __alloc_dma_rx_desc_resources()
2048 if (!rx_q->dma_rx) in __alloc_dma_rx_desc_resources()
2058 ret = xdp_rxq_info_reg(&rx_q->xdp_rxq, priv->dev, in __alloc_dma_rx_desc_resources()
2059 rx_q->queue_index, in __alloc_dma_rx_desc_resources()
2380 struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[chan]; in stmmac_dma_operation_mode() local
2388 if (rx_q->xsk_pool) { in stmmac_dma_operation_mode()
2389 buf_size = xsk_pool_get_rx_frame_size(rx_q->xsk_pool); in stmmac_dma_operation_mode()
2774 struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[chan]; in stmmac_napi_check() local
2781 rx_napi = rx_q->xsk_pool ? &ch->rxtx_napi : &ch->rx_napi; in stmmac_napi_check()
2907 struct stmmac_rx_queue *rx_q; in stmmac_init_dma_engine() local
2941 rx_q = &priv->dma_conf.rx_queue[chan]; in stmmac_init_dma_engine()
2944 rx_q->dma_rx_phy, chan); in stmmac_init_dma_engine()
2946 rx_q->rx_tail_addr = rx_q->dma_rx_phy + in stmmac_init_dma_engine()
2947 (rx_q->buf_alloc_num * in stmmac_init_dma_engine()
2950 rx_q->rx_tail_addr, chan); in stmmac_init_dma_engine()
4585 struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[queue]; in stmmac_rx_refill() local
4587 unsigned int entry = rx_q->dirty_rx; in stmmac_rx_refill()
4594 struct stmmac_rx_buffer *buf = &rx_q->buf_pool[entry]; in stmmac_rx_refill()
4599 p = (struct dma_desc *)(rx_q->dma_erx + entry); in stmmac_rx_refill()
4601 p = rx_q->dma_rx + entry; in stmmac_rx_refill()
4604 buf->page = page_pool_alloc_pages(rx_q->page_pool, gfp); in stmmac_rx_refill()
4610 buf->sec_page = page_pool_alloc_pages(rx_q->page_pool, gfp); in stmmac_rx_refill()
4624 stmmac_refill_desc3(priv, rx_q, p); in stmmac_rx_refill()
4626 rx_q->rx_count_frames++; in stmmac_rx_refill()
4627 rx_q->rx_count_frames += priv->rx_coal_frames[queue]; in stmmac_rx_refill()
4628 if (rx_q->rx_count_frames > priv->rx_coal_frames[queue]) in stmmac_rx_refill()
4629 rx_q->rx_count_frames = 0; in stmmac_rx_refill()
4632 use_rx_wd |= rx_q->rx_count_frames > 0; in stmmac_rx_refill()
4641 rx_q->dirty_rx = entry; in stmmac_rx_refill()
4642 rx_q->rx_tail_addr = rx_q->dma_rx_phy + in stmmac_rx_refill()
4643 (rx_q->dirty_rx * sizeof(struct dma_desc)); in stmmac_rx_refill()
4644 stmmac_set_rx_tail_ptr(priv, priv->ioaddr, rx_q->rx_tail_addr, queue); in stmmac_rx_refill()
4936 struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[queue]; in stmmac_rx_refill_zc() local
4937 unsigned int entry = rx_q->dirty_rx; in stmmac_rx_refill_zc()
4943 while (budget-- > 0 && entry != rx_q->cur_rx) { in stmmac_rx_refill_zc()
4944 struct stmmac_rx_buffer *buf = &rx_q->buf_pool[entry]; in stmmac_rx_refill_zc()
4949 buf->xdp = xsk_buff_alloc(rx_q->xsk_pool); in stmmac_rx_refill_zc()
4957 rx_desc = (struct dma_desc *)(rx_q->dma_erx + entry); in stmmac_rx_refill_zc()
4959 rx_desc = rx_q->dma_rx + entry; in stmmac_rx_refill_zc()
4964 stmmac_refill_desc3(priv, rx_q, rx_desc); in stmmac_rx_refill_zc()
4966 rx_q->rx_count_frames++; in stmmac_rx_refill_zc()
4967 rx_q->rx_count_frames += priv->rx_coal_frames[queue]; in stmmac_rx_refill_zc()
4968 if (rx_q->rx_count_frames > priv->rx_coal_frames[queue]) in stmmac_rx_refill_zc()
4969 rx_q->rx_count_frames = 0; in stmmac_rx_refill_zc()
4972 use_rx_wd |= rx_q->rx_count_frames > 0; in stmmac_rx_refill_zc()
4983 rx_q->dirty_rx = entry; in stmmac_rx_refill_zc()
4984 rx_q->rx_tail_addr = rx_q->dma_rx_phy + in stmmac_rx_refill_zc()
4985 (rx_q->dirty_rx * sizeof(struct dma_desc)); in stmmac_rx_refill_zc()
4986 stmmac_set_rx_tail_ptr(priv, priv->ioaddr, rx_q->rx_tail_addr, queue); in stmmac_rx_refill_zc()
4994 struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[queue]; in stmmac_rx_zc() local
4997 unsigned int next_entry = rx_q->cur_rx; in stmmac_rx_zc()
5009 rx_head = (void *)rx_q->dma_erx; in stmmac_rx_zc()
5012 rx_head = (void *)rx_q->dma_rx; in stmmac_rx_zc()
5017 rx_q->dma_rx_phy, desc_size); in stmmac_rx_zc()
5026 if (!count && rx_q->state_saved) { in stmmac_rx_zc()
5027 error = rx_q->state.error; in stmmac_rx_zc()
5028 len = rx_q->state.len; in stmmac_rx_zc()
5030 rx_q->state_saved = false; in stmmac_rx_zc()
5041 buf = &rx_q->buf_pool[entry]; in stmmac_rx_zc()
5050 p = (struct dma_desc *)(rx_q->dma_erx + entry); in stmmac_rx_zc()
5052 p = rx_q->dma_rx + entry; in stmmac_rx_zc()
5062 rx_q->cur_rx = STMMAC_GET_ENTRY(rx_q->cur_rx, in stmmac_rx_zc()
5064 next_entry = rx_q->cur_rx; in stmmac_rx_zc()
5067 np = (struct dma_desc *)(rx_q->dma_erx + next_entry); in stmmac_rx_zc()
5069 np = rx_q->dma_rx + next_entry; in stmmac_rx_zc()
5080 rx_q->dma_erx + entry); in stmmac_rx_zc()
5118 xsk_buff_dma_sync_for_cpu(buf->xdp, rx_q->xsk_pool); in stmmac_rx_zc()
5144 rx_q->state_saved = true; in stmmac_rx_zc()
5145 rx_q->state.error = error; in stmmac_rx_zc()
5146 rx_q->state.len = len; in stmmac_rx_zc()
5154 if (xsk_uses_need_wakeup(rx_q->xsk_pool)) { in stmmac_rx_zc()
5156 xsk_set_rx_need_wakeup(rx_q->xsk_pool); in stmmac_rx_zc()
5158 xsk_clear_rx_need_wakeup(rx_q->xsk_pool); in stmmac_rx_zc()
5176 struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[queue]; in stmmac_rx() local
5180 unsigned int next_entry = rx_q->cur_rx; in stmmac_rx()
5188 dma_dir = page_pool_get_dma_dir(rx_q->page_pool); in stmmac_rx()
5196 rx_head = (void *)rx_q->dma_erx; in stmmac_rx()
5199 rx_head = (void *)rx_q->dma_rx; in stmmac_rx()
5204 rx_q->dma_rx_phy, desc_size); in stmmac_rx()
5214 if (!count && rx_q->state_saved) { in stmmac_rx()
5215 skb = rx_q->state.skb; in stmmac_rx()
5216 error = rx_q->state.error; in stmmac_rx()
5217 len = rx_q->state.len; in stmmac_rx()
5219 rx_q->state_saved = false; in stmmac_rx()
5232 buf = &rx_q->buf_pool[entry]; in stmmac_rx()
5235 p = (struct dma_desc *)(rx_q->dma_erx + entry); in stmmac_rx()
5237 p = rx_q->dma_rx + entry; in stmmac_rx()
5246 rx_q->cur_rx = STMMAC_GET_ENTRY(rx_q->cur_rx, in stmmac_rx()
5248 next_entry = rx_q->cur_rx; in stmmac_rx()
5251 np = (struct dma_desc *)(rx_q->dma_erx + next_entry); in stmmac_rx()
5253 np = rx_q->dma_rx + next_entry; in stmmac_rx()
5259 &priv->xstats, rx_q->dma_erx + entry); in stmmac_rx()
5261 page_pool_recycle_direct(rx_q->page_pool, buf->page); in stmmac_rx()
5305 xdp_init_buff(&xdp, buf_sz, &rx_q->xdp_rxq); in stmmac_rx()
5324 page_pool_put_page(rx_q->page_pool, in stmmac_rx()
5367 page_pool_recycle_direct(rx_q->page_pool, buf->page); in stmmac_rx()
5377 page_pool_release_page(rx_q->page_pool, buf->page); in stmmac_rx()
5389 page_pool_release_page(rx_q->page_pool, buf->sec_page); in stmmac_rx()
5423 rx_q->state_saved = true; in stmmac_rx()
5424 rx_q->state.skb = skb; in stmmac_rx()
5425 rx_q->state.error = error; in stmmac_rx()
5426 rx_q->state.len = len; in stmmac_rx()
5877 struct stmmac_rx_queue *rx_q = (struct stmmac_rx_queue *)data; in stmmac_msi_intr_rx() local
5879 int chan = rx_q->queue_index; in stmmac_msi_intr_rx()
5882 dma_conf = container_of(rx_q, struct stmmac_dma_conf, rx_queue[chan]); in stmmac_msi_intr_rx()
6098 struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[queue]; in stmmac_rings_status_show() local
6104 sysfs_display_ring((void *)rx_q->dma_erx, in stmmac_rings_status_show()
6105 priv->dma_conf.dma_rx_size, 1, seq, rx_q->dma_rx_phy); in stmmac_rings_status_show()
6108 sysfs_display_ring((void *)rx_q->dma_rx, in stmmac_rings_status_show()
6109 priv->dma_conf.dma_rx_size, 0, seq, rx_q->dma_rx_phy); in stmmac_rings_status_show()
6464 struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[queue]; in stmmac_enable_rx_queue() local
6487 rx_q->dma_rx_phy, rx_q->queue_index); in stmmac_enable_rx_queue()
6489 rx_q->rx_tail_addr = rx_q->dma_rx_phy + (rx_q->buf_alloc_num * in stmmac_enable_rx_queue()
6492 rx_q->rx_tail_addr, rx_q->queue_index); in stmmac_enable_rx_queue()
6494 if (rx_q->xsk_pool && rx_q->buf_alloc_num) { in stmmac_enable_rx_queue()
6495 buf_size = xsk_pool_get_rx_frame_size(rx_q->xsk_pool); in stmmac_enable_rx_queue()
6498 rx_q->queue_index); in stmmac_enable_rx_queue()
6502 rx_q->queue_index); in stmmac_enable_rx_queue()
6604 struct stmmac_rx_queue *rx_q; in stmmac_xdp_open() local
6636 rx_q = &priv->dma_conf.rx_queue[chan]; in stmmac_xdp_open()
6639 rx_q->dma_rx_phy, chan); in stmmac_xdp_open()
6641 rx_q->rx_tail_addr = rx_q->dma_rx_phy + in stmmac_xdp_open()
6642 (rx_q->buf_alloc_num * in stmmac_xdp_open()
6645 rx_q->rx_tail_addr, chan); in stmmac_xdp_open()
6647 if (rx_q->xsk_pool && rx_q->buf_alloc_num) { in stmmac_xdp_open()
6648 buf_size = xsk_pool_get_rx_frame_size(rx_q->xsk_pool); in stmmac_xdp_open()
6651 rx_q->queue_index); in stmmac_xdp_open()
6655 rx_q->queue_index); in stmmac_xdp_open()
6708 struct stmmac_rx_queue *rx_q; in stmmac_xsk_wakeup() local
6723 rx_q = &priv->dma_conf.rx_queue[queue]; in stmmac_xsk_wakeup()
6727 if (!rx_q->xsk_pool && !tx_q->xsk_pool) in stmmac_xsk_wakeup()
7469 struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[queue]; in stmmac_reset_rx_queue() local
7471 rx_q->cur_rx = 0; in stmmac_reset_rx_queue()
7472 rx_q->dirty_rx = 0; in stmmac_reset_rx_queue()