mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Markus Schneider-Pargmann <msp@baylibre.com>
To: Chandrasekar Ramakrishnan <rcsekar@samsung.com>,
	Marc Kleine-Budde <mkl@pengutronix.de>,
	Wolfgang Grandegger <wg@grandegger.com>
Cc: linux-can@vger.kernel.org, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Markus Schneider-Pargmann <msp@baylibre.com>
Subject: [PATCH 08/15] can: m_can: Count TXE FIFO getidx in the driver
Date: Wed, 16 Nov 2022 21:53:01 +0100	[thread overview]
Message-ID: <20221116205308.2996556-9-msp@baylibre.com> (raw)
In-Reply-To: <20221116205308.2996556-1-msp@baylibre.com>

The getindex simply increases by one for every iteration. There is no
need to get the current getidx every time from a register. Instead we
can just count and wrap if necessary.

Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
---
 drivers/net/can/m_can/m_can.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c
index 1d15beaea920..27095a7254dd 100644
--- a/drivers/net/can/m_can/m_can.c
+++ b/drivers/net/can/m_can/m_can.c
@@ -1021,15 +1021,13 @@ static int m_can_echo_tx_event(struct net_device *dev)
 
 	/* Get Tx Event fifo element count */
 	txe_count = FIELD_GET(TXEFS_EFFL_MASK, m_can_txefs);
+	fgi = FIELD_GET(TXEFS_EFGI_MASK, m_can_txefs);
 
 	/* Get and process all sent elements */
 	for (i = 0; i < txe_count; i++) {
 		u32 txe, timestamp = 0;
 		int err;
 
-		/* retrieve get index */
-		fgi = FIELD_GET(TXEFS_EFGI_MASK, m_can_read(cdev, M_CAN_TXEFS));
-
 		/* get message marker, timestamp */
 		err = m_can_txe_fifo_read(cdev, fgi, 4, &txe);
 		if (err) {
@@ -1043,6 +1041,7 @@ static int m_can_echo_tx_event(struct net_device *dev)
 		/* ack txe element */
 		m_can_write(cdev, M_CAN_TXEFA, FIELD_PREP(TXEFA_EFAI_MASK,
 							  fgi));
+		fgi = (++fgi >= cdev->mcfg[MRAM_TXE].num ? 0 : fgi);
 		--cdev->tx_fifo_in_flight;
 
 		/* update stats */
-- 
2.38.1


  parent reply	other threads:[~2022-11-16 20:54 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-16 20:52 [PATCH 00/15] can: m_can: Optimizations for tcan and peripheral chips Markus Schneider-Pargmann
2022-11-16 20:52 ` [PATCH 01/15] can: m_can: Eliminate double read of TXFQS in tx_handler Markus Schneider-Pargmann
2022-11-16 20:52 ` [PATCH 02/15] can: m_can: Wakeup net queue once tx was issued Markus Schneider-Pargmann
2022-11-30 17:21   ` Marc Kleine-Budde
2022-12-01  8:43     ` Markus Schneider-Pargmann
2022-12-01  9:16       ` Marc Kleine-Budde
2022-12-01 16:49         ` Markus Schneider-Pargmann
2022-12-02  9:16           ` Marc Kleine-Budde
2022-12-14  9:14     ` Markus Schneider-Pargmann
2022-12-14  9:18       ` Marc Kleine-Budde
2022-12-14  9:22         ` Marc Kleine-Budde
2022-12-14 10:15           ` Vincent MAILHOL
2022-12-14 10:35             ` Markus Schneider-Pargmann
2022-12-15  9:31               ` Markus Schneider-Pargmann
2022-12-16  4:40                 ` Vincent MAILHOL
2022-12-14 10:18           ` Markus Schneider-Pargmann
2022-12-02 13:53   ` Marc Kleine-Budde
2022-11-16 20:52 ` [PATCH 03/15] can: m_can: Cache tx putidx and transmits in flight Markus Schneider-Pargmann
2022-12-01 11:14   ` Marc Kleine-Budde
2022-12-02  8:37     ` Markus Schneider-Pargmann
2022-12-02 14:46       ` Marc Kleine-Budde
2022-12-13 17:13         ` Markus Schneider-Pargmann
2022-12-13 19:17           ` Marc Kleine-Budde
2022-12-14  8:32             ` Markus Schneider-Pargmann
2022-11-16 20:52 ` [PATCH 04/15] can: m_can: Use transmit event FIFO watermark level interrupt Markus Schneider-Pargmann
2022-11-30 17:17   ` Marc Kleine-Budde
2022-12-01  8:25     ` Markus Schneider-Pargmann
2022-12-01  9:05       ` Marc Kleine-Budde
2022-12-01 10:12         ` Markus Schneider-Pargmann
2022-12-01 11:00           ` Marc Kleine-Budde
2022-12-01 16:59             ` Markus Schneider-Pargmann
2022-12-02  9:23               ` Marc Kleine-Budde
2022-12-02  9:43                 ` Markus Schneider-Pargmann
2022-12-02 14:03                   ` Marc Kleine-Budde
2022-12-13 17:19               ` Markus Schneider-Pargmann
2022-12-13 19:18                 ` Marc Kleine-Budde
2022-11-16 20:52 ` [PATCH 05/15] can: m_can: Disable unused interrupts Markus Schneider-Pargmann
2022-11-16 20:52 ` [PATCH 06/15] can: m_can: Avoid reading irqstatus twice Markus Schneider-Pargmann
2022-11-16 20:53 ` [PATCH 07/15] can: m_can: Read register PSR only on error Markus Schneider-Pargmann
2022-11-16 20:53 ` Markus Schneider-Pargmann [this message]
2022-11-16 20:53 ` [PATCH 09/15] can: m_can: Count read getindex in the driver Markus Schneider-Pargmann
2022-11-16 20:53 ` [PATCH 10/15] can: m_can: Batch acknowledge rx fifo Markus Schneider-Pargmann
2022-11-16 20:53 ` [PATCH 11/15] can: m_can: Batch acknowledge transmit events Markus Schneider-Pargmann
2022-11-16 20:53 ` [PATCH 12/15] can: tcan4x5x: Remove invalid write in clear_interrupts Markus Schneider-Pargmann
2022-12-02 14:17   ` Marc Kleine-Budde
2022-11-16 20:53 ` [PATCH 13/15] can: tcan4x5x: Fix use of register error status mask Markus Schneider-Pargmann
2022-12-02 14:19   ` Marc Kleine-Budde
2022-11-16 20:53 ` [PATCH 14/15] can: tcan4x5x: Fix register range of first block Markus Schneider-Pargmann
2022-12-02 14:28   ` Marc Kleine-Budde
2022-12-05  9:30     ` Markus Schneider-Pargmann
2022-12-05  9:44       ` Marc Kleine-Budde
2022-12-05  9:55         ` Markus Schneider-Pargmann
2022-11-16 20:53 ` [PATCH 15/15] can: tcan4x5x: Specify separate read/write ranges Markus Schneider-Pargmann
2022-12-02 14:03 ` [PATCH 00/15] can: m_can: Optimizations for tcan and peripheral chips Marc Kleine-Budde
2022-12-05  9:09   ` Markus Schneider-Pargmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221116205308.2996556-9-msp@baylibre.com \
    --to=msp@baylibre.com \
    --cc=linux-can@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mkl@pengutronix.de \
    --cc=netdev@vger.kernel.org \
    --cc=rcsekar@samsung.com \
    --cc=wg@grandegger.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®