123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550 |
- From 5d8d05fbf804b4485646d39551ac27452e45afd3 Mon Sep 17 00:00:00 2001
- From: Lorenzo Bianconi <[email protected]>
- Date: Tue, 25 Jul 2023 01:52:02 +0100
- Subject: [PATCH 099/250] net: ethernet: mtk_eth_soc: add version in
- mtk_soc_data
- Introduce version field in mtk_soc_data data structure in order to
- make mtk_eth driver easier to maintain for chipset configuration
- codebase. Get rid of MTK_NETSYS_V2 bit in chip capabilities.
- This is a preliminary patch to introduce support for MT7988 SoC.
- Signed-off-by: Lorenzo Bianconi <[email protected]>
- Signed-off-by: Daniel Golle <[email protected]>
- Link: https://lore.kernel.org/r/e52fae302ca135436e5cdd26d38d87be2da63055.1690246066.git.daniel@makrotopia.org
- Signed-off-by: Jakub Kicinski <[email protected]>
- ---
- drivers/net/ethernet/mediatek/mtk_eth_soc.c | 55 +++++++++++--------
- drivers/net/ethernet/mediatek/mtk_eth_soc.h | 36 +++++++-----
- drivers/net/ethernet/mediatek/mtk_ppe.c | 18 +++---
- .../net/ethernet/mediatek/mtk_ppe_offload.c | 2 +-
- drivers/net/ethernet/mediatek/mtk_wed.c | 4 +-
- 5 files changed, 66 insertions(+), 49 deletions(-)
- --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
- +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
- @@ -580,7 +580,7 @@ static void mtk_set_queue_speed(struct m
- FIELD_PREP(MTK_QTX_SCH_MIN_RATE_MAN, 1) |
- FIELD_PREP(MTK_QTX_SCH_MIN_RATE_EXP, 4) |
- MTK_QTX_SCH_LEAKY_BUCKET_SIZE;
- - if (!MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v1(eth))
- val |= MTK_QTX_SCH_LEAKY_BUCKET_EN;
-
- if (IS_ENABLED(CONFIG_SOC_MT7621)) {
- @@ -955,7 +955,7 @@ static bool mtk_rx_get_desc(struct mtk_e
- rxd->rxd1 = READ_ONCE(dma_rxd->rxd1);
- rxd->rxd3 = READ_ONCE(dma_rxd->rxd3);
- rxd->rxd4 = READ_ONCE(dma_rxd->rxd4);
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
- + if (mtk_is_netsys_v2_or_greater(eth)) {
- rxd->rxd5 = READ_ONCE(dma_rxd->rxd5);
- rxd->rxd6 = READ_ONCE(dma_rxd->rxd6);
- }
- @@ -1013,7 +1013,7 @@ static int mtk_init_fq_dma(struct mtk_et
-
- txd->txd3 = TX_DMA_PLEN0(MTK_QDMA_PAGE_SIZE);
- txd->txd4 = 0;
- - if (MTK_HAS_CAPS(soc->caps, MTK_NETSYS_V2)) {
- + if (mtk_is_netsys_v2_or_greater(eth)) {
- txd->txd5 = 0;
- txd->txd6 = 0;
- txd->txd7 = 0;
- @@ -1204,7 +1204,7 @@ static void mtk_tx_set_dma_desc(struct n
- struct mtk_mac *mac = netdev_priv(dev);
- struct mtk_eth *eth = mac->hw;
-
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v2_or_greater(eth))
- mtk_tx_set_dma_desc_v2(dev, txd, info);
- else
- mtk_tx_set_dma_desc_v1(dev, txd, info);
- @@ -1511,7 +1511,7 @@ static void mtk_update_rx_cpu_idx(struct
-
- static bool mtk_page_pool_enabled(struct mtk_eth *eth)
- {
- - return MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2);
- + return eth->soc->version == 2;
- }
-
- static struct page_pool *mtk_create_page_pool(struct mtk_eth *eth,
- @@ -1853,7 +1853,7 @@ static int mtk_poll_rx(struct napi_struc
- break;
-
- /* find out which mac the packet come from. values start at 1 */
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v2_or_greater(eth))
- mac = RX_DMA_GET_SPORT_V2(trxd.rxd5) - 1;
- else if (!MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628) &&
- !(trxd.rxd4 & RX_DMA_SPECIAL_TAG))
- @@ -1949,7 +1949,7 @@ static int mtk_poll_rx(struct napi_struc
- skb->dev = netdev;
- bytes += skb->len;
-
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
- + if (mtk_is_netsys_v2_or_greater(eth)) {
- reason = FIELD_GET(MTK_RXD5_PPE_CPU_REASON, trxd.rxd5);
- hash = trxd.rxd5 & MTK_RXD5_FOE_ENTRY;
- if (hash != MTK_RXD5_FOE_ENTRY)
- @@ -1974,8 +1974,8 @@ static int mtk_poll_rx(struct napi_struc
- /* When using VLAN untagging in combination with DSA, the
- * hardware treats the MTK special tag as a VLAN and untags it.
- */
- - if (!MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2) &&
- - (trxd.rxd2 & RX_DMA_VTAG) && netdev_uses_dsa(netdev)) {
- + if (mtk_is_netsys_v1(eth) && (trxd.rxd2 & RX_DMA_VTAG) &&
- + netdev_uses_dsa(netdev)) {
- unsigned int port = RX_DMA_VPID(trxd.rxd3) & GENMASK(2, 0);
-
- if (port < ARRAY_SIZE(eth->dsa_meta) &&
- @@ -2285,7 +2285,7 @@ static int mtk_tx_alloc(struct mtk_eth *
- txd->txd2 = next_ptr;
- txd->txd3 = TX_DMA_LS0 | TX_DMA_OWNER_CPU;
- txd->txd4 = 0;
- - if (MTK_HAS_CAPS(soc->caps, MTK_NETSYS_V2)) {
- + if (mtk_is_netsys_v2_or_greater(eth)) {
- txd->txd5 = 0;
- txd->txd6 = 0;
- txd->txd7 = 0;
- @@ -2338,14 +2338,14 @@ static int mtk_tx_alloc(struct mtk_eth *
- FIELD_PREP(MTK_QTX_SCH_MIN_RATE_MAN, 1) |
- FIELD_PREP(MTK_QTX_SCH_MIN_RATE_EXP, 4) |
- MTK_QTX_SCH_LEAKY_BUCKET_SIZE;
- - if (!MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v1(eth))
- val |= MTK_QTX_SCH_LEAKY_BUCKET_EN;
- mtk_w32(eth, val, soc->reg_map->qdma.qtx_sch + ofs);
- ofs += MTK_QTX_OFFSET;
- }
- val = MTK_QDMA_TX_SCH_MAX_WFQ | (MTK_QDMA_TX_SCH_MAX_WFQ << 16);
- mtk_w32(eth, val, soc->reg_map->qdma.tx_sch_rate);
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v2_or_greater(eth))
- mtk_w32(eth, val, soc->reg_map->qdma.tx_sch_rate + 4);
- } else {
- mtk_w32(eth, ring->phys_pdma, MT7628_TX_BASE_PTR0);
- @@ -2474,7 +2474,7 @@ static int mtk_rx_alloc(struct mtk_eth *
-
- rxd->rxd3 = 0;
- rxd->rxd4 = 0;
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
- + if (mtk_is_netsys_v2_or_greater(eth)) {
- rxd->rxd5 = 0;
- rxd->rxd6 = 0;
- rxd->rxd7 = 0;
- @@ -3025,7 +3025,7 @@ static int mtk_start_dma(struct mtk_eth
- MTK_TX_BT_32DWORDS | MTK_NDP_CO_PRO |
- MTK_RX_2B_OFFSET | MTK_TX_WB_DDONE;
-
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v2_or_greater(eth))
- val |= MTK_MUTLI_CNT | MTK_RESV_BUF |
- MTK_WCOMP_EN | MTK_DMAD_WR_WDONE |
- MTK_CHK_DDONE_EN | MTK_LEAKY_BUCKET_EN;
- @@ -3167,7 +3167,7 @@ static int mtk_open(struct net_device *d
- phylink_start(mac->phylink);
- netif_tx_start_all_queues(dev);
-
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v2_or_greater(eth))
- return 0;
-
- if (mtk_uses_dsa(dev) && !eth->prog) {
- @@ -3432,7 +3432,7 @@ static void mtk_hw_reset(struct mtk_eth
- {
- u32 val;
-
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
- + if (mtk_is_netsys_v2_or_greater(eth)) {
- regmap_write(eth->ethsys, ETHSYS_FE_RST_CHK_IDLE_EN, 0);
- val = RSTCTRL_PPE0_V2;
- } else {
- @@ -3444,7 +3444,7 @@ static void mtk_hw_reset(struct mtk_eth
-
- ethsys_reset(eth, RSTCTRL_ETH | RSTCTRL_FE | val);
-
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v2_or_greater(eth))
- regmap_write(eth->ethsys, ETHSYS_FE_RST_CHK_IDLE_EN,
- 0x3ffffff);
- }
- @@ -3470,7 +3470,7 @@ static void mtk_hw_warm_reset(struct mtk
- return;
- }
-
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v2_or_greater(eth))
- rst_mask = RSTCTRL_ETH | RSTCTRL_PPE0_V2;
- else
- rst_mask = RSTCTRL_ETH | RSTCTRL_PPE0;
- @@ -3640,7 +3640,7 @@ static int mtk_hw_init(struct mtk_eth *e
- else
- mtk_hw_reset(eth);
-
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
- + if (mtk_is_netsys_v2_or_greater(eth)) {
- /* Set FE to PDMAv2 if necessary */
- val = mtk_r32(eth, MTK_FE_GLO_MISC);
- mtk_w32(eth, val | BIT(4), MTK_FE_GLO_MISC);
- @@ -3677,7 +3677,7 @@ static int mtk_hw_init(struct mtk_eth *e
- */
- val = mtk_r32(eth, MTK_CDMQ_IG_CTRL);
- mtk_w32(eth, val | MTK_CDMQ_STAG_EN, MTK_CDMQ_IG_CTRL);
- - if (!MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
- + if (mtk_is_netsys_v1(eth)) {
- val = mtk_r32(eth, MTK_CDMP_IG_CTRL);
- mtk_w32(eth, val | MTK_CDMP_STAG_EN, MTK_CDMP_IG_CTRL);
-
- @@ -3699,7 +3699,7 @@ static int mtk_hw_init(struct mtk_eth *e
- mtk_w32(eth, eth->soc->txrx.rx_irq_done_mask, reg_map->qdma.int_grp + 4);
- mtk_w32(eth, 0x21021000, MTK_FE_INT_GRP);
-
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
- + if (mtk_is_netsys_v2_or_greater(eth)) {
- /* PSE should not drop port8 and port9 packets from WDMA Tx */
- mtk_w32(eth, 0x00000300, PSE_DROP_CFG);
-
- @@ -4488,7 +4488,7 @@ static int mtk_probe(struct platform_dev
- }
- }
-
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
- + if (mtk_is_netsys_v2_or_greater(eth)) {
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (!res) {
- err = -EINVAL;
- @@ -4596,9 +4596,8 @@ static int mtk_probe(struct platform_dev
- }
-
- if (eth->soc->offload_version) {
- - u32 num_ppe;
- + u32 num_ppe = mtk_is_netsys_v2_or_greater(eth) ? 2 : 1;
-
- - num_ppe = MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2) ? 2 : 1;
- num_ppe = min_t(u32, ARRAY_SIZE(eth->ppe), num_ppe);
- for (i = 0; i < num_ppe; i++) {
- u32 ppe_addr = eth->soc->reg_map->ppe_base + i * 0x400;
- @@ -4690,6 +4689,7 @@ static const struct mtk_soc_data mt2701_
- .hw_features = MTK_HW_FEATURES,
- .required_clks = MT7623_CLKS_BITMAP,
- .required_pctl = true,
- + .version = 1,
- .txrx = {
- .txd_size = sizeof(struct mtk_tx_dma),
- .rxd_size = sizeof(struct mtk_rx_dma),
- @@ -4706,6 +4706,7 @@ static const struct mtk_soc_data mt7621_
- .hw_features = MTK_HW_FEATURES,
- .required_clks = MT7621_CLKS_BITMAP,
- .required_pctl = false,
- + .version = 1,
- .offload_version = 1,
- .hash_offset = 2,
- .foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
- @@ -4726,6 +4727,7 @@ static const struct mtk_soc_data mt7622_
- .hw_features = MTK_HW_FEATURES,
- .required_clks = MT7622_CLKS_BITMAP,
- .required_pctl = false,
- + .version = 1,
- .offload_version = 2,
- .hash_offset = 2,
- .has_accounting = true,
- @@ -4746,6 +4748,7 @@ static const struct mtk_soc_data mt7623_
- .hw_features = MTK_HW_FEATURES,
- .required_clks = MT7623_CLKS_BITMAP,
- .required_pctl = true,
- + .version = 1,
- .offload_version = 1,
- .hash_offset = 2,
- .foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
- @@ -4768,6 +4771,7 @@ static const struct mtk_soc_data mt7629_
- .required_clks = MT7629_CLKS_BITMAP,
- .required_pctl = false,
- .has_accounting = true,
- + .version = 1,
- .txrx = {
- .txd_size = sizeof(struct mtk_tx_dma),
- .rxd_size = sizeof(struct mtk_rx_dma),
- @@ -4785,6 +4789,7 @@ static const struct mtk_soc_data mt7981_
- .hw_features = MTK_HW_FEATURES,
- .required_clks = MT7981_CLKS_BITMAP,
- .required_pctl = false,
- + .version = 2,
- .offload_version = 2,
- .hash_offset = 4,
- .has_accounting = true,
- @@ -4806,6 +4811,7 @@ static const struct mtk_soc_data mt7986_
- .hw_features = MTK_HW_FEATURES,
- .required_clks = MT7986_CLKS_BITMAP,
- .required_pctl = false,
- + .version = 2,
- .offload_version = 2,
- .hash_offset = 4,
- .has_accounting = true,
- @@ -4826,6 +4832,7 @@ static const struct mtk_soc_data rt5350_
- .hw_features = MTK_HW_FEATURES_MT7628,
- .required_clks = MT7628_CLKS_BITMAP,
- .required_pctl = false,
- + .version = 1,
- .txrx = {
- .txd_size = sizeof(struct mtk_tx_dma),
- .rxd_size = sizeof(struct mtk_rx_dma),
- --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
- +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
- @@ -820,7 +820,6 @@ enum mkt_eth_capabilities {
- MTK_SHARED_INT_BIT,
- MTK_TRGMII_MT7621_CLK_BIT,
- MTK_QDMA_BIT,
- - MTK_NETSYS_V2_BIT,
- MTK_SOC_MT7628_BIT,
- MTK_RSTCTRL_PPE1_BIT,
- MTK_U3_COPHY_V2_BIT,
- @@ -855,7 +854,6 @@ enum mkt_eth_capabilities {
- #define MTK_SHARED_INT BIT(MTK_SHARED_INT_BIT)
- #define MTK_TRGMII_MT7621_CLK BIT(MTK_TRGMII_MT7621_CLK_BIT)
- #define MTK_QDMA BIT(MTK_QDMA_BIT)
- -#define MTK_NETSYS_V2 BIT(MTK_NETSYS_V2_BIT)
- #define MTK_SOC_MT7628 BIT(MTK_SOC_MT7628_BIT)
- #define MTK_RSTCTRL_PPE1 BIT(MTK_RSTCTRL_PPE1_BIT)
- #define MTK_U3_COPHY_V2 BIT(MTK_U3_COPHY_V2_BIT)
- @@ -934,11 +932,11 @@ enum mkt_eth_capabilities {
- #define MT7981_CAPS (MTK_GMAC1_SGMII | MTK_GMAC2_SGMII | MTK_GMAC2_GEPHY | \
- MTK_MUX_GMAC12_TO_GEPHY_SGMII | MTK_QDMA | \
- MTK_MUX_U3_GMAC2_TO_QPHY | MTK_U3_COPHY_V2 | \
- - MTK_NETSYS_V2 | MTK_RSTCTRL_PPE1)
- + MTK_RSTCTRL_PPE1)
-
- #define MT7986_CAPS (MTK_GMAC1_SGMII | MTK_GMAC2_SGMII | \
- MTK_MUX_GMAC12_TO_GEPHY_SGMII | MTK_QDMA | \
- - MTK_NETSYS_V2 | MTK_RSTCTRL_PPE1)
- + MTK_RSTCTRL_PPE1)
-
- struct mtk_tx_dma_desc_info {
- dma_addr_t addr;
- @@ -1009,6 +1007,7 @@ struct mtk_reg_map {
- * @required_pctl A bool value to show whether the SoC requires
- * the extra setup for those pins used by GMAC.
- * @hash_offset Flow table hash offset.
- + * @version SoC version.
- * @foe_entry_size Foe table entry size.
- * @has_accounting Bool indicating support for accounting of
- * offloaded flows.
- @@ -1027,6 +1026,7 @@ struct mtk_soc_data {
- bool required_pctl;
- u8 offload_version;
- u8 hash_offset;
- + u8 version;
- u16 foe_entry_size;
- netdev_features_t hw_features;
- bool has_accounting;
- @@ -1183,6 +1183,16 @@ struct mtk_mac {
- /* the struct describing the SoC. these are declared in the soc_xyz.c files */
- extern const struct of_device_id of_mtk_match[];
-
- +static inline bool mtk_is_netsys_v1(struct mtk_eth *eth)
- +{
- + return eth->soc->version == 1;
- +}
- +
- +static inline bool mtk_is_netsys_v2_or_greater(struct mtk_eth *eth)
- +{
- + return eth->soc->version > 1;
- +}
- +
- static inline struct mtk_foe_entry *
- mtk_foe_get_entry(struct mtk_ppe *ppe, u16 hash)
- {
- @@ -1193,7 +1203,7 @@ mtk_foe_get_entry(struct mtk_ppe *ppe, u
-
- static inline u32 mtk_get_ib1_ts_mask(struct mtk_eth *eth)
- {
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v2_or_greater(eth))
- return MTK_FOE_IB1_BIND_TIMESTAMP_V2;
-
- return MTK_FOE_IB1_BIND_TIMESTAMP;
- @@ -1201,7 +1211,7 @@ static inline u32 mtk_get_ib1_ts_mask(st
-
- static inline u32 mtk_get_ib1_ppoe_mask(struct mtk_eth *eth)
- {
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v2_or_greater(eth))
- return MTK_FOE_IB1_BIND_PPPOE_V2;
-
- return MTK_FOE_IB1_BIND_PPPOE;
- @@ -1209,7 +1219,7 @@ static inline u32 mtk_get_ib1_ppoe_mask(
-
- static inline u32 mtk_get_ib1_vlan_tag_mask(struct mtk_eth *eth)
- {
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v2_or_greater(eth))
- return MTK_FOE_IB1_BIND_VLAN_TAG_V2;
-
- return MTK_FOE_IB1_BIND_VLAN_TAG;
- @@ -1217,7 +1227,7 @@ static inline u32 mtk_get_ib1_vlan_tag_m
-
- static inline u32 mtk_get_ib1_vlan_layer_mask(struct mtk_eth *eth)
- {
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v2_or_greater(eth))
- return MTK_FOE_IB1_BIND_VLAN_LAYER_V2;
-
- return MTK_FOE_IB1_BIND_VLAN_LAYER;
- @@ -1225,7 +1235,7 @@ static inline u32 mtk_get_ib1_vlan_layer
-
- static inline u32 mtk_prep_ib1_vlan_layer(struct mtk_eth *eth, u32 val)
- {
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v2_or_greater(eth))
- return FIELD_PREP(MTK_FOE_IB1_BIND_VLAN_LAYER_V2, val);
-
- return FIELD_PREP(MTK_FOE_IB1_BIND_VLAN_LAYER, val);
- @@ -1233,7 +1243,7 @@ static inline u32 mtk_prep_ib1_vlan_laye
-
- static inline u32 mtk_get_ib1_vlan_layer(struct mtk_eth *eth, u32 val)
- {
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v2_or_greater(eth))
- return FIELD_GET(MTK_FOE_IB1_BIND_VLAN_LAYER_V2, val);
-
- return FIELD_GET(MTK_FOE_IB1_BIND_VLAN_LAYER, val);
- @@ -1241,7 +1251,7 @@ static inline u32 mtk_get_ib1_vlan_layer
-
- static inline u32 mtk_get_ib1_pkt_type_mask(struct mtk_eth *eth)
- {
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v2_or_greater(eth))
- return MTK_FOE_IB1_PACKET_TYPE_V2;
-
- return MTK_FOE_IB1_PACKET_TYPE;
- @@ -1249,7 +1259,7 @@ static inline u32 mtk_get_ib1_pkt_type_m
-
- static inline u32 mtk_get_ib1_pkt_type(struct mtk_eth *eth, u32 val)
- {
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v2_or_greater(eth))
- return FIELD_GET(MTK_FOE_IB1_PACKET_TYPE_V2, val);
-
- return FIELD_GET(MTK_FOE_IB1_PACKET_TYPE, val);
- @@ -1257,7 +1267,7 @@ static inline u32 mtk_get_ib1_pkt_type(s
-
- static inline u32 mtk_get_ib2_multicast_mask(struct mtk_eth *eth)
- {
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v2_or_greater(eth))
- return MTK_FOE_IB2_MULTICAST_V2;
-
- return MTK_FOE_IB2_MULTICAST;
- --- a/drivers/net/ethernet/mediatek/mtk_ppe.c
- +++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
- @@ -207,7 +207,7 @@ int mtk_foe_entry_prepare(struct mtk_eth
-
- memset(entry, 0, sizeof(*entry));
-
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
- + if (mtk_is_netsys_v2_or_greater(eth)) {
- val = FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_BIND) |
- FIELD_PREP(MTK_FOE_IB1_PACKET_TYPE_V2, type) |
- FIELD_PREP(MTK_FOE_IB1_UDP, l4proto == IPPROTO_UDP) |
- @@ -271,7 +271,7 @@ int mtk_foe_entry_set_pse_port(struct mt
- u32 *ib2 = mtk_foe_entry_ib2(eth, entry);
- u32 val = *ib2;
-
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
- + if (mtk_is_netsys_v2_or_greater(eth)) {
- val &= ~MTK_FOE_IB2_DEST_PORT_V2;
- val |= FIELD_PREP(MTK_FOE_IB2_DEST_PORT_V2, port);
- } else {
- @@ -422,7 +422,7 @@ int mtk_foe_entry_set_wdma(struct mtk_et
- struct mtk_foe_mac_info *l2 = mtk_foe_entry_l2(eth, entry);
- u32 *ib2 = mtk_foe_entry_ib2(eth, entry);
-
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
- + if (mtk_is_netsys_v2_or_greater(eth)) {
- *ib2 &= ~MTK_FOE_IB2_PORT_MG_V2;
- *ib2 |= FIELD_PREP(MTK_FOE_IB2_RX_IDX, txq) |
- MTK_FOE_IB2_WDMA_WINFO_V2;
- @@ -446,7 +446,7 @@ int mtk_foe_entry_set_queue(struct mtk_e
- {
- u32 *ib2 = mtk_foe_entry_ib2(eth, entry);
-
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
- + if (mtk_is_netsys_v2_or_greater(eth)) {
- *ib2 &= ~MTK_FOE_IB2_QID_V2;
- *ib2 |= FIELD_PREP(MTK_FOE_IB2_QID_V2, queue);
- *ib2 |= MTK_FOE_IB2_PSE_QOS_V2;
- @@ -601,7 +601,7 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
- struct mtk_foe_entry *hwe;
- u32 val;
-
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
- + if (mtk_is_netsys_v2_or_greater(eth)) {
- entry->ib1 &= ~MTK_FOE_IB1_BIND_TIMESTAMP_V2;
- entry->ib1 |= FIELD_PREP(MTK_FOE_IB1_BIND_TIMESTAMP_V2,
- timestamp);
- @@ -617,7 +617,7 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
- hwe->ib1 = entry->ib1;
-
- if (ppe->accounting) {
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v2_or_greater(eth))
- val = MTK_FOE_IB2_MIB_CNT_V2;
- else
- val = MTK_FOE_IB2_MIB_CNT;
- @@ -965,7 +965,7 @@ void mtk_ppe_start(struct mtk_ppe *ppe)
- MTK_PPE_SCAN_MODE_KEEPALIVE_AGE) |
- FIELD_PREP(MTK_PPE_TB_CFG_ENTRY_NUM,
- MTK_PPE_ENTRIES_SHIFT);
- - if (MTK_HAS_CAPS(ppe->eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v2_or_greater(ppe->eth))
- val |= MTK_PPE_TB_CFG_INFO_SEL;
- ppe_w32(ppe, MTK_PPE_TB_CFG, val);
-
- @@ -981,7 +981,7 @@ void mtk_ppe_start(struct mtk_ppe *ppe)
- MTK_PPE_FLOW_CFG_IP4_NAPT |
- MTK_PPE_FLOW_CFG_IP4_DSLITE |
- MTK_PPE_FLOW_CFG_IP4_NAT_FRAG;
- - if (MTK_HAS_CAPS(ppe->eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v2_or_greater(ppe->eth))
- val |= MTK_PPE_MD_TOAP_BYP_CRSN0 |
- MTK_PPE_MD_TOAP_BYP_CRSN1 |
- MTK_PPE_MD_TOAP_BYP_CRSN2 |
- @@ -1023,7 +1023,7 @@ void mtk_ppe_start(struct mtk_ppe *ppe)
-
- ppe_w32(ppe, MTK_PPE_DEFAULT_CPU_PORT, 0);
-
- - if (MTK_HAS_CAPS(ppe->eth->soc->caps, MTK_NETSYS_V2)) {
- + if (mtk_is_netsys_v2_or_greater(ppe->eth)) {
- ppe_w32(ppe, MTK_PPE_DEFAULT_CPU_PORT1, 0xcb777);
- ppe_w32(ppe, MTK_PPE_SBW_CTRL, 0x7f);
- }
- --- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
- +++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
- @@ -193,7 +193,7 @@ mtk_flow_set_output_device(struct mtk_et
- if (mtk_flow_get_wdma_info(dev, dest_mac, &info) == 0) {
- mtk_foe_entry_set_wdma(eth, foe, info.wdma_idx, info.queue,
- info.bss, info.wcid);
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
- + if (mtk_is_netsys_v2_or_greater(eth)) {
- switch (info.wdma_idx) {
- case 0:
- pse_port = 8;
- --- a/drivers/net/ethernet/mediatek/mtk_wed.c
- +++ b/drivers/net/ethernet/mediatek/mtk_wed.c
- @@ -1084,7 +1084,7 @@ mtk_wed_rx_reset(struct mtk_wed_device *
- } else {
- struct mtk_eth *eth = dev->hw->eth;
-
- - if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + if (mtk_is_netsys_v2_or_greater(eth))
- wed_set(dev, MTK_WED_RESET_IDX,
- MTK_WED_RESET_IDX_RX_V2);
- else
- @@ -1806,7 +1806,7 @@ void mtk_wed_add_hw(struct device_node *
- hw->wdma = wdma;
- hw->index = index;
- hw->irq = irq;
- - hw->version = MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2) ? 2 : 1;
- + hw->version = mtk_is_netsys_v1(eth) ? 1 : 2;
-
- if (hw->version == 1) {
- hw->mirror = syscon_regmap_lookup_by_phandle(eth_np,
|