Lines Matching refs:eskbp
266 u32 eskbp;
269 * the echo_skb pointer eskbp and for making sure that a running reset
273 * The echo_skb pointer, eskbp, should only be accessed under this lock
381 static inline u32 grcan_txspace(size_t txsize, u32 txwr, u32 eskbp)
384 u32 used = grcan_ring_sub(txwr, eskbp, txsize) / GRCAN_MSG_SIZE;
472 priv->eskbp = grcan_read_reg(®s->txrd);
491 /* Let priv->eskbp catch up to regs->txrd and echo back the skbs if echo
495 * continue until priv->eskbp catches up to regs->txrd.
507 /* Updates to priv->eskbp and wake-ups of the queue needs to
508 * be atomic towards the reads of priv->eskbp and shut-downs
514 if (priv->eskbp == txrd)
516 i = priv->eskbp / GRCAN_MSG_SIZE;
526 priv->eskbp = grcan_ring_add(priv->eskbp, GRCAN_MSG_SIZE,
697 priv->eskbp))
814 /* This temporarily messes with eskbp, so we need to lock
831 u32 eskbp = priv->eskbp;
845 priv->eskbp = eskbp;
864 if (grcan_txspace(priv->dma.tx.size, txwr, priv->eskbp) &&
985 /* regs->txwr, regs->txrd and priv->eskbp already set to 0 by reset */
1293 if (grcan_txspace(dma->tx.size, txwr, priv->eskbp))
1324 * priv->eskbp - the next slot for the driver to call can_put_echo_skb for
1327 * not reach priv->eskbp (within 1 message gap)
1332 * priv->eskbp reaches regs->txrd
1358 /* Reads of priv->eskbp and shut-downs of the queue needs to
1359 * be atomic towards the updates to priv->eskbp and wake-ups
1365 space = grcan_txspace(dma->tx.size, txwr, priv->eskbp);