LF-3811 net: fec: fix TX Bandwidth Fluctuations
authorJoakim Zhang <qiangqing.zhang@nxp.com>
Fri, 14 May 2021 08:52:44 +0000 (16:52 +0800)
committerJason Liu <jason.hui.liu@nxp.com>
Thu, 27 May 2021 04:56:21 +0000 (12:56 +0800)
MAC-NET IP with AVB support, queue 0 for best-effor, and queue 1&2 for AVB.
The default bandwidth configured of queue 1&2 is 50% in the driver, which
leads to TX bandwidth fluctuations when selecting queue 1&2 for transmitting
packets. Select queue based on VLAN info when AVB enabled.

Commit da722186f654 ("net: fec: set GPR bit on suspend by DT configuration.")
refactor the fec_devtype, need adjust downstream code accordingly.

Reviewed-by: Jun Li <jun.li@nxp.com>
Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
Acked-by: Jason Liu <jason.hui.liu@nxp.com>
drivers/net/ethernet/freescale/fec_main.c

index 03e595d..b3eac8a 100644 (file)
@@ -3460,11 +3460,9 @@ u16 fec_enet_select_queue(struct net_device *ndev, struct sk_buff *skb,
                          struct net_device *sb_dev)
 {
        struct fec_enet_private *fep = netdev_priv(ndev);
-       const struct platform_device_id *id_entry =
-                       platform_get_device_id(fep->pdev);
        u16 vlan_tag;
 
-       if (!(id_entry->driver_data & FEC_QUIRK_HAS_AVB))
+       if (!(fep->quirks & FEC_QUIRK_HAS_AVB))
                return netdev_pick_tx(ndev, skb, NULL);
 
        vlan_tag = fec_enet_get_raw_vlan_tci(skb);