Lines Matching refs:eskbp
265 u32 eskbp;
268 * the echo_skb pointer eskbp and for making sure that a running reset
272 * The echo_skb pointer, eskbp, should only be accessed under this lock
380 static inline u32 grcan_txspace(size_t txsize, u32 txwr, u32 eskbp)
383 u32 used = grcan_ring_sub(txwr, eskbp, txsize) / GRCAN_MSG_SIZE;
471 priv->eskbp = grcan_read_reg(®s->txrd);
490 /* Let priv->eskbp catch up to regs->txrd and echo back the skbs if echo
494 * continue until priv->eskbp catches up to regs->txrd.
506 /* Updates to priv->eskbp and wake-ups of the queue needs to
507 * be atomic towards the reads of priv->eskbp and shut-downs
513 if (priv->eskbp == txrd)
515 i = priv->eskbp / GRCAN_MSG_SIZE;
527 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 */
1302 if (grcan_txspace(dma->tx.size, txwr, priv->eskbp))
1333 * priv->eskbp - the next slot for the driver to call can_put_echo_skb for
1336 * not reach priv->eskbp (within 1 message gap)
1341 * priv->eskbp reaches regs->txrd
1367 /* Reads of priv->eskbp and shut-downs of the queue needs to
1368 * be atomic towards the updates to priv->eskbp and wake-ups
1374 space = grcan_txspace(dma->tx.size, txwr, priv->eskbp);