This targets to uniformize the handling of the different GMAC versions in stmmac_main.c file and also tune-up the HW.
Currently there are some if/else conditions in the main source file which calls different callbacks depending on the ID of GMAC. With the introducion of a generic HW interface handling which automatically selects the GMAC callbacks to be used, it is now unpleasant to see if conditions in the main code because this should be completely agnostic of the GMAC version. This series removes most of these conditions. There are some if conditions that remain untouched but the callbacks handling are now uniformized. Tested in GMAC5, hope I didn't break any previous versions. David raised some rightfull constrains about the use of indirect callbacks in the code. I did iperf tests with and without patches 3-12 and the performance remained equal. I guess for 1Gb/s and because my setup has a powerfull processor these patches don't affect the performance. Perhaps someone using a SoC with a slow CPU could test this? Cc: David S. Miller <da...@davemloft.net> Cc: Joao Pinto <jpi...@synopsys.com> Cc: Vitor Soares <soa...@synopsys.com> Cc: Giuseppe Cavallaro <peppe.cavall...@st.com> Cc: Alexandre Torgue <alexandre.tor...@st.com> Jose Abreu (12): net: stmmac: Enable OSP for GMAC4 net: stmmac: Do not keep rearming the coalesce timer in stmmac_xmit net: stmmac: Let descriptor code set skbuff address net: stmmac: Let descriptor code clear the descriptor net: stmmac: Uniformize the use of dma_{rx/tx}_mode callbacks net: stmmac: Remove uneeded checks for GMAC version net: stmmac: Move PTP and MMC base address calculation to hwif.c net: stmmac: Uniformize the use of dma_init_* callbacks net: stmmac: Remove uneeded check for GMAC version in stmmac_xmit net: stmmac: Uniformize set_rx_owner() net: stmmac: Let descriptor code get skbuff address net: stmmac: Remove if condition by taking advantage of hwif return code drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 57 +++--- .../net/ethernet/stmicro/stmmac/dwmac1000_dma.c | 92 ++++++---- drivers/net/ethernet/stmicro/stmmac/dwmac100_dma.c | 35 +++-- drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c | 34 +++- drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c | 7 +- drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h | 1 - drivers/net/ethernet/stmicro/stmmac/enh_desc.c | 20 ++- drivers/net/ethernet/stmicro/stmmac/hwif.c | 34 ++++ drivers/net/ethernet/stmicro/stmmac/hwif.h | 27 ++- drivers/net/ethernet/stmicro/stmmac/norm_desc.c | 20 ++- drivers/net/ethernet/stmicro/stmmac/stmmac.h | 1 + drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 198 +++++++------------- 12 files changed, 304 insertions(+), 222 deletions(-)