Lines Matching refs:ring
21 const struct mcp251xfd_rx_ring *ring,
27 err = regmap_read(priv->map_reg, MCP251XFD_REG_FIFOSTA(ring->fifo_nr),
40 const struct mcp251xfd_rx_ring *ring,
46 err = regmap_read(priv->map_reg, MCP251XFD_REG_FIFOUA(ring->fifo_nr),
51 fifo_ua -= ring->base - MCP251XFD_RAM_START;
52 *rx_tail = fifo_ua / ring->obj_size;
59 const struct mcp251xfd_rx_ring *ring)
67 err = mcp251xfd_rx_tail_get_from_chip(priv, ring, &rx_tail_chip);
71 rx_tail = mcp251xfd_get_rx_tail(ring);
84 struct mcp251xfd_rx_ring *ring)
91 err = mcp251xfd_rx_head_get_from_chip(priv, ring, &chip_rx_head,
99 new_head = round_down(ring->head, ring->obj_num) + chip_rx_head;
100 if (new_head <= ring->head)
101 new_head += ring->obj_num;
103 ring->head = new_head;
105 return mcp251xfd_check_rx_tail(priv, ring);
157 struct mcp251xfd_rx_ring *ring,
185 const struct mcp251xfd_rx_ring *ring,
193 mcp251xfd_get_rx_obj_addr(ring, offset),
195 len * ring->obj_size / val_bytes);
202 struct mcp251xfd_rx_ring *ring)
204 struct mcp251xfd_hw_rx_obj_canfd *hw_rx_obj = ring->obj;
208 err = mcp251xfd_rx_ring_update(priv, ring);
212 while ((len = mcp251xfd_get_rx_linear_len(ring))) {
215 rx_tail = mcp251xfd_get_rx_tail(ring);
217 err = mcp251xfd_rx_obj_read(priv, ring, hw_rx_obj,
223 err = mcp251xfd_handle_rxif_one(priv, ring,
225 i * ring->obj_size);
239 offset = ARRAY_SIZE(ring->uinc_xfer) - len;
241 ring->uinc_xfer + offset, len);
245 ring->tail += len;
253 struct mcp251xfd_rx_ring *ring;
256 mcp251xfd_for_each_rx_ring(priv, ring, n) {
257 /* - if RX IRQ coalescing is active always handle ring 0
260 if ((ring->nr > 0 || !priv->rx_obj_num_coalesce_irq) &&
261 !(priv->regs_status.rxif & BIT(ring->fifo_nr)))
264 err = mcp251xfd_handle_rxif_ring(priv, ring);