Lines Matching refs:rx_queue
58 struct efx_rx_queue *rx_queue = efx_channel_get_rx_queue(channel);
59 struct efx_rx_buffer *rx_buf = efx_rx_buffer(rx_queue,
73 if (channel->type->receive_raw(rx_queue, mark))
141 efx_free_rx_buffers(rx_queue, rx_buf, 1);
146 static void ef100_rx_packet(struct efx_rx_queue *rx_queue, unsigned int index)
148 struct efx_rx_buffer *rx_buf = efx_rx_buffer(rx_queue, index);
149 struct efx_channel *channel = efx_rx_queue_channel(rx_queue);
150 struct efx_nic *efx = rx_queue->efx;
152 ++rx_queue->rx_packets;
156 efx_rx_queue_index(rx_queue), index);
173 struct efx_rx_queue *rx_queue = efx_channel_get_rx_queue(channel);
185 ef100_rx_packet(rx_queue,
186 rx_queue->removed_count & rx_queue->ptr_mask);
187 ++rx_queue->removed_count;
191 void ef100_rx_write(struct efx_rx_queue *rx_queue)
193 unsigned int notified_count = rx_queue->notified_count;
199 while (notified_count != rx_queue->added_count) {
200 idx = notified_count & rx_queue->ptr_mask;
201 rx_buf = efx_rx_buffer(rx_queue, idx);
202 rxd = efx_rx_desc(rx_queue, idx);
208 if (notified_count == rx_queue->notified_count)
213 rx_queue->added_count & rx_queue->ptr_mask);
214 efx_writed_page(rx_queue->efx, &rxdb,
215 ER_GZ_RX_RING_DOORBELL, efx_rx_queue_index(rx_queue));
216 if (rx_queue->grant_credits)
218 rx_queue->notified_count = notified_count;
219 if (rx_queue->grant_credits)
220 schedule_work(&rx_queue->grant_work);