Lines Matching refs:rxq
46 #define MVPP2_RXQ_CONFIG_REG(rxq) (0x800 + 4 * (rxq)) argument
102 #define MVPP2_RXQ_STATUS_UPDATE_REG(rxq) (0x3000 + 4 * (rxq)) argument
105 #define MVPP2_RXQ_STATUS_REG(rxq) (0x3400 + 4 * (rxq)) argument
154 #define MVPP2_ISR_RX_THRESHOLD_REG(rxq) (0x5200 + 4 * (rxq)) argument
155 #define MVPP2_ISR_RXQ_GROUP_REG(rxq) (0x5400 + 4 * (rxq)) argument
3707 int rxq; in mvpp2_swf_bm_pool_init() local
3721 for (rxq = 0; rxq < rxq_number; rxq++) in mvpp2_swf_bm_pool_init()
3722 mvpp2_rxq_long_pool_set(port, rxq, port->pool_long->id); in mvpp2_swf_bm_pool_init()
3737 for (rxq = 0; rxq < rxq_number; rxq++) in mvpp2_swf_bm_pool_init()
3738 mvpp2_rxq_short_pool_set(port, rxq, in mvpp2_swf_bm_pool_init()
4090 mvpp2_rxq_next_desc_get(struct mvpp2_rx_queue *rxq) in mvpp2_rxq_next_desc_get() argument
4092 int rx_desc = rxq->next_desc_to_proc; in mvpp2_rxq_next_desc_get()
4094 rxq->next_desc_to_proc = MVPP2_QUEUE_NEXT_DESC(rxq, rx_desc); in mvpp2_rxq_next_desc_get()
4095 prefetch(rxq->descs + rxq->next_desc_to_proc); in mvpp2_rxq_next_desc_get()
4096 return rxq->descs + rx_desc; in mvpp2_rxq_next_desc_get()
4362 struct mvpp2_rx_queue *rxq, u32 pkts) in mvpp2_rx_pkts_coal_set() argument
4367 mvpp2_write(port->priv, MVPP2_RXQ_NUM_REG, rxq->id); in mvpp2_rx_pkts_coal_set()
4370 rxq->pkts_coal = pkts; in mvpp2_rx_pkts_coal_set()
4375 struct mvpp2_rx_queue *rxq, u32 usec) in mvpp2_rx_time_coal_set() argument
4380 mvpp2_write(port->priv, MVPP2_ISR_RX_THRESHOLD_REG(rxq->id), val); in mvpp2_rx_time_coal_set()
4382 rxq->time_coal = usec; in mvpp2_rx_time_coal_set()
4499 struct mvpp2_rx_queue *rxq) in mvpp2_rxq_init() argument
4502 rxq->size = port->rx_ring_size; in mvpp2_rxq_init()
4505 rxq->descs = dma_alloc_coherent(port->dev->dev.parent, in mvpp2_rxq_init()
4506 rxq->size * MVPP2_DESC_ALIGNED_SIZE, in mvpp2_rxq_init()
4507 &rxq->descs_phys, GFP_KERNEL); in mvpp2_rxq_init()
4508 if (!rxq->descs) in mvpp2_rxq_init()
4511 BUG_ON(rxq->descs != in mvpp2_rxq_init()
4512 PTR_ALIGN(rxq->descs, MVPP2_CPU_D_CACHE_LINE_SIZE)); in mvpp2_rxq_init()
4514 rxq->last_desc = rxq->size - 1; in mvpp2_rxq_init()
4517 mvpp2_write(port->priv, MVPP2_RXQ_STATUS_REG(rxq->id), 0); in mvpp2_rxq_init()
4520 mvpp2_write(port->priv, MVPP2_RXQ_NUM_REG, rxq->id); in mvpp2_rxq_init()
4521 mvpp2_write(port->priv, MVPP2_RXQ_DESC_ADDR_REG, rxq->descs_phys); in mvpp2_rxq_init()
4522 mvpp2_write(port->priv, MVPP2_RXQ_DESC_SIZE_REG, rxq->size); in mvpp2_rxq_init()
4526 mvpp2_rxq_offset_set(port, rxq->id, NET_SKB_PAD); in mvpp2_rxq_init()
4529 mvpp2_rx_pkts_coal_set(port, rxq, rxq->pkts_coal); in mvpp2_rxq_init()
4530 mvpp2_rx_time_coal_set(port, rxq, rxq->time_coal); in mvpp2_rxq_init()
4533 mvpp2_rxq_status_update(port, rxq->id, 0, rxq->size); in mvpp2_rxq_init()
4540 struct mvpp2_rx_queue *rxq) in mvpp2_rxq_drop_pkts() argument
4544 rx_received = mvpp2_rxq_received(port, rxq->id); in mvpp2_rxq_drop_pkts()
4549 struct mvpp2_rx_desc *rx_desc = mvpp2_rxq_next_desc_get(rxq); in mvpp2_rxq_drop_pkts()
4555 mvpp2_rxq_status_update(port, rxq->id, rx_received, rx_received); in mvpp2_rxq_drop_pkts()
4560 struct mvpp2_rx_queue *rxq) in mvpp2_rxq_deinit() argument
4562 mvpp2_rxq_drop_pkts(port, rxq); in mvpp2_rxq_deinit()
4564 if (rxq->descs) in mvpp2_rxq_deinit()
4566 rxq->size * MVPP2_DESC_ALIGNED_SIZE, in mvpp2_rxq_deinit()
4567 rxq->descs, in mvpp2_rxq_deinit()
4568 rxq->descs_phys); in mvpp2_rxq_deinit()
4570 rxq->descs = NULL; in mvpp2_rxq_deinit()
4571 rxq->last_desc = 0; in mvpp2_rxq_deinit()
4572 rxq->next_desc_to_proc = 0; in mvpp2_rxq_deinit()
4573 rxq->descs_phys = 0; in mvpp2_rxq_deinit()
4578 mvpp2_write(port->priv, MVPP2_RXQ_STATUS_REG(rxq->id), 0); in mvpp2_rxq_deinit()
4579 mvpp2_write(port->priv, MVPP2_RXQ_NUM_REG, rxq->id); in mvpp2_rxq_deinit()
5024 struct mvpp2_rx_queue *rxq) in mvpp2_rx() argument
5032 rx_received = mvpp2_rxq_received(port, rxq->id); in mvpp2_rx()
5038 struct mvpp2_rx_desc *rx_desc = mvpp2_rxq_next_desc_get(rxq); in mvpp2_rx()
5101 mvpp2_rxq_status_update(port, rxq->id, rx_todo, rx_filled); in mvpp2_rx()
5326 struct mvpp2_rx_queue *rxq; in mvpp2_poll() local
5328 rxq = mvpp2_get_rx_queue(port, cause_rx); in mvpp2_poll()
5329 if (!rxq) in mvpp2_poll()
5332 count = mvpp2_rx(port, budget, rxq); in mvpp2_poll()
5340 cause_rx &= ~(1 << rxq->logic_rxq); in mvpp2_poll()
5773 struct mvpp2_rx_queue *rxq = port->rxqs[queue]; in mvpp2_ethtool_set_coalesce() local
5775 rxq->time_coal = c->rx_coalesce_usecs; in mvpp2_ethtool_set_coalesce()
5776 rxq->pkts_coal = c->rx_max_coalesced_frames; in mvpp2_ethtool_set_coalesce()
5777 mvpp2_rx_pkts_coal_set(port, rxq, rxq->pkts_coal); in mvpp2_ethtool_set_coalesce()
5778 mvpp2_rx_time_coal_set(port, rxq, rxq->time_coal); in mvpp2_ethtool_set_coalesce()
5976 struct mvpp2_rx_queue *rxq; in mvpp2_port_init() local
5979 rxq = devm_kzalloc(dev, sizeof(*rxq), GFP_KERNEL); in mvpp2_port_init()
5980 if (!rxq) in mvpp2_port_init()
5983 rxq->id = port->first_rxq + queue; in mvpp2_port_init()
5984 rxq->port = port->id; in mvpp2_port_init()
5985 rxq->logic_rxq = queue; in mvpp2_port_init()
5987 port->rxqs[queue] = rxq; in mvpp2_port_init()
5995 struct mvpp2_rx_queue *rxq = port->rxqs[queue]; in mvpp2_port_init() local
5997 rxq->size = port->rx_ring_size; in mvpp2_port_init()
5998 rxq->pkts_coal = MVPP2_RX_COAL_PKTS; in mvpp2_port_init()
5999 rxq->time_coal = MVPP2_RX_COAL_USEC; in mvpp2_port_init()