> On Sun, Jun 11, 2023 at 01:38:23AM +0100, Daniel Golle wrote: > > @@ -1333,8 +1354,13 @@ static int mtk_tx_map(struct sk_buff *skb, struct net_device *dev, > > mtk_tx_set_dma_desc(dev, itxd, &txd_info); > > > > itx_buf->flags |= MTK_TX_FLAGS_SINGLE0; > > - itx_buf->flags |= (!mac->id) ? MTK_TX_FLAGS_FPORT0 : > > - MTK_TX_FLAGS_FPORT1; > > + if (mac->id == MTK_GMAC1_ID) > > + itx_buf->flags |= MTK_TX_FLAGS_FPORT0; > > + else if (mac->id == MTK_GMAC2_ID) > > + itx_buf->flags |= MTK_TX_FLAGS_FPORT1; > > + else > > + itx_buf->flags |= MTK_TX_FLAGS_FPORT2; > > There appears to be two places that this code structure appears, and > this is in the path for packet transmission. I wonder if it would be > more efficient to instead do: > > itx_buf->flags |= MTK_TX_FLAGS_SINGLE0 | mac->tx_flags; > > with mac->tx_flags appropriately initialised? > > > @@ -2170,7 +2214,9 @@ static int mtk_poll_tx_qdma(struct mtk_eth *eth, int budget, > > tx_buf = mtk_desc_to_tx_buf(ring, desc, > > eth->soc->txrx.txd_size); > > if (tx_buf->flags & MTK_TX_FLAGS_FPORT1) > > - mac = 1; > > + mac = MTK_GMAC2_ID; > > + else if (tx_buf->flags & MTK_TX_FLAGS_FPORT2) > > + mac = MTK_GMAC3_ID; > > This has me wondering whether the flags are used for hardware or just > for the driver's purposes. If it's the latter, can we instead store the > MAC index in tx_buf, rather than having to decode a bitfield? > > I suspect these are just for the driver given that the addition of > MTK_TX_FLAGS_FPORT2 changes all subsequent bit numbers in this struct > member. ack, I agree. I will rework it. Regards, Lorenzo > > > > > if (!tx_buf->data) > > break; > > @@ -3783,7 +3829,26 @@ static int mtk_hw_init(struct mtk_eth *eth, bool reset) > > 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_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V3)) { > > + /* PSE should not drop port1, port8 and port9 packets */ > > + mtk_w32(eth, 0x00000302, PSE_DROP_CFG); > > + > > + /* GDM and CDM Threshold */ > > + mtk_w32(eth, 0x00000707, MTK_CDMW0_THRES); > > + mtk_w32(eth, 0x00000077, MTK_CDMW1_THRES); > > + > > + /* Disable GDM1 RX CRC stripping */ > > + val = mtk_r32(eth, MTK_GDMA_FWD_CFG(0)); > > + val &= ~MTK_GDMA_STRP_CRC; > > + mtk_w32(eth, val, MTK_GDMA_FWD_CFG(0)); > > mtk_m32() ? > > Thanks! > > -- > RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ > FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last! >
Attachment:
signature.asc
Description: PGP signature