mbox series

[net-next,v2,0/6] ravb: Align Rx descriptor setup and maintenance

Message ID 20240227223305.910452-1-niklas.soderlund+renesas@ragnatech.se (mailing list archive)
Headers show
Series ravb: Align Rx descriptor setup and maintenance | expand

Message

Niklas Söderlund Feb. 27, 2024, 10:32 p.m. UTC
Hello,

When RZ/G2L support was added the Rx code path was split in two, one to
support R-Car and one to support RZ/G2L. One reason for this is that
R-Car uses the extended Rx descriptor format, while RZ/G2L uses the
normal descriptor format.

In many aspects this is not needed as the extended descriptor format is
just a normal descriptor with extra metadata (timestamsp) appended. And
the R-Car SoCs can also use normal descriptors if hardware timestamps
where not desired. This split has lead to RZ/G2L gaining support for
split descriptors in the Rx path while R-Car still lacks this.

This series is the first step in trying to merge the R-Car and RZ/G2L Rx
paths so features and bugs corrected in one will benefit the other.

The first patch in the series clarify that the driver now supports
either normal or extended descriptors, not both at the same time by
grouping them in a union. This is the foundation that later patches will
build on the align the two Rx paths.

Patch 2-5 deals with correcting small issues in the Rx frame and
descriptor sizes that either where incorrect at the time they were added
in 2017 (my bad) or concepts built on-top of this initial incorrect
design.

While finally patch 6 merges the R-Car and RZ/G2L for Rx descriptor
setup and maintenance.

When this work has landed I plan to follow up with more work aligning
the rest of the Rx code paths and hopefully bring split descriptor
support to the R-Car SoCs.

Niklas Söderlund (6):
  ravb: Group descriptor types used in Rx ring
  ravb: Make it clear the information relates to maximum frame size
  ravb: Create helper to allocate skb and align it
  ravb: Use the max frame size from hardware info for RZ/G2L
  ravb: Move maximum Rx descriptor data usage to info struct
  ravb: Unify Rx ring maintenance code paths

 drivers/net/ethernet/renesas/ravb.h      |  20 +--
 drivers/net/ethernet/renesas/ravb_main.c | 210 ++++++++---------------
 2 files changed, 83 insertions(+), 147 deletions(-)

Comments

Sergey Shtylyov Feb. 28, 2024, 6:04 p.m. UTC | #1
On 2/28/24 1:32 AM, Niklas Söderlund wrote:

> Hello,
> 
> When RZ/G2L support was added the Rx code path was split in two, one to
> support R-Car and one to support RZ/G2L. One reason for this is that
> R-Car uses the extended Rx descriptor format, while RZ/G2L uses the
> normal descriptor format.
> 
> In many aspects this is not needed as the extended descriptor format is
> just a normal descriptor with extra metadata (timestamsp) appended. And
> the R-Car SoCs can also use normal descriptors if hardware timestamps
> where not desired. This split has lead to RZ/G2L gaining support for

   s/where/were/, s/lead/led/.

> split descriptors in the Rx path while R-Car still lacks this.
> 
> This series is the first step in trying to merge the R-Car and RZ/G2L Rx
> paths so features and bugs corrected in one will benefit the other.
> 
> The first patch in the series clarify that the driver now supports

   s/clarify/clarifies/.

> either normal or extended descriptors, not both at the same time by
> grouping them in a union. This is the foundation that later patches will
> build on the align the two Rx paths.

   Aligning?

> Patch 2-5 deals with correcting small issues in the Rx frame and

   Patches 2-5.

> descriptor sizes that either where incorrect at the time they were added

   s/where/were/.

> in 2017 (my bad) or concepts built on-top of this initial incorrect
> design.
> 
> While finally patch 6 merges the R-Car and RZ/G2L for Rx descriptor
> setup and maintenance.
> 
> When this work has landed I plan to follow up with more work aligning
> the rest of the Rx code paths and hopefully bring split descriptor
> support to the R-Car SoCs.
> 
> Niklas Söderlund (6):
>   ravb: Group descriptor types used in Rx ring
>   ravb: Make it clear the information relates to maximum frame size
>   ravb: Create helper to allocate skb and align it
>   ravb: Use the max frame size from hardware info for RZ/G2L
>   ravb: Move maximum Rx descriptor data usage to info struct
>   ravb: Unify Rx ring maintenance code paths
> 
>  drivers/net/ethernet/renesas/ravb.h      |  20 +--
>  drivers/net/ethernet/renesas/ravb_main.c | 210 ++++++++---------------
>  2 files changed, 83 insertions(+), 147 deletions(-)

   Dave, Jakub, et al, please don't merge this patchset without my review!
I'm hoping I can get to reviewing it closer to this weekend...

MBR, Sergey