All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Horman <horms@kernel.org>
To: Marc Kleine-Budde <mkl@pengutronix.de>
Cc: kernel@pengutronix.de,
	Vincent Mailhol <mailhol.vincent@wanadoo.fr>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Heiko Stuebner <heiko@sntech.de>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Elaine Zhang <zhangqing@rock-chips.com>,
	David Jander <david.jander@protonic.nl>,
	linux-can@vger.kernel.org, netdev@vger.kernel.org,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH can-next 12/21] can: rockchip_canfd: add TX PATH
Date: Tue, 30 Jul 2024 17:44:01 +0100	[thread overview]
Message-ID: <20240730164401.GD1967603@kernel.org> (raw)
In-Reply-To: <20240729-rockchip-canfd-v1-12-fa1250fd6be3@pengutronix.de>

On Mon, Jul 29, 2024 at 03:05:43PM +0200, Marc Kleine-Budde wrote:
> The IP core has a TX event FIFO. In other IP cores, this type of FIFO
> normally contains the event that a CAN frame has been successfully
> sent. However, the IP core on the rk3568v2 the FIFO also holds events
> of unsuccessful transmission attempts.
> 
> It turned out that the best way to work around this problem is to set
> the IP core to self-receive mode (RXSTX), filter out the self-received
> frames and insert them into the complete TX path.
> 
> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>

...

> diff --git a/drivers/net/can/rockchip/rockchip_canfd-tx.c b/drivers/net/can/rockchip/rockchip_canfd-tx.c

...

> +void rkcanfd_handle_tx_done_one(struct rkcanfd_priv *priv, const u32 ts,
> +				unsigned int *frame_len_p)
> +{
> +	struct net_device_stats *stats = &priv->ndev->stats;
> +	unsigned int tx_tail;
> +	struct sk_buff *skb;
> +
> +	tx_tail = rkcanfd_get_tx_tail(priv);
> +	skb = priv->can.echo_skb[tx_tail];

nit: skb is set but otherwise unused in this function.

> +	stats->tx_bytes +=
> +		can_rx_offload_get_echo_skb_queue_timestamp(&priv->offload,
> +							    tx_tail, ts,
> +							    frame_len_p);
> +	stats->tx_packets++;
> +}

...

WARNING: multiple messages have this Message-ID (diff)
From: Simon Horman <horms@kernel.org>
To: Marc Kleine-Budde <mkl@pengutronix.de>
Cc: kernel@pengutronix.de,
	Vincent Mailhol <mailhol.vincent@wanadoo.fr>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Heiko Stuebner <heiko@sntech.de>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Elaine Zhang <zhangqing@rock-chips.com>,
	David Jander <david.jander@protonic.nl>,
	linux-can@vger.kernel.org, netdev@vger.kernel.org,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH can-next 12/21] can: rockchip_canfd: add TX PATH
Date: Tue, 30 Jul 2024 17:44:01 +0100	[thread overview]
Message-ID: <20240730164401.GD1967603@kernel.org> (raw)
In-Reply-To: <20240729-rockchip-canfd-v1-12-fa1250fd6be3@pengutronix.de>

On Mon, Jul 29, 2024 at 03:05:43PM +0200, Marc Kleine-Budde wrote:
> The IP core has a TX event FIFO. In other IP cores, this type of FIFO
> normally contains the event that a CAN frame has been successfully
> sent. However, the IP core on the rk3568v2 the FIFO also holds events
> of unsuccessful transmission attempts.
> 
> It turned out that the best way to work around this problem is to set
> the IP core to self-receive mode (RXSTX), filter out the self-received
> frames and insert them into the complete TX path.
> 
> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>

...

> diff --git a/drivers/net/can/rockchip/rockchip_canfd-tx.c b/drivers/net/can/rockchip/rockchip_canfd-tx.c

...

> +void rkcanfd_handle_tx_done_one(struct rkcanfd_priv *priv, const u32 ts,
> +				unsigned int *frame_len_p)
> +{
> +	struct net_device_stats *stats = &priv->ndev->stats;
> +	unsigned int tx_tail;
> +	struct sk_buff *skb;
> +
> +	tx_tail = rkcanfd_get_tx_tail(priv);
> +	skb = priv->can.echo_skb[tx_tail];

nit: skb is set but otherwise unused in this function.

> +	stats->tx_bytes +=
> +		can_rx_offload_get_echo_skb_queue_timestamp(&priv->offload,
> +							    tx_tail, ts,
> +							    frame_len_p);
> +	stats->tx_packets++;
> +}

...

_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

  reply	other threads:[~2024-07-30 16:44 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-29 13:05 [PATCH can-next 00/21] can: rockchip_canfd: add support for CAN-FD IP core found on Rockchip RK3568 Marc Kleine-Budde
2024-07-29 13:05 ` Marc Kleine-Budde
2024-07-29 13:05 ` [PATCH can-next 01/21] dt-bindings: can: rockchip_canfd: add binding for rockchip CAN-FD controller Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde
2024-07-30 19:21   ` Rob Herring
2024-07-30 19:21     ` Rob Herring
2024-07-31  8:44     ` Marc Kleine-Budde
2024-07-31  8:44       ` Marc Kleine-Budde
2024-07-29 13:05 ` [PATCH can-next 02/21] arm64: dts: rockchip: add CAN-FD controller nodes to rk3568 Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde
2024-07-29 13:05 ` [PATCH can-next 03/21] arm64: dts: rockchip: mecsbc: add CAN0 and CAN1 interfaces Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde
2024-07-29 13:05 ` [PATCH can-next 04/21] can: rockchip_canfd: add driver for Rockchip CAN-FD controller Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde
2024-07-30 16:34   ` Simon Horman
2024-07-30 16:34     ` Simon Horman
2024-07-31  8:02     ` Marc Kleine-Budde
2024-07-31  8:02       ` Marc Kleine-Budde
2024-07-29 13:05 ` [PATCH can-next 05/21] can: rockchip_canfd: add quirks for errata workarounds Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde
2024-07-29 13:05 ` [PATCH can-next 06/21] can: rockchip_canfd: add quirk for broken CAN-FD support Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde
2024-07-29 13:05 ` [PATCH can-next 07/21] can: rockchip_canfd: add support for rk3568v3 Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde
2024-07-29 13:05 ` [PATCH can-next 08/21] can: rockchip_canfd: add notes about known issues Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde
2024-07-29 13:05 ` [PATCH can-next 09/21] can: rockchip_canfd: rkcanfd_handle_rx_int_one(): implement workaround for erratum 5: check for empty FIFO Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde
2024-07-29 13:05 ` [PATCH can-next 10/21] can: rockchip_canfd: rkcanfd_register_done(): add warning for erratum 5 Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde
2024-07-29 13:05 ` [PATCH can-next 11/21] can: rockchip_canfd: add functions to check if CAN-FD frames are equal Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde
2024-07-30 16:37   ` Simon Horman
2024-07-30 16:37     ` Simon Horman
2024-07-31  8:02     ` Marc Kleine-Budde
2024-07-31  8:02       ` Marc Kleine-Budde
2024-07-29 13:05 ` [PATCH can-next 12/21] can: rockchip_canfd: add TX PATH Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde
2024-07-30 16:44   ` Simon Horman [this message]
2024-07-30 16:44     ` Simon Horman
2024-07-31  8:01     ` Marc Kleine-Budde
2024-07-31  8:01       ` Marc Kleine-Budde
2024-07-29 13:05 ` [PATCH can-next 13/21] can: rockchip_canfd: implement workaround for erratum 6 Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde
2024-07-29 13:05 ` [PATCH can-next 14/21] can: rockchip_canfd: implement workaround for erratum 12 Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde
2024-07-29 13:05 ` [PATCH can-next 15/21] can: rockchip_canfd: rkcanfd_get_berr_counter_corrected(): work around broken {RX,TX}ERRORCNT register Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde
2024-07-29 13:05 ` [PATCH can-next 16/21] can: rockchip_canfd: add stats support for errata workarounds Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde
2024-07-29 13:05 ` [PATCH can-next 17/21] can: rockchip_canfd: prepare to use full TX-FIFO depth Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde
2024-07-29 13:05 ` [PATCH can-next 18/21] can: rockchip_canfd: enable full TX-FIFO depth of 2 Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde
2024-07-29 13:05 ` [PATCH can-next 19/21] can: rockchip_canfd: add hardware timestamping support Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde
2024-07-30 16:30   ` Simon Horman
2024-07-30 16:30     ` Simon Horman
2024-07-31  8:00     ` Marc Kleine-Budde
2024-07-31  8:00       ` Marc Kleine-Budde
2024-07-31  9:04       ` Simon Horman
2024-07-31  9:04         ` Simon Horman
2024-07-29 13:05 ` [PATCH can-next 20/21] can: rockchip_canfd: add support for CAN_CTRLMODE_LOOPBACK Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde
2024-07-29 13:05 ` [PATCH can-next 21/21] can: rockchip_canfd: add support for CAN_CTRLMODE_BERR_REPORTING Marc Kleine-Budde
2024-07-29 13:05   ` Marc Kleine-Budde

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=20240730164401.GD1967603@kernel.org \
    --to=horms@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=davem@davemloft.net \
    --cc=david.jander@protonic.nl \
    --cc=devicetree@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=heiko@sntech.de \
    --cc=kernel@pengutronix.de \
    --cc=krzk+dt@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-can@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=mailhol.vincent@wanadoo.fr \
    --cc=mkl@pengutronix.de \
    --cc=netdev@vger.kernel.org \
    --cc=p.zabel@pengutronix.de \
    --cc=pabeni@redhat.com \
    --cc=robh@kernel.org \
    --cc=zhangqing@rock-chips.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.