This a starting point for a cleanup and re-organization of stmmac. In this series we stop using hard-coded callbacks along the code and use instead helpers which are defined in a single place ("hwif.h").
This brings several advantages: 1) Less typing :) 2) Guaranteed function pointer check 3) More flexibility By 2) we stop using the repeated pattern of: if (priv->hw->mac->some_func) priv->hw->mac->some_func(...) I didn't check but I expect the final .ko will be bigger with this series because *all* of function pointers are checked. Anyway, I hope this can make the code more readable and more flexible now. Cc: David S. Miller <da...@davemloft.net> Cc: Joao Pinto <jpi...@synopsys.com> Cc: Giuseppe Cavallaro <peppe.cavall...@st.com> Cc: Alexandre Torgue <alexandre.tor...@st.com> Jose Abreu (5): net: stmmac: Switch stmmac_desc_ops to generic HW Interface Helpers net: stmmac: Switch stmmac_dma_ops to generic HW Interface Helpers net: stmmac: Switch stmmac_ops to generic HW Interface Helpers net: stmmac: Switch stmmac_hwtimestamp to generic HW Interface Helpers net: stmmac: Switch stmmac_mode_ops to generic HW Interface Helpers drivers/net/ethernet/stmicro/stmmac/chain_mode.c | 34 +- drivers/net/ethernet/stmicro/stmmac/common.h | 199 +--------- drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c | 4 +- drivers/net/ethernet/stmicro/stmmac/dwmac5.c | 19 +- drivers/net/ethernet/stmicro/stmmac/dwmac5.h | 6 +- drivers/net/ethernet/stmicro/stmmac/enh_desc.c | 4 +- drivers/net/ethernet/stmicro/stmmac/hwif.h | 421 ++++++++++++++++++++ drivers/net/ethernet/stmicro/stmmac/norm_desc.c | 4 +- drivers/net/ethernet/stmicro/stmmac/ring_mode.c | 39 +- .../net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 82 ++-- .../net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c | 34 +- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 439 +++++++++------------ drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c | 18 +- 13 files changed, 726 insertions(+), 577 deletions(-) create mode 100644 drivers/net/ethernet/stmicro/stmmac/hwif.h -- 2.9.3